Skip to content

Commit

Permalink
Merge pull request #2919 from yuwenma/setstatus
Browse files Browse the repository at this point in the history
chore: simplify setStatus
  • Loading branch information
google-oss-prow[bot] authored Oct 15, 2024
2 parents f589f9f + 1778134 commit 00044e4
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 53 deletions.
29 changes: 3 additions & 26 deletions dev/tools/controllerbuilder/template/controller/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,6 @@ func (a *Adapter) Find(ctx context.Context) (bool, error) {
}

func (a *Adapter) Create(ctx context.Context, createOp *directbase.CreateOperation) error {
u := createOp.GetUnstructured()
log := klog.FromContext(ctx).WithName(ctrlName)
log.V(2).Info("creating {{.ProtoResource}}", "name", a.id.External)
mapCtx := &direct.MapContext{}
Expand Down Expand Up @@ -196,12 +194,10 @@ func (a *Adapter) Create(ctx context.Context, createOp *directbase.CreateOperati
return mapCtx.Err()
}
status.ExternalRef = &a.id.External
return setStatus(u, status)
return createOp.UpdateStatus(ctx, status, nil)
}

func (a *Adapter) Update(ctx context.Context, updateOp *directbase.UpdateOperation) error {
u := updateOp.GetUnstructured()
log := klog.FromContext(ctx).WithName(ctrlName)
log.V(2).Info("updating {{.ProtoResource}}", "name", a.id.External)
mapCtx := &direct.MapContext{}
Expand Down Expand Up @@ -243,7 +239,7 @@ func (a *Adapter) Update(ctx context.Context, updateOp *directbase.UpdateOperati
if mapCtx.Err() != nil {
return mapCtx.Err()
}
return setStatus(u, status)
return updateOp.UpdateStatus(ctx, status, nil)
}

func (a *Adapter) Export(ctx context.Context) (*unstructured.Unstructured, error) {
Expand Down Expand Up @@ -290,23 +286,4 @@ func (a *Adapter) Delete(ctx context.Context, deleteOp *directbase.DeleteOperati
return false, fmt.Errorf("waiting delete {{.ProtoResource}} %s: %w", a.id.External, err)
}
return true, nil
}
func setStatus(u *unstructured.Unstructured, typedStatus any) error {
status, err := runtime.DefaultUnstructuredConverter.ToUnstructured(typedStatus)
if err != nil {
return fmt.Errorf("error converting status to unstructured: %w", err)
}
old, _, _ := unstructured.NestedMap(u.Object, "status")
if old != nil {
status["conditions"] = old["conditions"]
status["observedGeneration"] = old["observedGeneration"]
status["externalRef"] = old["externalRef"]
}
u.Object["status"] = status
return nil
}
`
}
32 changes: 5 additions & 27 deletions pkg/controller/direct/secretmanager/secret_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -173,9 +173,7 @@ func ComputeAnnotations(secret *krm.SecretManagerSecret) map[string]string {
return annotations
}

func (a *Adapter) Create(ctx context.Context, createOp *directbase.CreateOperation) error {
u := createOp.GetUnstructured()

func (a *Adapter) Create(ctx context.Context, op *directbase.CreateOperation) error {
log := klog.FromContext(ctx).WithName(ctrlName)
log.V(2).Info("creating Secret", "name", a.id.External)
mapCtx := &direct.MapContext{}
Expand Down Expand Up @@ -212,7 +210,8 @@ func (a *Adapter) Create(ctx context.Context, createOp *directbase.CreateOperati
}
status.ExternalRef = &a.id.External
status.Name = created.Name
return setStatus(u, status)

return op.UpdateStatus(ctx, status, nil)
}

func topicsEqual(desired []*krm.TopicRef, actual []*secretmanagerpb.Topic) bool {
Expand All @@ -228,9 +227,7 @@ func topicsEqual(desired []*krm.TopicRef, actual []*secretmanagerpb.Topic) bool
return reflect.DeepEqual(sets.List(externalsDesired), sets.List(externalsActual))
}

func (a *Adapter) Update(ctx context.Context, updateOp *directbase.UpdateOperation) error {
u := updateOp.GetUnstructured()

func (a *Adapter) Update(ctx context.Context, op *directbase.UpdateOperation) error {
log := klog.FromContext(ctx).WithName(ctrlName)
log.V(2).Info("updating Secret", "name", a.id.External)
mapCtx := &direct.MapContext{}
Expand Down Expand Up @@ -284,7 +281,7 @@ func (a *Adapter) Update(ctx context.Context, updateOp *directbase.UpdateOperati
return mapCtx.Err()
}
status.Name = updated.Name
return setStatus(u, status)
return op.UpdateStatus(ctx, status, nil)
}

func (a *Adapter) Export(ctx context.Context) (*unstructured.Unstructured, error) {
Expand Down Expand Up @@ -320,22 +317,3 @@ func (a *Adapter) Delete(ctx context.Context, deleteOp *directbase.DeleteOperati
log.V(2).Info("successfully deleted Secret", "name", a.id.External)
return true, nil
}

func setStatus(u *unstructured.Unstructured, typedStatus any) error {
status, err := runtime.DefaultUnstructuredConverter.ToUnstructured(typedStatus)
if err != nil {
return fmt.Errorf("error converting status to unstructured: %w", err)
}

old, _, _ := unstructured.NestedMap(u.Object, "status")
if old != nil {
status["conditions"] = old["conditions"]
status["observedGeneration"] = old["observedGeneration"]
status["externalRef"] = old["externalRef"]
status["name"] = old["name"]
}

u.Object["status"] = status

return nil
}

0 comments on commit 00044e4

Please sign in to comment.