Skip to content

Commit 65653f7

Browse files
committed
Correctly utilize config options in remediation commands
Can we pull out the common config stuff like proxy and url from individual command setups?
1 parent a26b27f commit 65653f7

File tree

2 files changed

+69
-70
lines changed

2 files changed

+69
-70
lines changed

cmd/ocm-backplane/remediation/remediation.go

+45-23
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,15 @@ func runCreateRemediation(args []string, clusterKey string, urlFlag string) erro
103103
return err
104104
}
105105

106-
backplaneHost := bpConfig.URL
106+
bpURL := globalOpts.BackplaneURL
107+
if bpURL == "" {
108+
bpURL = bpConfig.URL
109+
}
107110

108111
clusterID := bpCluster.ClusterID
109112

110113
if urlFlag != "" {
111-
backplaneHost = urlFlag
114+
bpURL = urlFlag
112115
}
113116

114117
// ======== Parsing Args ========
@@ -121,7 +124,23 @@ func runCreateRemediation(args []string, clusterKey string, urlFlag string) erro
121124
if err != nil {
122125
return err
123126
}
124-
proxyURI, err := remediation.DoCreateRemediation(backplaneHost, clusterID, *accessToken, remediationName)
127+
// Add proxy URL to target cluster
128+
proxyURL := globalOpts.ProxyURL
129+
if proxyURL != "" {
130+
err = backplaneapi.DefaultClientUtils.SetClientProxyURL(proxyURL)
131+
132+
if err != nil {
133+
return err
134+
}
135+
logger.Debugf("Using backplane Proxy URL: %s\n", proxyURL)
136+
}
137+
138+
if bpConfig.ProxyURL != nil {
139+
proxyURL = *bpConfig.ProxyURL
140+
logger.Debugln("backplane configuration file also contains a proxy url, using that one instead")
141+
logger.Debugf("New backplane Proxy URL: %s\n", proxyURL)
142+
}
143+
proxyURI, err := remediation.DoCreateRemediation(bpURL, clusterID, *accessToken, remediationName)
125144
// ======== Render Results ========
126145
if err != nil {
127146
return err
@@ -141,23 +160,6 @@ func runCreateRemediation(args []string, clusterKey string, urlFlag string) erro
141160

142161
targetCluster.Server = proxyURI
143162

144-
// Add proxy URL to target cluster
145-
proxyURL := globalOpts.ProxyURL
146-
if proxyURL != "" {
147-
err = backplaneapi.DefaultClientUtils.SetClientProxyURL(proxyURL)
148-
149-
if err != nil {
150-
return err
151-
}
152-
logger.Debugf("Using backplane Proxy URL: %s\n", proxyURL)
153-
}
154-
155-
if bpConfig.ProxyURL != nil {
156-
proxyURL = *bpConfig.ProxyURL
157-
logger.Debugln("backplane configuration file also contains a proxy url, using that one instead")
158-
logger.Debugf("New backplane Proxy URL: %s\n", proxyURL)
159-
}
160-
161163
logger.Debugln("Extracting target cluster ID and name")
162164
clusterID, clusterName, err := ocm.DefaultOCMInterface.GetTargetCluster(clusterKey)
163165
if err != nil {
@@ -210,12 +212,15 @@ func runDeleteRemediation(args []string, clusterKey string, urlFlag string) erro
210212
return err
211213
}
212214

213-
backplaneHost := bpConfig.URL
215+
bpURL := globalOpts.BackplaneURL
216+
if bpURL == "" {
217+
bpURL = bpConfig.URL
218+
}
214219

215220
clusterID := bpCluster.ClusterID
216221

217222
if urlFlag != "" {
218-
backplaneHost = urlFlag
223+
bpURL = urlFlag
219224
}
220225

221226
// ======== Parsing Args ========
@@ -228,8 +233,25 @@ func runDeleteRemediation(args []string, clusterKey string, urlFlag string) erro
228233
if err != nil {
229234
return err
230235
}
236+
237+
// Add proxy URL to target cluster
238+
proxyURL := globalOpts.ProxyURL
239+
if proxyURL != "" {
240+
err = backplaneapi.DefaultClientUtils.SetClientProxyURL(proxyURL)
241+
242+
if err != nil {
243+
return err
244+
}
245+
logger.Debugf("Using backplane Proxy URL: %s\n", proxyURL)
246+
}
247+
248+
if bpConfig.ProxyURL != nil {
249+
proxyURL = *bpConfig.ProxyURL
250+
logger.Debugln("backplane configuration file also contains a proxy url, using that one instead")
251+
logger.Debugf("New backplane Proxy URL: %s\n", proxyURL)
252+
}
231253
// ======== Call Endpoint ========
232-
err = remediation.DoDeleteRemediation(backplaneHost, clusterID, *accessToken, remediationSA)
254+
err = remediation.DoDeleteRemediation(bpURL, clusterID, *accessToken, remediationSA)
233255
// ======== Render Results ========
234256
if err != nil {
235257
return err

cmd/ocm-backplane/remediation/remediation_test.go

+24-47
Original file line numberDiff line numberDiff line change
@@ -35,27 +35,21 @@ var _ = Describe("New Remediation command", func() {
3535
mockCtrl *gomock.Controller
3636
mockOcmInterface *ocmMock.MockOCMInterface
3737
mockClientUtil *backplaneapiMock.MockClientUtils
38-
//mockClient *mocks.MockClientInterface
39-
mockClientWithResp *mocks.MockClientWithResponsesInterface
40-
//mockCluster *cmv1.Cluster
41-
42-
testClusterID string
43-
trueClusterID string
44-
testToken string
45-
testRemediationName string
46-
testProxyURI string
47-
fakeResp *http.Response
48-
bpConfigPath string
49-
backplaneAPIURI string
50-
ocmEnv *cmv1.Environment
51-
createRemediationResponse *BackplaneApi.CreateRemediationResponse
52-
deleteRemediationResponse *BackplaneApi.DeleteRemediationResponse
38+
mockClient *mocks.MockClientInterface
39+
40+
testClusterID string
41+
trueClusterID string
42+
testToken string
43+
testRemediationName string
44+
fakeResp *http.Response
45+
bpConfigPath string
46+
backplaneAPIURI string
47+
ocmEnv *cmv1.Environment
5348
)
5449

5550
BeforeEach(func() {
5651
mockCtrl = gomock.NewController(GinkgoT())
57-
mockClientWithResp = mocks.NewMockClientWithResponsesInterface(mockCtrl)
58-
//ockClient = mocks.NewMockClientInterface(mockCtrl)
52+
mockClient = mocks.NewMockClientInterface(mockCtrl)
5953

6054
err := utils.CreateTempKubeConfig(nil)
6155
Expect(err).To(BeNil())
@@ -66,7 +60,7 @@ var _ = Describe("New Remediation command", func() {
6660
mockClientUtil = backplaneapiMock.NewMockClientUtils(mockCtrl)
6761
backplaneapi.DefaultClientUtils = mockClientUtil
6862

69-
mockClientWithResp.EXPECT().LoginClusterWithResponse(gomock.Any(), gomock.Any()).Return(nil, nil).Times(0)
63+
mockClient.EXPECT().LoginCluster(gomock.Any(), gomock.Any()).Return(nil, nil).Times(0)
7064

7165
_ = clientcmd.ModifyConfig(clientcmd.NewDefaultPathOptions(), api.Config{}, true)
7266
clientcmd.UseModifyConfigLock = false
@@ -75,30 +69,13 @@ var _ = Describe("New Remediation command", func() {
7569

7670
ocmEnv, _ = cmv1.NewEnvironment().BackplaneURL("https://api.example.com").Build()
7771

78-
//mockCluster = &cmv1.Cluster{}
79-
80-
//backplaneConfiguration = config.BackplaneConfiguration{URL: backplaneAPIURI}
81-
8272
fakeResp = &http.Response{
8373
Body: MakeIoReader(`{"proxy_uri":"proxy", "statusCode":200, "message":"msg"}`),
8474
Header: map[string][]string{},
8575
StatusCode: http.StatusOK,
8676
}
8777
fakeResp.Header.Add("Content-Type", "json")
8878

89-
testProxyURI = "http://proxy.example.com/"
90-
91-
createRemediationResponse = &BackplaneApi.CreateRemediationResponse{
92-
HTTPResponse: fakeResp,
93-
Body: []byte(""),
94-
JSON200: &BackplaneApi.LoginResponse{ProxyUri: &testProxyURI},
95-
}
96-
97-
deleteRemediationResponse = &BackplaneApi.DeleteRemediationResponse{
98-
HTTPResponse: fakeResp,
99-
Body: []byte(""),
100-
}
101-
10279
testClusterID = "test123"
10380
trueClusterID = "trueID123"
10481
backplaneAPIURI = "https://shard.apps.example.com/"
@@ -126,8 +103,8 @@ var _ = Describe("New Remediation command", func() {
126103
mockOcmInterface.EXPECT().GetOCMAccessToken().Return(&testToken, nil)
127104
mockOcmInterface.EXPECT().IsClusterHibernating(gomock.Eq(trueClusterID)).Return(false, nil).AnyTimes()
128105

129-
mockClientUtil.EXPECT().MakeBackplaneAPIClientWithAccessToken(backplaneAPIURI, testToken).Return(mockClientWithResp, nil)
130-
mockClientWithResp.EXPECT().CreateRemediationWithResponse(context.TODO(), trueClusterID, &BackplaneApi.CreateRemediationParams{Remediation: testRemediationName}).Return(createRemediationResponse, nil)
106+
mockClientUtil.EXPECT().MakeRawBackplaneAPIClientWithAccessToken(backplaneAPIURI, testToken).Return(mockClient, nil)
107+
mockClient.EXPECT().CreateRemediation(context.TODO(), trueClusterID, &BackplaneApi.CreateRemediationParams{Remediation: testRemediationName}).Return(fakeResp, nil)
131108

132109
err := runCreateRemediation([]string{testRemediationName}, testClusterID, backplaneAPIURI)
133110

@@ -140,8 +117,8 @@ var _ = Describe("New Remediation command", func() {
140117
mockOcmInterface.EXPECT().GetOCMAccessToken().Return(&testToken, nil)
141118
mockOcmInterface.EXPECT().IsClusterHibernating(gomock.Eq(trueClusterID)).Return(false, nil).AnyTimes()
142119

143-
mockClientUtil.EXPECT().MakeBackplaneAPIClientWithAccessToken("http://uri2.example.com", testToken).Return(mockClientWithResp, nil)
144-
mockClientWithResp.EXPECT().CreateRemediationWithResponse(context.TODO(), trueClusterID, &BackplaneApi.CreateRemediationParams{Remediation: testRemediationName}).Return(createRemediationResponse, nil)
120+
mockClientUtil.EXPECT().MakeRawBackplaneAPIClientWithAccessToken("http://uri2.example.com", testToken).Return(mockClient, nil)
121+
mockClient.EXPECT().CreateRemediation(context.TODO(), trueClusterID, &BackplaneApi.CreateRemediationParams{Remediation: testRemediationName}).Return(fakeResp, nil)
145122

146123
err := runCreateRemediation([]string{testRemediationName}, testClusterID, "http://uri2.example.com")
147124

@@ -158,8 +135,8 @@ var _ = Describe("New Remediation command", func() {
158135
mockOcmInterface.EXPECT().GetOCMAccessToken().Return(&testToken, nil)
159136
mockOcmInterface.EXPECT().IsClusterHibernating(gomock.Eq(trueClusterID)).Return(false, nil).AnyTimes()
160137

161-
mockClientUtil.EXPECT().MakeBackplaneAPIClientWithAccessToken(backplaneAPIURI, testToken).Return(mockClientWithResp, nil)
162-
mockClientWithResp.EXPECT().CreateRemediationWithResponse(context.TODO(), trueClusterID, &BackplaneApi.CreateRemediationParams{Remediation: testRemediationName}).Return(createRemediationResponse, nil)
138+
mockClientUtil.EXPECT().MakeRawBackplaneAPIClientWithAccessToken(backplaneAPIURI, testToken).Return(mockClient, nil)
139+
mockClient.EXPECT().CreateRemediation(context.TODO(), trueClusterID, &BackplaneApi.CreateRemediationParams{Remediation: testRemediationName}).Return(fakeResp, nil)
163140

164141
err := runCreateRemediation([]string{testRemediationName}, testClusterID, backplaneAPIURI)
165142

@@ -183,7 +160,7 @@ var _ = Describe("New Remediation command", func() {
183160
mockOcmInterface.EXPECT().GetOCMAccessToken().Return(&testToken, nil)
184161
mockOcmInterface.EXPECT().IsClusterHibernating(gomock.Eq(trueClusterID)).Return(false, nil).AnyTimes()
185162

186-
mockClientUtil.EXPECT().MakeBackplaneAPIClientWithAccessToken(backplaneAPIURI, testToken).Return(nil, errors.New("err"))
163+
mockClientUtil.EXPECT().MakeRawBackplaneAPIClientWithAccessToken(backplaneAPIURI, testToken).Return(nil, errors.New("err"))
187164

188165
err := runCreateRemediation([]string{testRemediationName}, testClusterID, backplaneAPIURI)
189166

@@ -208,8 +185,8 @@ var _ = Describe("New Remediation command", func() {
208185
mockOcmInterface.EXPECT().GetOCMAccessToken().Return(&testToken, nil)
209186
mockOcmInterface.EXPECT().IsClusterHibernating(gomock.Eq(trueClusterID)).Return(false, nil).AnyTimes()
210187

211-
mockClientUtil.EXPECT().MakeBackplaneAPIClientWithAccessToken(backplaneAPIURI, testToken).Return(mockClientWithResp, nil)
212-
mockClientWithResp.EXPECT().DeleteRemediationWithResponse(context.TODO(), trueClusterID, &BackplaneApi.DeleteRemediationParams{Remediation: &testRemediationName}).Return(deleteRemediationResponse, nil)
188+
mockClientUtil.EXPECT().MakeRawBackplaneAPIClientWithAccessToken(backplaneAPIURI, testToken).Return(mockClient, nil)
189+
mockClient.EXPECT().DeleteRemediation(context.TODO(), trueClusterID, &BackplaneApi.DeleteRemediationParams{Remediation: &testRemediationName}).Return(fakeResp, nil)
213190

214191
err := runDeleteRemediation([]string{testRemediationName}, testClusterID, backplaneAPIURI)
215192

@@ -222,8 +199,8 @@ var _ = Describe("New Remediation command", func() {
222199
mockOcmInterface.EXPECT().GetOCMAccessToken().Return(&testToken, nil)
223200
mockOcmInterface.EXPECT().IsClusterHibernating(gomock.Eq(trueClusterID)).Return(false, nil).AnyTimes()
224201

225-
mockClientUtil.EXPECT().MakeBackplaneAPIClientWithAccessToken("https://uri2.example.com/", testToken).Return(mockClientWithResp, nil)
226-
mockClientWithResp.EXPECT().DeleteRemediationWithResponse(context.TODO(), trueClusterID, &BackplaneApi.DeleteRemediationParams{Remediation: &testRemediationName}).Return(deleteRemediationResponse, nil)
202+
mockClientUtil.EXPECT().MakeRawBackplaneAPIClientWithAccessToken("https://uri2.example.com/", testToken).Return(mockClient, nil)
203+
mockClient.EXPECT().DeleteRemediation(context.TODO(), trueClusterID, &BackplaneApi.DeleteRemediationParams{Remediation: &testRemediationName}).Return(fakeResp, nil)
227204

228205
err := runDeleteRemediation([]string{testRemediationName}, testClusterID, "https://uri2.example.com/")
229206

@@ -247,7 +224,7 @@ var _ = Describe("New Remediation command", func() {
247224
mockOcmInterface.EXPECT().GetOCMAccessToken().Return(&testToken, nil)
248225
mockOcmInterface.EXPECT().IsClusterHibernating(gomock.Eq(trueClusterID)).Return(false, nil).AnyTimes()
249226

250-
mockClientUtil.EXPECT().MakeBackplaneAPIClientWithAccessToken(backplaneAPIURI, testToken).Return(nil, errors.New("err"))
227+
mockClientUtil.EXPECT().MakeRawBackplaneAPIClientWithAccessToken(backplaneAPIURI, testToken).Return(nil, errors.New("err"))
251228

252229
err := runDeleteRemediation([]string{testRemediationName}, testClusterID, backplaneAPIURI)
253230

0 commit comments

Comments
 (0)