diff --git a/pkg/spec/types.go b/pkg/spec/types.go index 864f51928..7da8eb497 100644 --- a/pkg/spec/types.go +++ b/pkg/spec/types.go @@ -1,6 +1,8 @@ package spec import ( + "fmt" + "strings" "database/sql" "k8s.io/client-go/pkg/api/v1" @@ -62,10 +64,6 @@ type UserSyncer interface { } func (n NamespacedName) String() string { - if n.Namespace == "" && n.Name == "" { - return "" - } - return types.NamespacedName(n).String() } @@ -75,9 +73,16 @@ func (n NamespacedName) MarshalJSON() ([]byte, error) { func (n *NamespacedName) Decode(value string) error { name := types.NewNamespacedNameFromString(value) - if value != "" && name == (types.NamespacedName{}) { + + if strings.Trim(value, string(types.Separator)) != "" && name == (types.NamespacedName{}) { name.Name = value name.Namespace = v1.NamespaceDefault + } else if name.Namespace == "" { + name.Namespace = v1.NamespaceDefault + } + + if name.Name == "" { + return fmt.Errorf("Incorrect namespaced name") } *n = NamespacedName(name)