diff --git a/internal/cmd/loadbalancer/add_target.go b/internal/cmd/loadbalancer/add_target.go index 896c4ef0..89f55bea 100644 --- a/internal/cmd/loadbalancer/add_target.go +++ b/internal/cmd/loadbalancer/add_target.go @@ -46,6 +46,9 @@ var AddTargetCmd = base.Cmd{ labelSelector, _ := cmd.Flags().GetString("label-selector") ipAddr, _ := cmd.Flags().GetString("ip") + if !util.AnySet(serverIDOrName, labelSelector, ipAddr) { + return fmt.Errorf("specify one of --server, --label-selector, or --ip") + } if !util.ExactlyOneSet(serverIDOrName, labelSelector, ipAddr) { return fmt.Errorf("--server, --label-selector, and --ip are mutually exclusive") } diff --git a/internal/cmd/loadbalancer/remove_target.go b/internal/cmd/loadbalancer/remove_target.go index a83f9069..ae71e38a 100644 --- a/internal/cmd/loadbalancer/remove_target.go +++ b/internal/cmd/loadbalancer/remove_target.go @@ -54,6 +54,9 @@ var RemoveTargetCmd = base.Cmd{ return fmt.Errorf("Load Balancer not found: %s", idOrName) } + if !util.AnySet(serverIDOrName, labelSelector, ipAddr) { + return fmt.Errorf("specify one of --server, --label-selector, or --ip") + } if !util.ExactlyOneSet(serverIDOrName, labelSelector, ipAddr) { return fmt.Errorf("--server, --label-selector, and --ip are mutually exclusive") } diff --git a/internal/cmd/util/util.go b/internal/cmd/util/util.go index c59bb398..d01afd2d 100644 --- a/internal/cmd/util/util.go +++ b/internal/cmd/util/util.go @@ -90,6 +90,15 @@ func ChainRunE(fns ...func(cmd *cobra.Command, args []string) error) func(cmd *c } } +func AnySet(ss ...string) bool { + for _, s := range ss { + if s != "" { + return true + } + } + return false +} + func ExactlyOneSet(s string, ss ...string) bool { set := s != "" for _, s := range ss {