5
5
"fmt"
6
6
ocmsdk "github.com/openshift-online/ocm-sdk-go"
7
7
cmv1 "github.com/openshift-online/ocm-sdk-go/clustersmgmt/v1"
8
- "github.com/openshift-online/ocm-sdk-go/logging"
9
8
configv1 "github.com/openshift/api/config/v1"
10
9
arbv1 "github.com/project-codeflare/multi-cluster-app-dispatcher/pkg/apis/controller/v1beta1"
11
10
"k8s.io/apimachinery/pkg/types"
@@ -14,23 +13,30 @@ import (
14
13
"strings"
15
14
)
16
15
17
- func scaleMachinePool ( aw * arbv1. AppWrapper , userRequestedInstanceType string , replicas int ) {
16
+ func createOCMConnection () ( * ocmsdk. Connection , error ) {
18
17
logger , err := ocmsdk .NewGoLoggerBuilder ().
19
18
Debug (false ).
20
19
Build ()
21
20
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 )
24
22
}
25
23
26
- // Create the connection, and remember to close it:
27
24
connection , err := ocmsdk .NewConnectionBuilder ().
28
25
Logger (logger ).
29
26
Tokens (ocmToken ).
30
27
Build ()
31
28
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
34
40
}
35
41
defer connection .Close ()
36
42
@@ -53,23 +59,13 @@ func scaleMachinePool(aw *arbv1.AppWrapper, userRequestedInstanceType string, re
53
59
}
54
60
55
61
func deleteMachinePool (aw * arbv1.AppWrapper ) {
56
-
57
- logger , err := ocmsdk .NewGoLoggerBuilder ().
58
- Debug (false ).
59
- Build ()
62
+ connection , err := createOCMConnection ()
60
63
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
71
66
}
72
67
defer connection .Close ()
68
+
73
69
machinePoolsConnection := connection .ClustersMgmt ().V1 ().Clusters ().Cluster (ocmClusterID ).MachinePools ().List ()
74
70
75
71
machinePoolsListResponse , _ := machinePoolsConnection .Send ()
@@ -88,20 +84,9 @@ func deleteMachinePool(aw *arbv1.AppWrapper) {
88
84
89
85
// Check if machine pools exist
90
86
func machinePoolExists () bool {
91
- logger , err := ocmsdk .NewGoLoggerBuilder ().
92
- Debug (false ).
93
- Build ()
87
+ connection , err := createOCMConnection ()
94
88
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 )
105
90
}
106
91
defer connection .Close ()
107
92
@@ -112,7 +97,6 @@ func machinePoolExists() bool {
112
97
113
98
// getOCMClusterID determines the internal clusterID to be used for OCM API calls
114
99
func getOCMClusterID (r * AppWrapperReconciler ) error {
115
-
116
100
cv := & configv1.ClusterVersion {}
117
101
err := r .Client .Get (context .TODO (), types.NamespacedName {Name : "version" }, cv )
118
102
if err != nil {
@@ -123,22 +107,9 @@ func getOCMClusterID(r *AppWrapperReconciler) error {
123
107
124
108
ctx := context .Background ()
125
109
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 ()
139
111
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 )
142
113
}
143
114
defer connection .Close ()
144
115
0 commit comments