@@ -21,19 +21,16 @@ 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
- "sigs.k8s.io/cluster-api/util/patch"
36
-
37
34
infrav1beta2 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta2"
38
35
"sigs.k8s.io/cluster-api-provider-ibmcloud/pkg/cloud/services/powervs"
39
36
"sigs.k8s.io/cluster-api-provider-ibmcloud/pkg/cloud/services/resourcecontroller"
@@ -55,9 +52,9 @@ type PowerVSImageScopeParams struct {
55
52
56
53
// PowerVSImageScope defines a scope defined around a Power VS Cluster.
57
54
type PowerVSImageScope struct {
58
- logr.Logger
59
- Client client.Client
60
- patchHelper * patch.Helper
55
+ // logr.Logger
56
+ Client client.Client
57
+ // patchHelper *patch.Helper
61
58
62
59
IBMPowerVSClient powervs.PowerVS
63
60
IBMPowerVSImage * infrav1beta2.IBMPowerVSImage
@@ -83,23 +80,9 @@ func NewPowerVSImageScope(params PowerVSImageScopeParams) (scope *PowerVSImageSc
83
80
if params .Logger == (logr.Logger {}) {
84
81
params .Logger = klog .Background ()
85
82
}
86
- scope .Logger = params .Logger
87
-
88
- helper , err := patch .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
83
95
84
// Create Resource Controller client.
96
85
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
86
104
87
rc , err := resourcecontroller .NewService (serviceOption )
105
88
if err != nil {
@@ -150,7 +133,7 @@ func NewPowerVSImageScope(params PowerVSImageScopeParams) (scope *PowerVSImageSc
150
133
// Fetch the service endpoint.
151
134
if svcEndpoint := endpoints .FetchPVSEndpoint (endpoints .ConstructRegionFromZone (* res .RegionID ), params .ServiceEndpoint ); svcEndpoint != "" {
152
135
options .IBMPIOptions .URL = svcEndpoint
153
- scope .Logger .V (3 ).Info ("overriding the default powervs service endpoint" )
136
+ params .Logger .V (3 ).Info ("overriding the default powervs service endpoint" , "serviceEndpoint" , svcEndpoint )
154
137
}
155
138
156
139
c , err := powervs .NewService (options )
@@ -179,58 +162,49 @@ func (i *PowerVSImageScope) ensureImageUnique(imageName string) (*models.ImageRe
179
162
}
180
163
181
164
// CreateImageCOSBucket creates a power vs image.
182
- func (i * PowerVSImageScope ) CreateImageCOSBucket () (* models.ImageReference , * models.JobReference , error ) {
183
- s := i .IBMPowerVSImage .Spec
165
+ func (i * PowerVSImageScope ) CreateImageCOSBucket (ctx context.Context ) (* models.ImageReference , * models.JobReference , error ) {
166
+ log := ctrl .LoggerFrom (ctx )
167
+ imageSpec := i .IBMPowerVSImage .Spec
184
168
m := i .IBMPowerVSImage .ObjectMeta
185
169
186
170
imageReply , err := i .ensureImageUnique (m .Name )
187
171
if err != nil {
188
172
record .Warnf (i .IBMPowerVSImage , "FailedRetrieveImage" , "Failed to retrieve image %q" , m .Name )
189
173
return nil , nil , err
190
174
} else if imageReply != nil {
191
- i .Info ("Image already exists" )
175
+ log .Info ("Image already exists" )
192
176
return imageReply , nil , nil
193
177
}
194
178
195
179
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 )
180
+ if * lastJob .Status .State != string ( infrav1beta2 . PowerVSImageStateCompleted ) && * lastJob .Status .State != string ( infrav1beta2 . PowerVSImageStateFailed ) {
181
+ log .Info ("Previous import job not yet finished" , "state" , * lastJob .Status .State )
198
182
return nil , nil , nil
199
183
}
200
184
}
201
185
202
186
body := & models.CreateCosImageImportJob {
203
187
ImageName : & m .Name ,
204
- BucketName : s .Bucket ,
188
+ BucketName : imageSpec .Bucket ,
205
189
BucketAccess : core .StringPtr (BucketAccess ),
206
- Region : s .Region ,
207
- ImageFilename : s .Object ,
208
- StorageType : s .StorageType ,
190
+ Region : imageSpec .Region ,
191
+ ImageFilename : imageSpec .Object ,
192
+ StorageType : imageSpec .StorageType ,
209
193
}
210
194
211
195
jobRef , err := i .IBMPowerVSClient .CreateCosImage (body )
212
196
if err != nil {
213
- i .Info ("Unable to create new import job request" )
197
+ log .Info ("Unable to create new import job request" )
214
198
record .Warnf (i .IBMPowerVSImage , "FailedCreateImageImportJob" , "Failed image import job creation - %v" , err )
215
199
return nil , nil , err
216
200
}
217
- i .Info ("New import job request created" )
201
+ log .Info ("New import job request created" )
218
202
record .Eventf (i .IBMPowerVSImage , "SuccessfulCreateImageImportJob" , "Created image import job %q" , * jobRef .ID )
219
203
return nil , jobRef , nil
220
204
}
221
205
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
206
// DeleteImage will delete the image.
233
- func (i * PowerVSImageScope ) DeleteImage () error {
207
+ func (i * PowerVSImageScope ) DeleteImage (ctx context. Context ) error {
234
208
if err := i .IBMPowerVSClient .DeleteImage (i .IBMPowerVSImage .Status .ImageID ); err != nil {
235
209
record .Warnf (i .IBMPowerVSImage , "FailedDeleteImage" , "Failed image deletion - %v" , err )
236
210
return err
@@ -245,7 +219,7 @@ func (i *PowerVSImageScope) GetImportJob() (*models.Job, error) {
245
219
}
246
220
247
221
// DeleteImportJob will delete the image import job.
248
- func (i * PowerVSImageScope ) DeleteImportJob () error {
222
+ func (i * PowerVSImageScope ) DeleteImportJob (ctx context. Context ) error {
249
223
if err := i .IBMPowerVSClient .DeleteJob (i .IBMPowerVSImage .Status .JobID ); err != nil {
250
224
record .Warnf (i .IBMPowerVSImage , "FailedDeleteImageImportJob" , "Failed image import job deletion - %v" , err )
251
225
return err
0 commit comments