@@ -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,10 +53,7 @@ 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
61-
56+ Client client.Client
6257 IBMPowerVSClient powervs.PowerVS
6358 IBMPowerVSImage * infrav1.IBMPowerVSImage
6459 ServiceEndpoint []endpoints.ServiceEndpoint
@@ -83,23 +78,9 @@ func NewPowerVSImageScope(params PowerVSImageScopeParams) (scope *PowerVSImageSc
8378 if params .Logger == (logr.Logger {}) {
8479 params .Logger = klog .Background ()
8580 }
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
9481
9582 // Create Resource Controller client.
9683 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- }
10384
10485 rc , err := resourcecontroller .NewService (serviceOption )
10586 if err != nil {
@@ -150,7 +131,7 @@ func NewPowerVSImageScope(params PowerVSImageScopeParams) (scope *PowerVSImageSc
150131 // Fetch the service endpoint.
151132 if svcEndpoint := endpoints .FetchPVSEndpoint (endpoints .ConstructRegionFromZone (* res .RegionID ), params .ServiceEndpoint ); svcEndpoint != "" {
152133 options .IBMPIOptions .URL = svcEndpoint
153- scope .Logger .V (3 ).Info ("overriding the default powervs service endpoint" )
134+ params .Logger .V (3 ).Info ("overriding the default powervs service endpoint" , "serviceEndpoint" , svcEndpoint )
154135 }
155136
156137 c , err := powervs .NewService (options )
@@ -179,58 +160,49 @@ func (i *PowerVSImageScope) ensureImageUnique(imageName string) (*models.ImageRe
179160}
180161
181162// CreateImageCOSBucket creates a power vs image.
182- func (i * PowerVSImageScope ) CreateImageCOSBucket () (* models.ImageReference , * models.JobReference , error ) {
183- s := i .IBMPowerVSImage .Spec
163+ func (i * PowerVSImageScope ) CreateImageCOSBucket (ctx context.Context ) (* models.ImageReference , * models.JobReference , error ) {
164+ log := ctrl .LoggerFrom (ctx )
165+ imageSpec := i .IBMPowerVSImage .Spec
184166 m := i .IBMPowerVSImage .ObjectMeta
185167
186168 imageReply , err := i .ensureImageUnique (m .Name )
187169 if err != nil {
188170 record .Warnf (i .IBMPowerVSImage , "FailedRetrieveImage" , "Failed to retrieve image %q" , m .Name )
189171 return nil , nil , err
190172 } else if imageReply != nil {
191- i .Info ("Image already exists" )
173+ log .Info ("Image already exists" )
192174 return imageReply , nil , nil
193175 }
194176
195177 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 )
178+ if * lastJob .Status .State != string ( infrav1beta2 . PowerVSImageStateCompleted ) && * lastJob .Status .State != string ( infrav1beta2 . PowerVSImageStateFailed ) {
179+ log .Info ("Previous import job not yet finished" , "state" , * lastJob .Status .State )
198180 return nil , nil , nil
199181 }
200182 }
201183
202184 body := & models.CreateCosImageImportJob {
203185 ImageName : & m .Name ,
204- BucketName : s .Bucket ,
186+ BucketName : imageSpec .Bucket ,
205187 BucketAccess : core .StringPtr (BucketAccess ),
206- Region : s .Region ,
207- ImageFilename : s .Object ,
208- StorageType : s .StorageType ,
188+ Region : imageSpec .Region ,
189+ ImageFilename : imageSpec .Object ,
190+ StorageType : imageSpec .StorageType ,
209191 }
210192
211193 jobRef , err := i .IBMPowerVSClient .CreateCosImage (body )
212194 if err != nil {
213- i .Info ("Unable to create new import job request" )
195+ log .Info ("Unable to create new import job request" )
214196 record .Warnf (i .IBMPowerVSImage , "FailedCreateImageImportJob" , "Failed image import job creation - %v" , err )
215197 return nil , nil , err
216198 }
217- i .Info ("New import job request created" )
199+ log .Info ("New import job request created" )
218200 record .Eventf (i .IBMPowerVSImage , "SuccessfulCreateImageImportJob" , "Created image import job %q" , * jobRef .ID )
219201 return nil , jobRef , nil
220202}
221203
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-
232204// DeleteImage will delete the image.
233- func (i * PowerVSImageScope ) DeleteImage () error {
205+ func (i * PowerVSImageScope ) DeleteImage (ctx context. Context ) error {
234206 if err := i .IBMPowerVSClient .DeleteImage (i .IBMPowerVSImage .Status .ImageID ); err != nil {
235207 record .Warnf (i .IBMPowerVSImage , "FailedDeleteImage" , "Failed image deletion - %v" , err )
236208 return err
@@ -245,7 +217,7 @@ func (i *PowerVSImageScope) GetImportJob() (*models.Job, error) {
245217}
246218
247219// DeleteImportJob will delete the image import job.
248- func (i * PowerVSImageScope ) DeleteImportJob () error {
220+ func (i * PowerVSImageScope ) DeleteImportJob (ctx context. Context ) error {
249221 if err := i .IBMPowerVSClient .DeleteJob (i .IBMPowerVSImage .Status .JobID ); err != nil {
250222 record .Warnf (i .IBMPowerVSImage , "FailedDeleteImageImportJob" , "Failed image import job deletion - %v" , err )
251223 return err
0 commit comments