From e4ba898e20959b70fd480e674ad4b172374a2527 Mon Sep 17 00:00:00 2001 From: Jijie Wei Date: Thu, 18 Jun 2020 12:47:20 -0700 Subject: [PATCH] return subst name inerror message --- .../internal/commands/cmddeletesetter_test.go | 2 +- kyaml/setters2/delete.go | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/cmd/config/internal/commands/cmddeletesetter_test.go b/cmd/config/internal/commands/cmddeletesetter_test.go index 14905527c..dd1f8ce54 100644 --- a/cmd/config/internal/commands/cmddeletesetter_test.go +++ b/cmd/config/internal/commands/cmddeletesetter_test.go @@ -222,7 +222,7 @@ openAPI: apiVersion: apps/v1 kind: Deployment `, - err: `setter is used in substitution, please delete the substitution first`, + err: `setter is used in substitution image, please delete the substitution first`, }, } for i := range tests { diff --git a/kyaml/setters2/delete.go b/kyaml/setters2/delete.go index 9025749c8..f4feaed44 100644 --- a/kyaml/setters2/delete.go +++ b/kyaml/setters2/delete.go @@ -73,11 +73,11 @@ func (dd DeleterDefinition) DeleteFromFile(path string) error { return yaml.UpdateFile(dd, path) } -// ContainedInSubstituion check if the setter used in substituition -func ContainedInSubstituion(definitions *yaml.RNode, key string) bool { +// ContainedInSubstituion check if the setter used in substituition and return the substitution name if true +func ContainedInSubstituion(definitions *yaml.RNode, key string) string { fieldNames, err := definitions.Fields() if err != nil { - return false + return "" } for _, fieldname := range fieldNames { // the definition key -- contains the substitution name @@ -100,13 +100,13 @@ func ContainedInSubstituion(definitions *yaml.RNode, key string) bool { // Check the ref in value to see if it contains the setter key for _, v := range subst.Values { if strings.HasSuffix(v.Ref, key) { - return true + return subst.Name } } } } - return false + return "" } func (dd DeleterDefinition) Filter(object *yaml.RNode) (*yaml.RNode, error) { @@ -121,8 +121,10 @@ func (dd DeleterDefinition) Filter(object *yaml.RNode) (*yaml.RNode, error) { return nil, errors.Errorf("setter does not exist") } - if ContainedInSubstituion(definitions, key) { - return nil, errors.Errorf("setter is used in substitution, please delete the substitution first") + subst := ContainedInSubstituion(definitions, key) + + if subst != "" { + return nil, errors.Errorf("setter is used in substitution %s, please delete the substitution first", subst) } for i := 0; i < len(definitions.Content()); i += 2 {