33
44The frame, ``` kusionstack.io/resourceconsist/pkg/frame ``` , is used for adapters starting a controller, which handles
55Reconcile and Employer/Employees' spec&status. If you wrote an adapter in your own repo, you can import
6- ``` kusionstack.io/resourceconsist/pkg/frame/controller ``` and ``` kusionstack.io/resourceconsist/pkg/frame/webhook ``` ,
7- ] and call AddToMgr to start a controller.
6+ ``` kusionstack.io/resourceconsist/pkg/frame/controller ``` and ``` kusionstack.io/resourceconsist/pkg/frame/webhook ``` ,
7+ and call AddToMgr to start a controller.
88
99> webhookAdapter is only necessary to be implemented for controllers following PodOpsLifecycle.
1010``` Go
@@ -93,7 +93,7 @@ type DemoControllerAdapter struct {
9393}
9494```
9595Declaring that the DemoControllerAdapter implemented ``` ReconcileAdapter ``` and ``` ReconcileLifecycleOptions ``` .
96- Implementing ``` RconcileAdapter ``` is a must action, while ``` ReconcileLifecycleOptions ``` isn't, check the remarks
96+ Implementing ``` ReconcileAdapter ``` is a must action, while ``` ReconcileLifecycleOptions ``` isn't, check the remarks
9797for ``` ReconcileLifecycleOptions ``` in ``` kusionstack.io/resourceconsist/pkg/frame/controller/types.go ``` to find why.
9898``` Go
9999var _ ReconcileAdapter = &DemoControllerAdapter{}
@@ -116,13 +116,15 @@ employee.
116116type IEmployer interface {
117117 GetEmployerId () string
118118 GetEmployerStatuses () interface {}
119+ SetEmployerStatuses (employerStatuses interface {})
119120 EmployerEqual (employer IEmployer ) (bool , error )
120121}
121122
122123type IEmployee interface {
123124 GetEmployeeId () string
124125 GetEmployeeName () string
125126 GetEmployeeStatuses () interface {}
127+ SetEmployeeStatuses (employeeStatuses interface {})
126128 EmployeeEqual (employee IEmployee ) (bool , error )
127129}
128130
@@ -208,13 +210,13 @@ related backend provider. Here in the demo adapter, ```CreateEmployer/UpdateEmpl
208210``` demoResourceVipStatusInProvider ``` .
209211``` Go
210212func (r *DemoControllerAdapter ) CreateEmployer (ctx context .Context , employer client .Object , toCreates []IEmployer ) ([]IEmployer , []IEmployer , error ) {
211- if toCreates == nil || len (toCreates) == 0 {
213+ if len (toCreates) == 0 {
212214 return toCreates, nil , nil
213215 }
214216
215- toCreateDemoServiceStatus := make ([]DemoServiceStatus, len (toCreates))
217+ toCreateDemoServiceStatus := make ([]* DemoServiceStatus, len (toCreates))
216218 for idx , create := range toCreates {
217- createDemoServiceStatus , ok := create.(DemoServiceStatus)
219+ createDemoServiceStatus , ok := create.(* DemoServiceStatus)
218220 if !ok {
219221 return nil , toCreates, fmt.Errorf (" toCreates employer is not DemoServiceStatus" )
220222 }
@@ -231,13 +233,13 @@ func (r *DemoControllerAdapter) CreateEmployer(ctx context.Context, employer cli
231233}
232234
233235func (r *DemoControllerAdapter ) UpdateEmployer (ctx context .Context , employer client .Object , toUpdates []IEmployer ) ([]IEmployer , []IEmployer , error ) {
234- if toUpdates == nil || len (toUpdates) == 0 {
236+ if len (toUpdates) == 0 {
235237 return toUpdates, nil , nil
236238 }
237239
238- toUpdateDemoServiceStatus := make ([]DemoServiceStatus, len (toUpdates))
240+ toUpdateDemoServiceStatus := make ([]* DemoServiceStatus, len (toUpdates))
239241 for idx , update := range toUpdates {
240- updateDemoServiceStatus , ok := update.(DemoServiceStatus)
242+ updateDemoServiceStatus , ok := update.(* DemoServiceStatus)
241243 if !ok {
242244 return nil , toUpdates, fmt.Errorf (" toUpdates employer is not DemoServiceStatus" )
243245 }
@@ -254,13 +256,13 @@ func (r *DemoControllerAdapter) UpdateEmployer(ctx context.Context, employer cli
254256}
255257
256258func (r *DemoControllerAdapter ) DeleteEmployer (ctx context .Context , employer client .Object , toDeletes []IEmployer ) ([]IEmployer , []IEmployer , error ) {
257- if toDeletes == nil || len (toDeletes) == 0 {
259+ if len (toDeletes) == 0 {
258260 return toDeletes, nil , nil
259261 }
260262
261- toDeleteDemoServiceStatus := make ([]DemoServiceStatus, len (toDeletes))
263+ toDeleteDemoServiceStatus := make ([]* DemoServiceStatus, len (toDeletes))
262264 for idx , update := range toDeletes {
263- deleteDemoServiceStatus , ok := update.(DemoServiceStatus)
265+ deleteDemoServiceStatus , ok := update.(* DemoServiceStatus)
264266 if !ok {
265267 return nil , toDeletes, fmt.Errorf (" toDeletes employer is not DemoServiceStatus" )
266268 }
@@ -351,13 +353,13 @@ on related backend provider. Here in the demo adapter, ```CreateEmployees/Update
351353handles ``` demoResourceRsStatusInProvider ``` .
352354``` Go
353355func (r *DemoControllerAdapter ) CreateEmployees (ctx context .Context , employer client .Object , toCreates []IEmployee ) ([]IEmployee , []IEmployee , error ) {
354- if toCreates == nil || len (toCreates) == 0 {
356+ if len (toCreates) == 0 {
355357 return toCreates, nil , nil
356358 }
357- toCreateDemoPodStatuses := make ([]DemoPodStatus, len (toCreates))
359+ toCreateDemoPodStatuses := make ([]* DemoPodStatus, len (toCreates))
358360
359361 for idx , toCreate := range toCreates {
360- podStatus , ok := toCreate.(DemoPodStatus)
362+ podStatus , ok := toCreate.(* DemoPodStatus)
361363 if !ok {
362364 return nil , toCreates, fmt.Errorf (" toCreate is not DemoPodStatus" )
363365 }
@@ -375,14 +377,14 @@ func (r *DemoControllerAdapter) CreateEmployees(ctx context.Context, employer cl
375377}
376378
377379func (r *DemoControllerAdapter ) UpdateEmployees (ctx context .Context , employer client .Object , toUpdates []IEmployee ) ([]IEmployee , []IEmployee , error ) {
378- if toUpdates == nil || len (toUpdates) == 0 {
380+ if len (toUpdates) == 0 {
379381 return toUpdates, nil , nil
380382 }
381383
382- toUpdateDemoPodStatuses := make ([]DemoPodStatus, len (toUpdates))
384+ toUpdateDemoPodStatuses := make ([]* DemoPodStatus, len (toUpdates))
383385
384386 for idx , toUpdate := range toUpdates {
385- podStatus , ok := toUpdate.(DemoPodStatus)
387+ podStatus , ok := toUpdate.(* DemoPodStatus)
386388 if !ok {
387389 return nil , toUpdates, fmt.Errorf (" toUpdate is not DemoPodStatus" )
388390 }
@@ -400,14 +402,14 @@ func (r *DemoControllerAdapter) UpdateEmployees(ctx context.Context, employer cl
400402}
401403
402404func (r *DemoControllerAdapter ) DeleteEmployees (ctx context .Context , employer client .Object , toDeletes []IEmployee ) ([]IEmployee , []IEmployee , error ) {
403- if toDeletes == nil || len (toDeletes) == 0 {
405+ if len (toDeletes) == 0 {
404406 return toDeletes, nil , nil
405407 }
406408
407- toDeleteDemoPodStatuses := make ([]DemoPodStatus, len (toDeletes))
409+ toDeleteDemoPodStatuses := make ([]* DemoPodStatus, len (toDeletes))
408410
409411 for idx , toDelete := range toDeletes {
410- podStatus , ok := toDelete.(DemoPodStatus)
412+ podStatus , ok := toDelete.(* DemoPodStatus)
411413 if !ok {
412414 return nil , toDeletes, fmt.Errorf (" toDelete is not DemoPodStatus" )
413415 }
0 commit comments