@@ -21,20 +21,18 @@ import (
2121 "errors"
2222 "fmt"
2323
24- "github.com/go-logr/logr"
25-
2624 "github.com/IBM-Cloud/power-go-client/ibmpisession"
2725 "github.com/IBM-Cloud/power-go-client/power/models"
2826 "github.com/IBM/go-sdk-core/v5/core"
2927 "github.com/IBM/platform-services-go-sdk/resourcecontrollerv2"
30-
28+ "github.com/go-logr/logr"
3129 "k8s.io/klog/v2"
3230
31+ ctrl "sigs.k8s.io/controller-runtime"
3332 "sigs.k8s.io/controller-runtime/pkg/client"
3433
35- v1beta1patch "sigs.k8s.io/cluster-api/util/deprecated/v1beta1/patch" //nolint:staticcheck
36-
3734 infrav1 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta2"
35+ infrav1beta2 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta2"
3836 "sigs.k8s.io/cluster-api-provider-ibmcloud/pkg/cloud/services/powervs"
3937 "sigs.k8s.io/cluster-api-provider-ibmcloud/pkg/cloud/services/resourcecontroller"
4038 "sigs.k8s.io/cluster-api-provider-ibmcloud/pkg/endpoints"
@@ -55,9 +53,9 @@ type PowerVSImageScopeParams struct {
5553
5654// PowerVSImageScope defines a scope defined around a Power VS Cluster.
5755type PowerVSImageScope struct {
58- logr.Logger
59- Client client.Client
60- patchHelper * v1beta1patch .Helper
56+ // logr.Logger
57+ Client client.Client
58+ // patchHelper *patch .Helper
6159
6260 IBMPowerVSClient powervs.PowerVS
6361 IBMPowerVSImage * infrav1.IBMPowerVSImage
@@ -83,23 +81,9 @@ func NewPowerVSImageScope(params PowerVSImageScopeParams) (scope *PowerVSImageSc
8381 if params .Logger == (logr.Logger {}) {
8482 params .Logger = klog .Background ()
8583 }
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
9484
9585 // Create Resource Controller client.
9686 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- }
10387
10488 rc , err := resourcecontroller .NewService (serviceOption )
10589 if err != nil {
@@ -150,7 +134,7 @@ func NewPowerVSImageScope(params PowerVSImageScopeParams) (scope *PowerVSImageSc
150134 // Fetch the service endpoint.
151135 if svcEndpoint := endpoints .FetchPVSEndpoint (endpoints .ConstructRegionFromZone (* res .RegionID ), params .ServiceEndpoint ); svcEndpoint != "" {
152136 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 )
154138 }
155139
156140 c , err := powervs .NewService (options )
@@ -179,58 +163,49 @@ func (i *PowerVSImageScope) ensureImageUnique(imageName string) (*models.ImageRe
179163}
180164
181165// 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
184169 m := i .IBMPowerVSImage .ObjectMeta
185170
186171 imageReply , err := i .ensureImageUnique (m .Name )
187172 if err != nil {
188173 record .Warnf (i .IBMPowerVSImage , "FailedRetrieveImage" , "Failed to retrieve image %q" , m .Name )
189174 return nil , nil , err
190175 } else if imageReply != nil {
191- i .Info ("Image already exists" )
176+ log .Info ("Image already exists" )
192177 return imageReply , nil , nil
193178 }
194179
195180 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 )
198183 return nil , nil , nil
199184 }
200185 }
201186
202187 body := & models.CreateCosImageImportJob {
203188 ImageName : & m .Name ,
204- BucketName : s .Bucket ,
189+ BucketName : imageSpec .Bucket ,
205190 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 ,
209194 }
210195
211196 jobRef , err := i .IBMPowerVSClient .CreateCosImage (body )
212197 if err != nil {
213- i .Info ("Unable to create new import job request" )
198+ log .Info ("Unable to create new import job request" )
214199 record .Warnf (i .IBMPowerVSImage , "FailedCreateImageImportJob" , "Failed image import job creation - %v" , err )
215200 return nil , nil , err
216201 }
217- i .Info ("New import job request created" )
202+ log .Info ("New import job request created" )
218203 record .Eventf (i .IBMPowerVSImage , "SuccessfulCreateImageImportJob" , "Created image import job %q" , * jobRef .ID )
219204 return nil , jobRef , nil
220205}
221206
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-
232207// DeleteImage will delete the image.
233- func (i * PowerVSImageScope ) DeleteImage () error {
208+ func (i * PowerVSImageScope ) DeleteImage (ctx context. Context ) error {
234209 if err := i .IBMPowerVSClient .DeleteImage (i .IBMPowerVSImage .Status .ImageID ); err != nil {
235210 record .Warnf (i .IBMPowerVSImage , "FailedDeleteImage" , "Failed image deletion - %v" , err )
236211 return err
@@ -245,7 +220,7 @@ func (i *PowerVSImageScope) GetImportJob() (*models.Job, error) {
245220}
246221
247222// DeleteImportJob will delete the image import job.
248- func (i * PowerVSImageScope ) DeleteImportJob () error {
223+ func (i * PowerVSImageScope ) DeleteImportJob (ctx context. Context ) error {
249224 if err := i .IBMPowerVSClient .DeleteJob (i .IBMPowerVSImage .Status .JobID ); err != nil {
250225 record .Warnf (i .IBMPowerVSImage , "FailedDeleteImageImportJob" , "Failed image import job deletion - %v" , err )
251226 return err
0 commit comments