Migrate from urfave/cli to cobra (#1385)

This commit is contained in:
Ta-Ching Chen
2019-11-08 21:22:00 +08:00
committed by GitHub
parent 4b456db517
commit 1888cd2ac7
66 changed files with 2901 additions and 1130 deletions
+10 -10
View File
@@ -31,7 +31,7 @@ import (
"k8s.io/client-go/tools/portforward"
"k8s.io/client-go/transport/spdy"
"github.com/fission/fission/pkg/fission-cli/consolemsg"
"github.com/fission/fission/pkg/fission-cli/console"
"github.com/fission/fission/pkg/utils"
)
@@ -41,7 +41,7 @@ import (
// its targetPort. Once the port forward is started, wait for it to
// start accepting connections before returning.
func SetupPortForward(namespace, labelSelector string) (string, error) {
consolemsg.Verbose(2, "Setting up port forward to %s in namespace %s",
console.Verbose(2, "Setting up port forward to %s in namespace %s",
labelSelector, namespace)
localPort, err := findFreePort()
@@ -49,7 +49,7 @@ func SetupPortForward(namespace, labelSelector string) (string, error) {
return "", errors.Wrap(err, "error finding unused port")
}
consolemsg.Verbose(2, "Waiting for local port %v", localPort)
console.Verbose(2, "Waiting for local port %v", localPort)
for {
conn, _ := net.DialTimeout("tcp",
net.JoinHostPort("", localPort), time.Millisecond)
@@ -61,7 +61,7 @@ func SetupPortForward(namespace, labelSelector string) (string, error) {
time.Sleep(time.Millisecond * 50)
}
consolemsg.Verbose(2, "Starting port forward from local port %v", localPort)
console.Verbose(2, "Starting port forward from local port %v", localPort)
go func() {
err := runPortForward(labelSelector, localPort, namespace)
if err != nil {
@@ -70,7 +70,7 @@ func SetupPortForward(namespace, labelSelector string) (string, error) {
}
}()
consolemsg.Verbose(2, "Waiting for port forward %v to start...", localPort)
console.Verbose(2, "Waiting for port forward %v to start...", localPort)
for {
conn, _ := net.DialTimeout("tcp",
net.JoinHostPort("", localPort), time.Millisecond)
@@ -81,7 +81,7 @@ func SetupPortForward(namespace, labelSelector string) (string, error) {
time.Sleep(time.Millisecond * 50)
}
consolemsg.Verbose(2, "Port forward from local port %v started", localPort)
console.Verbose(2, "Port forward from local port %v started", localPort)
return localPort, nil
}
@@ -109,7 +109,7 @@ func runPortForward(labelSelector string, localPort string, ns string) error {
return err
}
consolemsg.Verbose(2, "Connected to Kubernetes API")
console.Verbose(2, "Connected to Kubernetes API")
// if namespace is unset, try to find a pod in any namespace
if len(ns) == 0 {
@@ -177,7 +177,7 @@ func runPortForward(labelSelector string, localPort string, ns string) error {
for _, servicePort := range service.Spec.Ports {
targetPort = servicePort.TargetPort.String()
}
consolemsg.Verbose(2, "Connecting to port %v on pod %v/%v", targetPort, podNameSpace, podNameSpace)
console.Verbose(2, "Connecting to port %v on pod %v/%v", targetPort, podNameSpace, podNameSpace)
stopChannel := make(chan struct{}, 1)
readyChannel := make(chan struct{})
@@ -199,7 +199,7 @@ func runPortForward(labelSelector string, localPort string, ns string) error {
dialer := spdy.NewDialer(upgrader, &http.Client{Transport: transport}, "POST", url)
outStream := os.Stdout
if consolemsg.Verbosity < 2 {
if console.Verbosity < 2 {
outStream = nil
}
fw, err := portforward.New(dialer, ports, stopChannel, readyChannel, outStream, os.Stderr)
@@ -207,6 +207,6 @@ func runPortForward(labelSelector string, localPort string, ns string) error {
return errors.Wrap(err, "error creating port forwarder")
}
consolemsg.Verbose(2, "Starting port forwarder")
console.Verbose(2, "Starting port forwarder")
return fw.ForwardPorts()
}
+18 -17
View File
@@ -36,10 +36,11 @@ import (
"github.com/fission/fission/pkg/controller/client"
"github.com/fission/fission/pkg/fission-cli/cliwrapper/cli"
"github.com/fission/fission/pkg/fission-cli/consolemsg"
"github.com/fission/fission/pkg/fission-cli/flag"
"github.com/fission/fission/pkg/fission-cli/console"
flagkey "github.com/fission/fission/pkg/fission-cli/flag/key"
"github.com/fission/fission/pkg/info"
"github.com/fission/fission/pkg/plugin"
"github.com/fission/fission/pkg/utils"
)
func GetFissionNamespace() string {
@@ -111,7 +112,7 @@ func GetKubernetesClient() (*restclient.Config, *kubernetes.Clientset, error) {
// In case that user.Current() may be unable to work under some circumstances and return errors like
// "user: Current not implemented on darwin/amd64" due to cross-compilation problem. (https://github.com/golang/go/issues/6376).
// Instead of doing fatal here, we fallback to get home directory from the environment $HOME.
consolemsg.Warn(fmt.Sprintf("Could not get the current user's directory (%s), fallback to get it from env $HOME", err))
console.Warn(fmt.Sprintf("Could not get the current user's directory (%s), fallback to get it from env $HOME", err))
homeDir = os.Getenv("HOME")
} else {
homeDir = usr.HomeDir
@@ -123,9 +124,9 @@ func GetKubernetesClient() (*restclient.Config, *kubernetes.Clientset, error) {
"Set the KUBECONFIG environment variable to your kubeconfig's path.")
}
loadingRules.ExplicitPath = kubeConfigPath
consolemsg.Verbose(2, "Using kubeconfig from %q", kubeConfigPath)
console.Verbose(2, "Using kubeconfig from %q", kubeConfigPath)
} else {
consolemsg.Verbose(2, "Using kubeconfig from environment %q", kubeConfigPath)
console.Verbose(2, "Using kubeconfig from environment %q", kubeConfigPath)
}
config, err := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
@@ -180,7 +181,7 @@ func GetVersion(client *client.Client) info.Versions {
serverInfo, err := client.ServerInfo()
if err != nil {
consolemsg.Warn(fmt.Sprintf("Error getting Fission API version: %v", err))
console.Warn(fmt.Sprintf("Error getting Fission API version: %v", err))
serverInfo = &info.ServerInfo{}
}
@@ -195,7 +196,7 @@ func GetVersion(client *client.Client) info.Versions {
}
func GetServer(flags cli.Input) (c *client.Client, err error) {
serverUrl := flags.GlobalString(flag.FISSION_SERVER)
serverUrl := flags.GlobalString(flagkey.Server)
if len(serverUrl) == 0 {
// starts local portforwarder etc.
serverUrl, err = GetApplicationUrl("application=fission-api")
@@ -230,10 +231,10 @@ func GetResourceReqs(flags cli.Input, resReqs *v1.ResourceRequirements) (*v1.Res
r.Limits = make(map[v1.ResourceName]resource.Quantity)
}
e := &multierror.Error{}
e := utils.MultiErrorWithFormat()
if flags.IsSet(flag.RUNTIME_MINCPU) {
mincpu := flags.Int(flag.RUNTIME_MINCPU)
if flags.IsSet(flagkey.RuntimeMincpu) {
mincpu := flags.Int(flagkey.RuntimeMincpu)
cpuRequest, err := resource.ParseQuantity(strconv.Itoa(mincpu) + "m")
if err != nil {
e = multierror.Append(e, errors.Wrap(err, "Failed to parse mincpu"))
@@ -241,8 +242,8 @@ func GetResourceReqs(flags cli.Input, resReqs *v1.ResourceRequirements) (*v1.Res
r.Requests[v1.ResourceCPU] = cpuRequest
}
if flags.IsSet(flag.RUNTIME_MINMEMORY) {
minmem := flags.Int(flag.RUNTIME_MINMEMORY)
if flags.IsSet(flagkey.RuntimeMinmemory) {
minmem := flags.Int(flagkey.RuntimeMinmemory)
memRequest, err := resource.ParseQuantity(strconv.Itoa(minmem) + "Mi")
if err != nil {
e = multierror.Append(e, errors.Wrap(err, "Failed to parse minmemory"))
@@ -250,8 +251,8 @@ func GetResourceReqs(flags cli.Input, resReqs *v1.ResourceRequirements) (*v1.Res
r.Requests[v1.ResourceMemory] = memRequest
}
if flags.IsSet(flag.RUNTIME_MAXCPU) {
maxcpu := flags.Int(flag.RUNTIME_MAXCPU)
if flags.IsSet(flagkey.RuntimeMaxcpu) {
maxcpu := flags.Int(flagkey.RuntimeMaxcpu)
cpuLimit, err := resource.ParseQuantity(strconv.Itoa(maxcpu) + "m")
if err != nil {
e = multierror.Append(e, errors.Wrap(err, "Failed to parse maxcpu"))
@@ -259,8 +260,8 @@ func GetResourceReqs(flags cli.Input, resReqs *v1.ResourceRequirements) (*v1.Res
r.Limits[v1.ResourceCPU] = cpuLimit
}
if flags.IsSet(flag.RUNTIME_MAXMEMORY) {
maxmem := flags.Int(flag.RUNTIME_MAXMEMORY)
if flags.IsSet(flagkey.RuntimeMaxmemory) {
maxmem := flags.Int(flagkey.RuntimeMaxmemory)
memLimit, err := resource.ParseQuantity(strconv.Itoa(maxmem) + "Mi")
if err != nil {
e = multierror.Append(e, errors.Wrap(err, "Failed to parse maxmemory"))
@@ -297,7 +298,7 @@ func GetResourceReqs(flags cli.Input, resReqs *v1.ResourceRequirements) (*v1.Res
}
func GetSpecDir(flags cli.Input) string {
specDir := flags.String(flag.SPEC_SPECDIR)
specDir := flags.String(flagkey.SpecDir)
if len(specDir) == 0 {
specDir = "specs"
}