55 "fmt"
66 ocmsdk "github.com/openshift-online/ocm-sdk-go"
77 cmv1 "github.com/openshift-online/ocm-sdk-go/clustersmgmt/v1"
8- "github.com/openshift-online/ocm-sdk-go/logging"
98 configv1 "github.com/openshift/api/config/v1"
109 arbv1 "github.com/project-codeflare/multi-cluster-app-dispatcher/pkg/apis/controller/v1beta1"
1110 "k8s.io/apimachinery/pkg/types"
@@ -14,23 +13,30 @@ import (
1413 "strings"
1514)
1615
17- func scaleMachinePool ( aw * arbv1. AppWrapper , userRequestedInstanceType string , replicas int ) {
16+ func createOCMConnection () ( * ocmsdk. Connection , error ) {
1817 logger , err := ocmsdk .NewGoLoggerBuilder ().
1918 Debug (false ).
2019 Build ()
2120 if err != nil {
22- fmt .Fprintf (os .Stderr , "Can't build logger: %v\n " , err )
23- os .Exit (1 )
21+ return nil , fmt .Errorf ("can't build logger: %v" , err )
2422 }
2523
26- // Create the connection, and remember to close it:
2724 connection , err := ocmsdk .NewConnectionBuilder ().
2825 Logger (logger ).
2926 Tokens (ocmToken ).
3027 Build ()
3128 if err != nil {
32- fmt .Fprintf (os .Stderr , "Can't build connection: %v\n " , err )
33- os .Exit (1 )
29+ return nil , fmt .Errorf ("can't build connection: %v" , err )
30+ }
31+
32+ return connection , nil
33+ }
34+
35+ func scaleMachinePool (aw * arbv1.AppWrapper , userRequestedInstanceType string , replicas int ) {
36+ connection , err := createOCMConnection ()
37+ if err != nil {
38+ fmt .Fprintf (os .Stderr , "Error creating OCM connection: %v" , err )
39+ return
3440 }
3541 defer connection .Close ()
3642
@@ -53,23 +59,13 @@ func scaleMachinePool(aw *arbv1.AppWrapper, userRequestedInstanceType string, re
5359}
5460
5561func deleteMachinePool (aw * arbv1.AppWrapper ) {
56-
57- logger , err := ocmsdk .NewGoLoggerBuilder ().
58- Debug (false ).
59- Build ()
62+ connection , err := createOCMConnection ()
6063 if err != nil {
61- fmt .Fprintf (os .Stderr , "Can't build logger: %v\n " , err )
62- os .Exit (1 )
63- }
64- connection , err := ocmsdk .NewConnectionBuilder ().
65- Logger (logger ).
66- Tokens (ocmToken ).
67- Build ()
68- if err != nil {
69- fmt .Fprintf (os .Stderr , "Can't build connection: %v\n " , err )
70- os .Exit (1 )
64+ fmt .Fprintf (os .Stderr , "Error creating OCM connection: %v" , err )
65+ return
7166 }
7267 defer connection .Close ()
68+
7369 machinePoolsConnection := connection .ClustersMgmt ().V1 ().Clusters ().Cluster (ocmClusterID ).MachinePools ().List ()
7470
7571 machinePoolsListResponse , _ := machinePoolsConnection .Send ()
@@ -88,20 +84,9 @@ func deleteMachinePool(aw *arbv1.AppWrapper) {
8884
8985// Check if machine pools exist
9086func machinePoolExists () bool {
91- logger , err := ocmsdk .NewGoLoggerBuilder ().
92- Debug (false ).
93- Build ()
87+ connection , err := createOCMConnection ()
9488 if err != nil {
95- fmt .Fprintf (os .Stderr , "Can't build logger: %v\n " , err )
96- os .Exit (1 )
97- }
98- connection , err := ocmsdk .NewConnectionBuilder ().
99- Logger (logger ).
100- Tokens (ocmToken ).
101- Build ()
102- if err != nil {
103- fmt .Fprintf (os .Stderr , "Can't build connection: %v\n " , err )
104- os .Exit (1 )
89+ fmt .Fprintf (os .Stderr , "Error creating OCM connection: %v" , err )
10590 }
10691 defer connection .Close ()
10792
@@ -112,7 +97,6 @@ func machinePoolExists() bool {
11297
11398// getOCMClusterID determines the internal clusterID to be used for OCM API calls
11499func getOCMClusterID (r * AppWrapperReconciler ) error {
115-
116100 cv := & configv1.ClusterVersion {}
117101 err := r .Client .Get (context .TODO (), types.NamespacedName {Name : "version" }, cv )
118102 if err != nil {
@@ -123,22 +107,9 @@ func getOCMClusterID(r *AppWrapperReconciler) error {
123107
124108 ctx := context .Background ()
125109
126- // Create a logger that has the debug level enabled:
127- logger , err := logging .NewGoLoggerBuilder ().
128- Debug (false ).
129- Build ()
130- if err != nil {
131- fmt .Fprintf (os .Stderr , "Can't build logger: %v\n " , err )
132- os .Exit (1 )
133- }
134-
135- connection , err := ocmsdk .NewConnectionBuilder ().
136- Logger (logger ).
137- Tokens (ocmToken ).
138- Build ()
110+ connection , err := createOCMConnection ()
139111 if err != nil {
140- fmt .Fprintf (os .Stderr , "Can't build connection: %v\n " , err )
141- os .Exit (1 )
112+ fmt .Fprintf (os .Stderr , "Error creating OCM connection: %v" , err )
142113 }
143114 defer connection .Close ()
144115
0 commit comments