Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: return nil instead of empty object #37

Merged
merged 1 commit into from
Jan 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 16 additions & 16 deletions pkg/api/cpolr.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ func (c *cpolrStore) List(ctx context.Context, options *metainternalversion.List
}
list, err := c.listCpolr()
if err != nil {
return &v1alpha2.ClusterPolicyReportList{}, errors.NewBadRequest("failed to list resource clusterpolicyreport")
return nil, errors.NewBadRequest("failed to list resource clusterpolicyreport")
}

// if labelSelector.String() == labels.Everything().String() {
Expand All @@ -88,7 +88,7 @@ func (c *cpolrStore) List(ctx context.Context, options *metainternalversion.List
func (c *cpolrStore) Get(ctx context.Context, name string, options *metav1.GetOptions) (runtime.Object, error) {
report, err := c.getCpolr(name)
if err != nil || report == nil {
return &v1alpha2.ClusterPolicyReport{}, errors.NewNotFound(v1alpha2.Resource("clusterpolicyreports"), name)
return nil, errors.NewNotFound(v1alpha2.Resource("clusterpolicyreports"), name)
}
return report, nil
}
Expand All @@ -106,18 +106,18 @@ func (c *cpolrStore) Create(ctx context.Context, obj runtime.Object, createValid
// Warnings: []string{err.Error()},
// }, nil
case "Strict":
return &v1alpha2.ClusterPolicyReport{}, err
return nil, err
}
}

cpolr, ok := obj.(*v1alpha2.ClusterPolicyReport)
if !ok {
return &v1alpha2.ClusterPolicyReport{}, errors.NewBadRequest("failed to validate cluster policy report")
return nil, errors.NewBadRequest("failed to validate cluster policy report")
}

if !isDryRun {
if err := c.createCpolr(cpolr); err != nil {
return &v1alpha2.ClusterPolicyReport{}, errors.NewBadRequest(fmt.Sprintf("cannot create cluster policy report: %s", err.Error()))
return nil, errors.NewBadRequest(fmt.Sprintf("cannot create cluster policy report: %s", err.Error()))
}
if err := c.broadcaster.Action(watch.Added, obj); err != nil {
klog.ErrorS(err, "failed to broadcast event")
Expand Down Expand Up @@ -145,12 +145,12 @@ func (c *cpolrStore) Update(ctx context.Context, name string, objInfo rest.Updat

oldObj, err := c.getCpolr(name)
if err != nil {
return &v1alpha2.ClusterPolicyReport{}, false, err
return nil, false, err
}

updatedObject, err := objInfo.UpdatedObject(ctx, oldObj)
if err != nil {
return &v1alpha2.ClusterPolicyReport{}, false, err
return nil, false, err
}
err = updateValidation(ctx, updatedObject, oldObj)
if err != nil {
Expand All @@ -162,18 +162,18 @@ func (c *cpolrStore) Update(ctx context.Context, name string, objInfo rest.Updat
// Warnings: []string{err.Error()},
// }, nil
case "Strict":
return &v1alpha2.ClusterPolicyReport{}, false, err
return nil, false, err
}
}

cpolr, ok := updatedObject.(*v1alpha2.ClusterPolicyReport)
if !ok {
return &v1alpha2.ClusterPolicyReport{}, false, errors.NewBadRequest("failed to validate cluster policy report")
return nil, false, errors.NewBadRequest("failed to validate cluster policy report")
}

if !isDryRun {
if err := c.createCpolr(cpolr); err != nil {
return &v1alpha2.ClusterPolicyReport{}, false, errors.NewBadRequest(fmt.Sprintf("cannot create cluster policy report: %s", err.Error()))
return nil, false, errors.NewBadRequest(fmt.Sprintf("cannot create cluster policy report: %s", err.Error()))
}
if err := c.broadcaster.Action(watch.Modified, updatedObject); err != nil {
klog.ErrorS(err, "failed to broadcast event")
Expand All @@ -189,19 +189,19 @@ func (c *cpolrStore) Delete(ctx context.Context, name string, deleteValidation r
cpolr, err := c.getCpolr(name)
if err != nil {
klog.ErrorS(err, "Failed to find cpolrs", "name", name)
return &v1alpha2.ClusterPolicyReport{}, false, errors.NewNotFound(v1alpha2.Resource("clusterpolicyreports"), name)
return nil, false, errors.NewNotFound(v1alpha2.Resource("clusterpolicyreports"), name)
}

err = deleteValidation(ctx, cpolr)
if err != nil {
klog.ErrorS(err, "invalid resource", "name", name)
return &v1alpha2.ClusterPolicyReport{}, false, errors.NewBadRequest(fmt.Sprintf("invalid resource: %s", err.Error()))
return nil, false, errors.NewBadRequest(fmt.Sprintf("invalid resource: %s", err.Error()))
}

if !isDryRun {
if err = c.deletePolr(cpolr); err != nil {
klog.ErrorS(err, "failed to delete cpolr", "name", name)
return &v1alpha2.ClusterPolicyReport{}, false, errors.NewBadRequest(fmt.Sprintf("failed to delete clusterpolicyreport: %s", err.Error()))
return nil, false, errors.NewBadRequest(fmt.Sprintf("failed to delete clusterpolicyreport: %s", err.Error()))
}
if err := c.broadcaster.Action(watch.Deleted, cpolr); err != nil {
klog.ErrorS(err, "failed to broadcast event")
Expand All @@ -217,21 +217,21 @@ func (c *cpolrStore) DeleteCollection(ctx context.Context, deleteValidation rest
obj, err := c.List(ctx, listOptions)
if err != nil {
klog.ErrorS(err, "Failed to find cpolrs")
return &v1alpha2.ClusterPolicyReportList{}, errors.NewBadRequest("Failed to find cluster policy reports")
return nil, errors.NewBadRequest("Failed to find cluster policy reports")
}

cpolrList, ok := obj.(*v1alpha2.ClusterPolicyReportList)
if !ok {
klog.ErrorS(err, "Failed to parse cpolrs")
return &v1alpha2.ClusterPolicyReportList{}, errors.NewBadRequest("Failed to parse cluster policy reports")
return nil, errors.NewBadRequest("Failed to parse cluster policy reports")
}

if !isDryRun {
for _, cpolr := range cpolrList.Items {
obj, isDeleted, err := c.Delete(ctx, cpolr.GetName(), deleteValidation, options)
if !isDeleted {
klog.ErrorS(err, "Failed to delete cpolr", "name", cpolr.GetName())
return &v1alpha2.ClusterPolicyReportList{}, errors.NewBadRequest(fmt.Sprintf("Failed to delete cluster policy report: %s", cpolr.GetName()))
return nil, errors.NewBadRequest(fmt.Sprintf("Failed to delete cluster policy report: %s", cpolr.GetName()))
}
if err := c.broadcaster.Action(watch.Deleted, obj); err != nil {
klog.ErrorS(err, "failed to broadcast event")
Expand Down
32 changes: 16 additions & 16 deletions pkg/api/polr.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ func (p *polrStore) List(ctx context.Context, options *metainternalversion.ListO
namespace := genericapirequest.NamespaceValue(ctx)
list, err := p.listPolr(namespace)
if err != nil {
return &v1alpha2.PolicyReportList{}, errors.NewBadRequest("failed to list resource policyreport")
return nil, errors.NewBadRequest("failed to list resource policyreport")
}

// if labelSelector == labels.Everything() {
Expand All @@ -91,7 +91,7 @@ func (p *polrStore) Get(ctx context.Context, name string, options *metav1.GetOpt
namespace := genericapirequest.NamespaceValue(ctx)
report, err := p.getPolr(name, namespace)
if err != nil || report == nil {
return &v1alpha2.PolicyReport{}, errors.NewNotFound(v1alpha2.Resource("policyreports"), name)
return nil, errors.NewNotFound(v1alpha2.Resource("policyreports"), name)
}
return report, nil
}
Expand All @@ -109,13 +109,13 @@ func (p *polrStore) Create(ctx context.Context, obj runtime.Object, createValida
// Warnings: []string{err.Error()},
// }, nil
case "Strict":
return &v1alpha2.PolicyReport{}, err
return nil, err
}
}

polr, ok := obj.(*v1alpha2.PolicyReport)
if !ok {
return &v1alpha2.PolicyReport{}, errors.NewBadRequest("failed to validate policy report")
return nil, errors.NewBadRequest("failed to validate policy report")
}

namespace := genericapirequest.NamespaceValue(ctx)
Expand All @@ -126,7 +126,7 @@ func (p *polrStore) Create(ctx context.Context, obj runtime.Object, createValida
if !isDryRun {
err := p.createPolr(polr)
if err != nil {
return &v1alpha2.PolicyReport{}, errors.NewBadRequest(fmt.Sprintf("cannot create policy report: %s", err.Error()))
return nil, errors.NewBadRequest(fmt.Sprintf("cannot create policy report: %s", err.Error()))
}
if err := p.broadcaster.Action(watch.Added, obj); err != nil {
klog.ErrorS(err, "failed to broadcast event")
Expand Down Expand Up @@ -155,12 +155,12 @@ func (p *polrStore) Update(ctx context.Context, name string, objInfo rest.Update

oldObj, err := p.getPolr(name, namespace)
if err != nil {
return &v1alpha2.PolicyReport{}, false, err
return nil, false, err
}

updatedObject, err := objInfo.UpdatedObject(ctx, oldObj)
if err != nil {
return &v1alpha2.PolicyReport{}, false, err
return nil, false, err
}
err = updateValidation(ctx, updatedObject, oldObj)
if err != nil {
Expand All @@ -172,13 +172,13 @@ func (p *polrStore) Update(ctx context.Context, name string, objInfo rest.Update
// Warnings: []string{err.Error()},
// }, nil
case "Strict":
return &v1alpha2.PolicyReport{}, false, err
return nil, false, err
}
}

polr, ok := updatedObject.(*v1alpha2.PolicyReport)
if !ok {
return &v1alpha2.PolicyReport{}, false, errors.NewBadRequest("failed to validate policy report")
return nil, false, errors.NewBadRequest("failed to validate policy report")
}

if len(polr.Namespace) == 0 {
Expand All @@ -188,7 +188,7 @@ func (p *polrStore) Update(ctx context.Context, name string, objInfo rest.Update
if !isDryRun {
err := p.updatePolr(polr, false)
if err != nil {
return &v1alpha2.PolicyReport{}, false, errors.NewBadRequest(fmt.Sprintf("cannot create policy report: %s", err.Error()))
return nil, false, errors.NewBadRequest(fmt.Sprintf("cannot create policy report: %s", err.Error()))
}
if err := p.broadcaster.Action(watch.Modified, updatedObject); err != nil {
klog.ErrorS(err, "failed to broadcast event")
Expand All @@ -205,20 +205,20 @@ func (p *polrStore) Delete(ctx context.Context, name string, deleteValidation re
polr, err := p.getPolr(name, namespace)
if err != nil {
klog.ErrorS(err, "Failed to find polrs", "name", name, "namespace", klog.KRef("", namespace))
return &v1alpha2.PolicyReport{}, false, errors.NewNotFound(v1alpha2.Resource("policyreports"), name)
return nil, false, errors.NewNotFound(v1alpha2.Resource("policyreports"), name)
}

err = deleteValidation(ctx, polr)
if err != nil {
klog.ErrorS(err, "invalid resource", "name", name, "namespace", klog.KRef("", namespace))
return &v1alpha2.PolicyReport{}, false, errors.NewBadRequest(fmt.Sprintf("invalid resource: %s", err.Error()))
return nil, false, errors.NewBadRequest(fmt.Sprintf("invalid resource: %s", err.Error()))
}

if !isDryRun {
err = p.deletePolr(polr)
if err != nil {
klog.ErrorS(err, "failed to delete polr", "name", name, "namespace", klog.KRef("", namespace))
return &v1alpha2.PolicyReport{}, false, errors.NewBadRequest(fmt.Sprintf("failed to delete policyreport: %s", err.Error()))
return nil, false, errors.NewBadRequest(fmt.Sprintf("failed to delete policyreport: %s", err.Error()))
}
if err := p.broadcaster.Action(watch.Deleted, polr); err != nil {
klog.ErrorS(err, "failed to broadcast event")
Expand All @@ -235,21 +235,21 @@ func (p *polrStore) DeleteCollection(ctx context.Context, deleteValidation rest.
obj, err := p.List(ctx, listOptions)
if err != nil {
klog.ErrorS(err, "Failed to find polrs", "namespace", klog.KRef("", namespace))
return &v1alpha2.PolicyReportList{}, errors.NewBadRequest("Failed to find policy reports")
return nil, errors.NewBadRequest("Failed to find policy reports")
}

polrList, ok := obj.(*v1alpha2.PolicyReportList)
if !ok {
klog.ErrorS(err, "Failed to parse polrs", "namespace", klog.KRef("", namespace))
return &v1alpha2.PolicyReportList{}, errors.NewBadRequest("Failed to parse policy reports")
return nil, errors.NewBadRequest("Failed to parse policy reports")
}

if !isDryRun {
for _, polr := range polrList.Items {
obj, isDeleted, err := p.Delete(ctx, polr.GetName(), deleteValidation, options)
if !isDeleted {
klog.ErrorS(err, "Failed to delete polr", "name", polr.GetName(), "namespace", klog.KRef("", namespace))
return &v1alpha2.PolicyReportList{}, errors.NewBadRequest(fmt.Sprintf("Failed to delete policy report: %s/%s", polr.Namespace, polr.GetName()))
return nil, errors.NewBadRequest(fmt.Sprintf("Failed to delete policy report: %s/%s", polr.Namespace, polr.GetName()))
}
if err := p.broadcaster.Action(watch.Deleted, obj); err != nil {
klog.ErrorS(err, "failed to broadcast event")
Expand Down
Loading