...

Source file src/edge-infra.dev/pkg/edge/api/graph/resolver/terminal_orchestration.go

Documentation: edge-infra.dev/pkg/edge/api/graph/resolver

     1  package resolver
     2  
     3  import (
     4  	"context"
     5  
     6  	"edge-infra.dev/pkg/edge/api/graph/model"
     7  	chariotClientApi "edge-infra.dev/pkg/edge/chariot/client"
     8  )
     9  
    10  func (r *Resolver) UpdateClusterIENodesViaChariot(ctx context.Context, clusterEdgeID *string, operation chariotClientApi.Operation) error {
    11  	terminals, err := r.TerminalService.GetTerminals(ctx, clusterEdgeID, nil)
    12  	if err != nil {
    13  		return err
    14  	}
    15  
    16  	for _, terminal := range terminals {
    17  		if err = r.UpdateIENodeViaChariot(ctx, terminal, operation); err != nil {
    18  			return err
    19  		}
    20  	}
    21  
    22  	return nil
    23  }
    24  
    25  func (r *Resolver) UpdateIENodeViaChariot(ctx context.Context, terminal *model.Terminal, operation chariotClientApi.Operation) error {
    26  	cluster, err := r.StoreClusterService.GetCluster(ctx, terminal.ClusterEdgeID)
    27  	if err != nil {
    28  		return err
    29  	}
    30  
    31  	clusterNetworkServices, err := r.StoreClusterService.GetClusterNetworkServices(ctx, cluster.ClusterEdgeID)
    32  	if err != nil {
    33  		return err
    34  	}
    35  
    36  	customLabels, err := r.getTerminalCustomLabels(ctx, terminal.TerminalID)
    37  	if err != nil {
    38  		return err
    39  	}
    40  
    41  	ienNodeCRBase64, err := r.TerminalService.CreateDSDSIENodeCR(terminal, clusterNetworkServices, customLabels, cluster.FleetVersion)
    42  	if err != nil {
    43  		return err
    44  	}
    45  
    46  	err = r.sendChariotMessage(ctx, cluster.ProjectID, cluster.ClusterEdgeID, operation, ienNodeCRBase64)
    47  	if err != nil {
    48  		return err
    49  	}
    50  
    51  	// Call updateTerminalViaChariot to ensure the IENode is also updated on the
    52  	// cic
    53  	return r.updateTerminalViaChariot(ctx, terminal, operation)
    54  }
    55  
    56  func (r *Resolver) updateTerminalViaChariot(ctx context.Context, terminal *model.Terminal, operation chariotClientApi.Operation) error {
    57  	storeCluster, err := r.StoreClusterService.GetCluster(ctx, terminal.ClusterEdgeID)
    58  	if err != nil {
    59  		return err
    60  	}
    61  
    62  	clusterNetworkServices, err := r.StoreClusterService.GetClusterNetworkServices(ctx, storeCluster.ClusterEdgeID)
    63  	if err != nil {
    64  		return err
    65  	}
    66  
    67  	clusterInfraCluster, err := r.BannerService.GetClusterInfraInfo(ctx, storeCluster.BannerEdgeID)
    68  	if err != nil {
    69  		return err
    70  	}
    71  
    72  	customLabels, err := r.getTerminalCustomLabels(ctx, terminal.TerminalID)
    73  	if err != nil {
    74  		return err
    75  	}
    76  
    77  	terminalCRBase64, err := r.TerminalService.CreateCICIENodeCR(terminal, clusterNetworkServices, customLabels, storeCluster.FleetVersion)
    78  	if err != nil {
    79  		return err
    80  	}
    81  
    82  	return r.sendChariotMessage(ctx, clusterInfraCluster.ProjectID, clusterInfraCluster.ClusterEdgeID, operation, terminalCRBase64)
    83  }
    84  

View as plain text