Skip to content

Commit

Permalink
Add Update***Status helpers (#1017)
Browse files Browse the repository at this point in the history
This is done to support crds with or without spec/status split.
  • Loading branch information
tamalsaha committed May 4, 2018
1 parent c611f4b commit 9ae1ea9
Show file tree
Hide file tree
Showing 8 changed files with 98 additions and 2 deletions.
1 change: 0 additions & 1 deletion apis/voyager/v1beta1/certificate.go
Expand Up @@ -12,7 +12,6 @@ const (
)

// +genclient
// +genclient:skipVerbs=updateStatus
// +k8s:openapi-gen=true
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

Expand Down
1 change: 0 additions & 1 deletion apis/voyager/v1beta1/ingress.go
Expand Up @@ -13,7 +13,6 @@ const (
)

// +genclient
// +genclient:skipVerbs=updateStatus
// +k8s:openapi-gen=true
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

Expand Down
17 changes: 17 additions & 0 deletions client/clientset/versioned/typed/voyager/v1beta1/certificate.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions client/clientset/versioned/typed/voyager/v1beta1/ingress.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Expand Up @@ -80,3 +80,23 @@ func TryUpdateCertificate(c cs.VoyagerV1beta1Interface, meta metav1.ObjectMeta,
}
return
}

func UpateCertificateStatus(c cs.VoyagerV1beta1Interface, cur *api.Certificate, transform func(*api.CertificateStatus) *api.CertificateStatus, useSubresource ...bool) (*api.Certificate, error) {
if len(useSubresource) > 1 {
return nil, errors.Errorf("invalid value passed for useSubresource: %v", useSubresource)
}

mod := &api.Certificate{
TypeMeta: cur.TypeMeta,
ObjectMeta: cur.ObjectMeta,
Spec: cur.Spec,
Status: *transform(cur.Status.DeepCopy()),
}

if len(useSubresource) == 1 && useSubresource[0] {
return c.Certificates(cur.Namespace).UpdateStatus(mod)
}

out, _, err := PatchCertificateObject(c, cur, mod)
return out, err
}
20 changes: 20 additions & 0 deletions client/clientset/versioned/typed/voyager/v1beta1/util/ingress.go
Expand Up @@ -80,3 +80,23 @@ func TryUpdateIngress(c cs.VoyagerV1beta1Interface, meta metav1.ObjectMeta, tran
}
return
}

func UpdateIngressStatus(c cs.VoyagerV1beta1Interface, cur *api.Ingress, transform func(*api.IngressStatus) *api.IngressStatus, useSubresource ...bool) (*api.Ingress, error) {
if len(useSubresource) > 1 {
return nil, errors.Errorf("invalid value passed for useSubresource: %v", useSubresource)
}

mod := &api.Ingress{
TypeMeta: cur.TypeMeta,
ObjectMeta: cur.ObjectMeta,
Spec: cur.Spec,
Status: *transform(cur.Status.DeepCopy()),
}

if len(useSubresource) == 1 && useSubresource[0] {
return c.Ingresses(cur.Namespace).UpdateStatus(mod)
}

out, _, err := PatchIngressObject(c, cur, mod)
return out, err
}

0 comments on commit 9ae1ea9

Please sign in to comment.