@@ -167,32 +167,57 @@ func (r *Reconciler) ReconcileResource(ctx context.Context, serviceInstance *kor
167167 }
168168
169169 if ! serviceInstance .Status .Provisioned {
170- provisionResponse , err := r .provisionServiceInstance (ctx , serviceInstance , serviceInstanceAssets , osbapiClient )
170+ return r .reconcileProvisionedServiceInstance (ctx , serviceInstance , serviceInstanceAssets , osbapiClient )
171+ }
172+
173+ return r .reconcileUpdatedServiceInstance (ctx , serviceInstance , serviceInstanceAssets , osbapiClient )
174+ }
175+
176+ func (r * Reconciler ) reconcileProvisionedServiceInstance (
177+ ctx context.Context ,
178+ serviceInstance * korifiv1alpha1.CFServiceInstance ,
179+ serviceInstanceAssets osbapi.ServiceInstanceAssets ,
180+ osbapiClient osbapi.BrokerClient ,
181+ ) (ctrl.Result , error ) {
182+ log := logr .FromContextOrDiscard (ctx )
183+ provisionResponse , err := r .provisionServiceInstance (ctx , serviceInstance , serviceInstanceAssets , osbapiClient )
184+ if err != nil {
185+ log .Error (err , "failed to provision service instance" )
186+ return ctrl.Result {}, fmt .Errorf ("failed to provision service instance: %w" , err )
187+ }
188+
189+ if provisionResponse .IsAsync {
190+ lastOpResponse , err := r .pollLastOperation (ctx , serviceInstance , serviceInstanceAssets , osbapiClient , provisionResponse .Operation )
171191 if err != nil {
172- log .Error (err , "failed to provision service instance" )
173- return ctrl.Result {}, fmt .Errorf ("failed to provision service instance: %w" , err )
192+ return ctrl.Result {}, err
174193 }
194+ return r .processProvisionOperation (serviceInstance , lastOpResponse )
195+ }
175196
176- if provisionResponse .IsAsync {
177- lastOpResponse , err := r .pollLastOperation (ctx , serviceInstance , serviceInstanceAssets , osbapiClient , provisionResponse .Operation )
178- if err != nil {
179- return ctrl.Result {}, err
180- }
181- return r .processProvisionOperation (serviceInstance , lastOpResponse )
182- }
183- } else {
184- updateResponse , err := r .updateServiceInstance (ctx , serviceInstance , serviceInstanceAssets , osbapiClient )
197+ serviceInstance .Status .Provisioned = true
198+ serviceInstance .Status .MaintenanceInfo = serviceInstanceAssets .ServicePlan .Spec .MaintenanceInfo
199+ serviceInstance .Status .LastOperation .State = "succeeded"
200+ return ctrl.Result {}, nil
201+ }
202+
203+ func (r * Reconciler ) reconcileUpdatedServiceInstance (
204+ ctx context.Context ,
205+ serviceInstance * korifiv1alpha1.CFServiceInstance ,
206+ serviceInstanceAssets osbapi.ServiceInstanceAssets ,
207+ osbapiClient osbapi.BrokerClient ,
208+ ) (ctrl.Result , error ) {
209+ log := logr .FromContextOrDiscard (ctx )
210+ updateResponse , err := r .updateServiceInstance (ctx , serviceInstance , serviceInstanceAssets , osbapiClient )
211+ if err != nil {
212+ log .Error (err , "failed to update service instance" )
213+ return ctrl.Result {}, fmt .Errorf ("failed to update service instance: %w" , err )
214+ }
215+ if updateResponse .IsAsync {
216+ lastOpResponse , err := r .pollLastOperation (ctx , serviceInstance , serviceInstanceAssets , osbapiClient , updateResponse .Operation )
185217 if err != nil {
186- log .Error (err , "failed to update service instance" )
187- return ctrl.Result {}, fmt .Errorf ("failed to update service instance: %w" , err )
188- }
189- if updateResponse .IsAsync {
190- lastOpResponse , err := r .pollLastOperation (ctx , serviceInstance , serviceInstanceAssets , osbapiClient , updateResponse .Operation )
191- if err != nil {
192- return ctrl.Result {}, err
193- }
194- return r .processUpdateOperation (serviceInstance , lastOpResponse )
218+ return ctrl.Result {}, err
195219 }
220+ return r .processUpdateOperation (serviceInstance , lastOpResponse )
196221 }
197222
198223 serviceInstance .Status .Provisioned = true
0 commit comments