@@ -21,20 +21,18 @@ import (
21
21
"errors"
22
22
"fmt"
23
23
24
- "github.com/go-logr/logr"
25
-
26
24
"github.com/IBM-Cloud/power-go-client/ibmpisession"
27
25
"github.com/IBM-Cloud/power-go-client/power/models"
28
26
"github.com/IBM/go-sdk-core/v5/core"
29
27
"github.com/IBM/platform-services-go-sdk/resourcecontrollerv2"
30
-
28
+ "github.com/go-logr/logr"
31
29
"k8s.io/klog/v2"
32
30
31
+ ctrl "sigs.k8s.io/controller-runtime"
33
32
"sigs.k8s.io/controller-runtime/pkg/client"
34
33
35
- v1beta1patch "sigs.k8s.io/cluster-api/util/deprecated/v1beta1/patch" //nolint:staticcheck
36
-
37
34
infrav1 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta2"
35
+ infrav1beta2 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta2"
38
36
"sigs.k8s.io/cluster-api-provider-ibmcloud/pkg/cloud/services/powervs"
39
37
"sigs.k8s.io/cluster-api-provider-ibmcloud/pkg/cloud/services/resourcecontroller"
40
38
"sigs.k8s.io/cluster-api-provider-ibmcloud/pkg/endpoints"
@@ -55,9 +53,9 @@ type PowerVSImageScopeParams struct {
55
53
56
54
// PowerVSImageScope defines a scope defined around a Power VS Cluster.
57
55
type PowerVSImageScope struct {
58
- logr.Logger
59
- Client client.Client
60
- patchHelper * v1beta1patch .Helper
56
+ // logr.Logger
57
+ Client client.Client
58
+ // patchHelper *patch .Helper
61
59
62
60
IBMPowerVSClient powervs.PowerVS
63
61
IBMPowerVSImage * infrav1.IBMPowerVSImage
@@ -83,23 +81,9 @@ func NewPowerVSImageScope(params PowerVSImageScopeParams) (scope *PowerVSImageSc
83
81
if params .Logger == (logr.Logger {}) {
84
82
params .Logger = klog .Background ()
85
83
}
86
- scope .Logger = params .Logger
87
-
88
- helper , err := v1beta1patch .NewHelper (params .IBMPowerVSImage , params .Client )
89
- if err != nil {
90
- err = fmt .Errorf ("failed to init patch helper: %w" , err )
91
- return nil , err
92
- }
93
- scope .patchHelper = helper
94
84
95
85
// Create Resource Controller client.
96
86
var serviceOption resourcecontroller.ServiceOptions
97
- // Fetch the resource controller endpoint.
98
- rcEndpoint := endpoints .FetchEndpoints (string (endpoints .RC ), params .ServiceEndpoint )
99
- if rcEndpoint != "" {
100
- serviceOption .URL = rcEndpoint
101
- params .Logger .V (3 ).Info ("Overriding the default resource controller endpoint" , "ResourceControllerEndpoint" , rcEndpoint )
102
- }
103
87
104
88
rc , err := resourcecontroller .NewService (serviceOption )
105
89
if err != nil {
@@ -150,7 +134,7 @@ func NewPowerVSImageScope(params PowerVSImageScopeParams) (scope *PowerVSImageSc
150
134
// Fetch the service endpoint.
151
135
if svcEndpoint := endpoints .FetchPVSEndpoint (endpoints .ConstructRegionFromZone (* res .RegionID ), params .ServiceEndpoint ); svcEndpoint != "" {
152
136
options .IBMPIOptions .URL = svcEndpoint
153
- scope .Logger .V (3 ).Info ("overriding the default powervs service endpoint" )
137
+ params .Logger .V (3 ).Info ("overriding the default powervs service endpoint" , "serviceEndpoint" , svcEndpoint )
154
138
}
155
139
156
140
c , err := powervs .NewService (options )
@@ -179,58 +163,49 @@ func (i *PowerVSImageScope) ensureImageUnique(imageName string) (*models.ImageRe
179
163
}
180
164
181
165
// CreateImageCOSBucket creates a power vs image.
182
- func (i * PowerVSImageScope ) CreateImageCOSBucket () (* models.ImageReference , * models.JobReference , error ) {
183
- s := i .IBMPowerVSImage .Spec
166
+ func (i * PowerVSImageScope ) CreateImageCOSBucket (ctx context.Context ) (* models.ImageReference , * models.JobReference , error ) {
167
+ log := ctrl .LoggerFrom (ctx )
168
+ imageSpec := i .IBMPowerVSImage .Spec
184
169
m := i .IBMPowerVSImage .ObjectMeta
185
170
186
171
imageReply , err := i .ensureImageUnique (m .Name )
187
172
if err != nil {
188
173
record .Warnf (i .IBMPowerVSImage , "FailedRetrieveImage" , "Failed to retrieve image %q" , m .Name )
189
174
return nil , nil , err
190
175
} else if imageReply != nil {
191
- i .Info ("Image already exists" )
176
+ log .Info ("Image already exists" )
192
177
return imageReply , nil , nil
193
178
}
194
179
195
180
if lastJob , _ := i .GetImportJob (); lastJob != nil {
196
- if * lastJob .Status .State != "completed" && * lastJob .Status .State != "failed" {
197
- i .Info ("Previous import job not yet finished" , "state" , * lastJob .Status .State )
181
+ if * lastJob .Status .State != string ( infrav1beta2 . PowerVSImageStateCompleted ) && * lastJob .Status .State != string ( infrav1beta2 . PowerVSImageStateFailed ) {
182
+ log .Info ("Previous import job not yet finished" , "state" , * lastJob .Status .State )
198
183
return nil , nil , nil
199
184
}
200
185
}
201
186
202
187
body := & models.CreateCosImageImportJob {
203
188
ImageName : & m .Name ,
204
- BucketName : s .Bucket ,
189
+ BucketName : imageSpec .Bucket ,
205
190
BucketAccess : core .StringPtr (BucketAccess ),
206
- Region : s .Region ,
207
- ImageFilename : s .Object ,
208
- StorageType : s .StorageType ,
191
+ Region : imageSpec .Region ,
192
+ ImageFilename : imageSpec .Object ,
193
+ StorageType : imageSpec .StorageType ,
209
194
}
210
195
211
196
jobRef , err := i .IBMPowerVSClient .CreateCosImage (body )
212
197
if err != nil {
213
- i .Info ("Unable to create new import job request" )
198
+ log .Info ("Unable to create new import job request" )
214
199
record .Warnf (i .IBMPowerVSImage , "FailedCreateImageImportJob" , "Failed image import job creation - %v" , err )
215
200
return nil , nil , err
216
201
}
217
- i .Info ("New import job request created" )
202
+ log .Info ("New import job request created" )
218
203
record .Eventf (i .IBMPowerVSImage , "SuccessfulCreateImageImportJob" , "Created image import job %q" , * jobRef .ID )
219
204
return nil , jobRef , nil
220
205
}
221
206
222
- // PatchObject persists the cluster configuration and status.
223
- func (i * PowerVSImageScope ) PatchObject () error {
224
- return i .patchHelper .Patch (context .TODO (), i .IBMPowerVSImage )
225
- }
226
-
227
- // Close closes the current scope persisting the cluster configuration and status.
228
- func (i * PowerVSImageScope ) Close () error {
229
- return i .PatchObject ()
230
- }
231
-
232
207
// DeleteImage will delete the image.
233
- func (i * PowerVSImageScope ) DeleteImage () error {
208
+ func (i * PowerVSImageScope ) DeleteImage (ctx context. Context ) error {
234
209
if err := i .IBMPowerVSClient .DeleteImage (i .IBMPowerVSImage .Status .ImageID ); err != nil {
235
210
record .Warnf (i .IBMPowerVSImage , "FailedDeleteImage" , "Failed image deletion - %v" , err )
236
211
return err
@@ -245,7 +220,7 @@ func (i *PowerVSImageScope) GetImportJob() (*models.Job, error) {
245
220
}
246
221
247
222
// DeleteImportJob will delete the image import job.
248
- func (i * PowerVSImageScope ) DeleteImportJob () error {
223
+ func (i * PowerVSImageScope ) DeleteImportJob (ctx context. Context ) error {
249
224
if err := i .IBMPowerVSClient .DeleteJob (i .IBMPowerVSImage .Status .JobID ); err != nil {
250
225
record .Warnf (i .IBMPowerVSImage , "FailedDeleteImageImportJob" , "Failed image import job deletion - %v" , err )
251
226
return err
0 commit comments