From ee2f9c95e7367602c0e9b34ff7789838f3f672fc Mon Sep 17 00:00:00 2001 From: juanvallejo Date: Tue, 17 Oct 2017 13:24:50 -0400 Subject: [PATCH] update resource selector - kubectl drain --- pkg/kubectl/cmd/drain.go | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/pkg/kubectl/cmd/drain.go b/pkg/kubectl/cmd/drain.go index 7d0a9b4ba08..9a678e771c0 100644 --- a/pkg/kubectl/cmd/drain.go +++ b/pkg/kubectl/cmd/drain.go @@ -237,20 +237,18 @@ func (o *DrainOptions) SetupDrain(cmd *cobra.Command, args []string) error { return err } - nameArgs := []string{"nodes"} - if len(args) > 0 { - nameArgs = append(nameArgs, args[0]) - if strings.Contains(args[0], "/") { - nameArgs = []string{args[0]} - } + builder := o.Factory.NewBuilder(). + NamespaceParam(cmdNamespace).DefaultNamespace(). + ResourceNames("nodes", args...). + SingleResourceType(). + Flatten() + + if len(o.Selector) > 0 { + builder = builder.SelectorParam(o.Selector). + ResourceTypes("nodes") } - r := o.Factory.NewBuilder(). - NamespaceParam(cmdNamespace).DefaultNamespace(). - SelectorParam(o.Selector). - ResourceTypeOrNameArgs(true, nameArgs...). - Flatten(). - Do() + r := builder.Do() if err = r.Err(); err != nil { return err @@ -260,6 +258,10 @@ func (o *DrainOptions) SetupDrain(cmd *cobra.Command, args []string) error { if err != nil { return err } + if info.Mapping.Resource != "nodes" { + return fmt.Errorf("error: expected resource of type node, got %q", info.Mapping.Resource) + } + o.nodeInfos = append(o.nodeInfos, info) return nil })