From 7c8c827a88cbc5bfde88154d4c6e0fe791bd3443 Mon Sep 17 00:00:00 2001 From: Natasha Sarkar Date: Wed, 30 Sep 2020 12:17:14 -0700 Subject: [PATCH] added IsEmpty() method --- api/builtins/NamespaceTransformer.go | 2 +- api/builtins/PatchStrategicMergeTransformer.go | 4 ++-- api/builtins/PatchTransformer.go | 6 +++--- api/resource/resource.go | 4 ++++ plugin/builtin/namespacetransformer/NamespaceTransformer.go | 2 +- .../PatchStrategicMergeTransformer.go | 4 ++-- plugin/builtin/patchtransformer/PatchTransformer.go | 6 +++--- 7 files changed, 16 insertions(+), 12 deletions(-) diff --git a/api/builtins/NamespaceTransformer.go b/api/builtins/NamespaceTransformer.go index 8f7fddec8..c459cd44c 100644 --- a/api/builtins/NamespaceTransformer.go +++ b/api/builtins/NamespaceTransformer.go @@ -33,7 +33,7 @@ func (p *NamespaceTransformerPlugin) Transform(m resmap.ResMap) error { return nil } for _, r := range m.Resources() { - if len(r.Map()) == 0 { + if r.IsEmpty() { // Don't mutate empty objects? continue } diff --git a/api/builtins/PatchStrategicMergeTransformer.go b/api/builtins/PatchStrategicMergeTransformer.go index fe2693aed..fe35533ca 100644 --- a/api/builtins/PatchStrategicMergeTransformer.go +++ b/api/builtins/PatchStrategicMergeTransformer.go @@ -94,14 +94,14 @@ func (p *PatchStrategicMergeTransformerPlugin) Transform(m resmap.ResMap) error // Some unknown error, let it through. return err } - if len(target.Map()) != 0 { + if !target.IsEmpty() { return errors.Wrapf( err, "with unexpectedly non-empty object map of size %d", len(target.Map())) } // Fall through to handle deleted object. } - if len(target.Map()) == 0 { + if target.IsEmpty() { // This means all fields have been removed from the object. // This can happen if a patch required deletion of the // entire resource (not just a part of it). This means diff --git a/api/builtins/PatchTransformer.go b/api/builtins/PatchTransformer.go index da5adec48..5d6f03e68 100644 --- a/api/builtins/PatchTransformer.go +++ b/api/builtins/PatchTransformer.go @@ -111,14 +111,14 @@ func (p *PatchTransformerPlugin) transformStrategicMerge(m resmap.ResMap, patch // Some unknown error, let it through. return err } - if len(res.Map()) != 0 { + if !res.IsEmpty() { return errors.Wrapf( err, "with unexpectedly non-empty object map of size %d", len(res.Map())) } // Fall through to handle deleted object. } - if len(res.Map()) == 0 { + if res.IsEmpty() { // This means all fields have been removed from the object. // This can happen if a patch required deletion of the // entire resource (not just a part of it). This means @@ -143,7 +143,7 @@ func (p *PatchTransformerPlugin) applySMPatch(resource, patch *resource.Resource err = filtersutil.ApplyToJSON(patchstrategicmerge.Filter{ Patch: node, }, resource) - if len(resource.Map()) != 0 { + if !resource.IsEmpty() { resource.SetName(n) resource.SetNamespace(ns) } diff --git a/api/resource/resource.go b/api/resource/resource.go index 15bc2897a..81d24268d 100644 --- a/api/resource/resource.go +++ b/api/resource/resource.go @@ -68,6 +68,10 @@ func (r *Resource) GetString(p string) (string, error) { return r.kunStr.GetString(p) } +func (r *Resource) IsEmpty() bool { + return len(r.kunStr.Map()) == 0 +} + func (r *Resource) Map() map[string]interface{} { return r.kunStr.Map() } diff --git a/plugin/builtin/namespacetransformer/NamespaceTransformer.go b/plugin/builtin/namespacetransformer/NamespaceTransformer.go index b027f50a4..7341669a2 100644 --- a/plugin/builtin/namespacetransformer/NamespaceTransformer.go +++ b/plugin/builtin/namespacetransformer/NamespaceTransformer.go @@ -37,7 +37,7 @@ func (p *plugin) Transform(m resmap.ResMap) error { return nil } for _, r := range m.Resources() { - if len(r.Map()) == 0 { + if r.IsEmpty() { // Don't mutate empty objects? continue } diff --git a/plugin/builtin/patchstrategicmergetransformer/PatchStrategicMergeTransformer.go b/plugin/builtin/patchstrategicmergetransformer/PatchStrategicMergeTransformer.go index c8b36eff4..100af7f3f 100644 --- a/plugin/builtin/patchstrategicmergetransformer/PatchStrategicMergeTransformer.go +++ b/plugin/builtin/patchstrategicmergetransformer/PatchStrategicMergeTransformer.go @@ -98,14 +98,14 @@ func (p *plugin) Transform(m resmap.ResMap) error { // Some unknown error, let it through. return err } - if len(target.Map()) != 0 { + if !target.IsEmpty() { return errors.Wrapf( err, "with unexpectedly non-empty object map of size %d", len(target.Map())) } // Fall through to handle deleted object. } - if len(target.Map()) == 0 { + if target.IsEmpty() { // This means all fields have been removed from the object. // This can happen if a patch required deletion of the // entire resource (not just a part of it). This means diff --git a/plugin/builtin/patchtransformer/PatchTransformer.go b/plugin/builtin/patchtransformer/PatchTransformer.go index d856453d2..172c92732 100644 --- a/plugin/builtin/patchtransformer/PatchTransformer.go +++ b/plugin/builtin/patchtransformer/PatchTransformer.go @@ -115,14 +115,14 @@ func (p *plugin) transformStrategicMerge(m resmap.ResMap, patch *resource.Resour // Some unknown error, let it through. return err } - if len(res.Map()) != 0 { + if !res.IsEmpty() { return errors.Wrapf( err, "with unexpectedly non-empty object map of size %d", len(res.Map())) } // Fall through to handle deleted object. } - if len(res.Map()) == 0 { + if res.IsEmpty() { // This means all fields have been removed from the object. // This can happen if a patch required deletion of the // entire resource (not just a part of it). This means @@ -147,7 +147,7 @@ func (p *plugin) applySMPatch(resource, patch *resource.Resource) error { err = filtersutil.ApplyToJSON(patchstrategicmerge.Filter{ Patch: node, }, resource) - if len(resource.Map()) != 0 { + if !resource.IsEmpty() { resource.SetName(n) resource.SetNamespace(ns) }