validate joinning cluster name (#146)
Signed-off-by: RainbowMango <renhongcai@huawei.com>
This commit is contained in:
parent
f684ef0371
commit
13a904c6cd
|
@ -3,7 +3,9 @@ package karmadactl
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
@ -13,6 +15,7 @@ import (
|
||||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
|
utilerrors "k8s.io/apimachinery/pkg/util/errors"
|
||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
kubeclient "k8s.io/client-go/kubernetes"
|
kubeclient "k8s.io/client-go/kubernetes"
|
||||||
"k8s.io/klog/v2"
|
"k8s.io/klog/v2"
|
||||||
|
@ -23,6 +26,7 @@ import (
|
||||||
"github.com/karmada-io/karmada/pkg/karmadactl/options"
|
"github.com/karmada-io/karmada/pkg/karmadactl/options"
|
||||||
"github.com/karmada-io/karmada/pkg/util"
|
"github.com/karmada-io/karmada/pkg/util"
|
||||||
"github.com/karmada-io/karmada/pkg/util/names"
|
"github.com/karmada-io/karmada/pkg/util/names"
|
||||||
|
"github.com/karmada-io/karmada/pkg/util/validation"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -70,12 +74,18 @@ func NewCmdJoin(cmdOut io.Writer, karmadaConfig KarmadaConfig) *cobra.Command {
|
||||||
Long: joinLong,
|
Long: joinLong,
|
||||||
Example: joinExample,
|
Example: joinExample,
|
||||||
Run: func(cmd *cobra.Command, args []string) {
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
|
// Set default values
|
||||||
err := opts.Complete(args)
|
err := opts.Complete(args)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
klog.Errorf("Error: %v", err)
|
klog.Errorf("Error: %v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if errs := opts.Validate(); len(errs) != 0 {
|
||||||
|
klog.Error(utilerrors.NewAggregate(errs).Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
err = RunJoin(cmdOut, karmadaConfig, opts)
|
err = RunJoin(cmdOut, karmadaConfig, opts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
klog.Errorf("Error: %v", err)
|
klog.Errorf("Error: %v", err)
|
||||||
|
@ -120,6 +130,16 @@ func (j *CommandJoinOption) Complete(args []string) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Validate checks option and return a slice of found errs.
|
||||||
|
func (j *CommandJoinOption) Validate() []error {
|
||||||
|
var errs []error
|
||||||
|
if errMsgs := validation.ValidateClusterName(j.ClusterName); len(errMsgs) != 0 {
|
||||||
|
errs = append(errs, fmt.Errorf("invalid cluster name(%s): %s", j.ClusterName, strings.Join(errMsgs, ";")))
|
||||||
|
}
|
||||||
|
|
||||||
|
return errs
|
||||||
|
}
|
||||||
|
|
||||||
// AddFlags adds flags to the specified FlagSet.
|
// AddFlags adds flags to the specified FlagSet.
|
||||||
func (j *CommandJoinOption) AddFlags(flags *pflag.FlagSet) {
|
func (j *CommandJoinOption) AddFlags(flags *pflag.FlagSet) {
|
||||||
j.GlobalCommandOptions.AddFlags(flags)
|
j.GlobalCommandOptions.AddFlags(flags)
|
||||||
|
|
Loading…
Reference in New Issue