...
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
52
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