From afab6a25db3c88b0cd25199c0fb2c162d1380cb8 Mon Sep 17 00:00:00 2001 From: David Eliahu Date: Sat, 2 May 2020 20:13:23 -0700 Subject: [PATCH 1/5] UI improvements --- cli/cmd/cluster.go | 3 ++- cli/cmd/env.go | 2 +- cli/cmd/lib_cluster_config.go | 2 -- cli/cmd/lib_manager.go | 6 +----- cli/local/model_cache.go | 4 ++-- pkg/lib/docker/docker.go | 4 ++-- 6 files changed, 8 insertions(+), 13 deletions(-) diff --git a/cli/cmd/cluster.go b/cli/cmd/cluster.go index d2a4440c19..93eef840c5 100644 --- a/cli/cmd/cluster.go +++ b/cli/cmd/cluster.go @@ -28,6 +28,7 @@ import ( "github.com/cortexlabs/cortex/cli/types/cliconfig" "github.com/cortexlabs/cortex/pkg/lib/aws" cr "github.com/cortexlabs/cortex/pkg/lib/configreader" + "github.com/cortexlabs/cortex/pkg/lib/console" "github.com/cortexlabs/cortex/pkg/lib/docker" "github.com/cortexlabs/cortex/pkg/lib/errors" "github.com/cortexlabs/cortex/pkg/lib/exit" @@ -159,7 +160,7 @@ var _upCmd = &cobra.Command{ exit.Error(ErrorClusterUp(out + helpStr)) } - fmt.Printf("\nyour cli environment named \"%s\" has been configured to connect to this cluster; append --env=%s in cortex commands to reference it, or set it as your default via `cortex env default %s`\n", _flagClusterEnv, _flagClusterEnv, _flagClusterEnv) + fmt.Printf(console.Bold("\nan environment named \"%s\" has been configured for this cluster; append `--env=%s` to cortex commands to reference it, or set it as your default with `cortex env default %s`\n"), _flagClusterEnv, _flagClusterEnv, _flagClusterEnv) }, } diff --git a/cli/cmd/env.go b/cli/cmd/env.go index 75f6e9b424..23bd3af298 100644 --- a/cli/cmd/env.go +++ b/cli/cmd/env.go @@ -128,7 +128,7 @@ var _envListCmd = &cobra.Command{ defaultEnv := getDefaultEnv(_generalCommandType) for i, env := range cliConfig.Environments { - fmt.Println(env.String(defaultEnv == env.Name)) + fmt.Print(env.String(defaultEnv == env.Name)) if i+1 < len(cliConfig.Environments) { fmt.Println() } diff --git a/cli/cmd/lib_cluster_config.go b/cli/cmd/lib_cluster_config.go index 6b7de5fc9b..a24572b77c 100644 --- a/cli/cmd/lib_cluster_config.go +++ b/cli/cmd/lib_cluster_config.go @@ -434,8 +434,6 @@ func confirmInstallClusterConfig(clusterConfig *clusterconfig.Config, awsCreds A } fmt.Printf("cortex will also create an s3 bucket (%s) and a cloudwatch log group (%s)%s\n\n", clusterConfig.Bucket, clusterConfig.LogGroup, privateSubnetMsg) - fmt.Printf("your cli environment named \"%s\" will be configured to connect to this cluster\n\n", envName) - if clusterConfig.APILoadBalancerScheme == clusterconfig.InternalLoadBalancerScheme { fmt.Print("warning: you've configured the API load balancer to be internal; you must configure VPC Peering or an API Gateway VPC Link to connect to your APIs (see www.cortex.dev/guides/vpc-peering or www.cortex.dev/guides/api-gateway)\n\n") } diff --git a/cli/cmd/lib_manager.go b/cli/cmd/lib_manager.go index efc497b8f3..4d3f711307 100644 --- a/cli/cmd/lib_manager.go +++ b/cli/cmd/lib_manager.go @@ -50,15 +50,11 @@ func runManager(containerConfig *container.Config) (string, *int, error) { return "", nil, err } - pulledImage, err := docker.PullImage(containerConfig.Image, docker.NoAuth, docker.PrintDots) + _, err = docker.PullImage(containerConfig.Image, docker.NoAuth, docker.PrintDots) if err != nil { return "", nil, err } - if pulledImage { - fmt.Println() - } - hostConfig := &container.HostConfig{ Mounts: []mount.Mount{ { diff --git a/cli/local/model_cache.go b/cli/local/model_cache.go index 2ebb53ec2f..a9109dd215 100644 --- a/cli/local/model_cache.go +++ b/cli/local/model_cache.go @@ -99,8 +99,8 @@ func CacheModel(modelPath string, awsClient *aws.Client) (*spec.LocalModelCache, } func downloadModel(modelPath string, modelDir string, awsClient *aws.Client) error { - fmt.Printf("downloading model %s ", modelPath) - defer fmt.Print("\n") + fmt.Printf("○ downloading model %s ", modelPath) + defer fmt.Print("✓\n") dotCron := cron.Run(print.Dot, nil, 2*time.Second) defer dotCron.Cancel() diff --git a/pkg/lib/docker/docker.go b/pkg/lib/docker/docker.go index c78f186297..ecd3258ce8 100644 --- a/pkg/lib/docker/docker.go +++ b/pkg/lib/docker/docker.go @@ -169,8 +169,8 @@ func PullImage(image string, encodedAuthConfig string, pullVerbosity PullVerbosi jsonmessage.DisplayJSONMessagesStream(pullOutput, os.Stderr, termFd, isTerm, nil) fmt.Println() case PrintDots: - fmt.Printf("downloading docker image %s ", image) - defer fmt.Print("\n") + fmt.Printf("○ downloading docker image %s ", image) + defer fmt.Print("✓\n") dotCron := cron.Run(print.Dot, nil, 2*time.Second) defer dotCron.Cancel() // wait until the pull has completed From 61637f2f57125e8584fcafc47fb0137d5884787e Mon Sep 17 00:00:00 2001 From: David Eliahu Date: Sat, 2 May 2020 21:15:26 -0700 Subject: [PATCH 2/5] Update clusterconfig.go --- pkg/types/clusterconfig/clusterconfig.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/types/clusterconfig/clusterconfig.go b/pkg/types/clusterconfig/clusterconfig.go index edaf48bf19..bdecf50f5b 100644 --- a/pkg/types/clusterconfig/clusterconfig.go +++ b/pkg/types/clusterconfig/clusterconfig.go @@ -741,7 +741,6 @@ func InstallPrompt(clusterConfig *Config, awsClient *aws.Client, disallowPrompt } remainingPrompts := &cr.PromptValidation{ - SkipNonNilFields: true, SkipNonEmptyFields: true, PromptItemValidations: []*cr.PromptItemValidation{ { From 46bae37e61cf76ae758500b7fd8a9ed5b51a60b4 Mon Sep 17 00:00:00 2001 From: David Eliahu Date: Sat, 2 May 2020 22:07:37 -0700 Subject: [PATCH 3/5] Update lib_manager.go --- cli/cmd/lib_manager.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/cli/cmd/lib_manager.go b/cli/cmd/lib_manager.go index 4d3f711307..94cd7e18ff 100644 --- a/cli/cmd/lib_manager.go +++ b/cli/cmd/lib_manager.go @@ -39,7 +39,7 @@ import ( "github.com/docker/docker/api/types/mount" ) -func runManager(containerConfig *container.Config) (string, *int, error) { +func runManager(containerConfig *container.Config, addNewLineAfterPull bool) (string, *int, error) { containerConfig.Env = append(containerConfig.Env, "CORTEX_CLI_VERSION="+consts.CortexVersion) // Add a slight delay before running the command to ensure logs don't start until after the container is attached @@ -50,11 +50,15 @@ func runManager(containerConfig *container.Config) (string, *int, error) { return "", nil, err } - _, err = docker.PullImage(containerConfig.Image, docker.NoAuth, docker.PrintDots) + pulledImage, err := docker.PullImage(containerConfig.Image, docker.NoAuth, docker.PrintDots) if err != nil { return "", nil, err } + if pulledImage && addNewLineAfterPull { + fmt.Println() + } + hostConfig := &container.HostConfig{ Mounts: []mount.Mount{ { @@ -176,7 +180,7 @@ func runManagerUpdateCommand(entrypoint string, clusterConfig *clusterconfig.Con }, } - output, exitCode, err := runManager(containerConfig) + output, exitCode, err := runManager(containerConfig, false) if err != nil { return "", nil, err } @@ -203,7 +207,7 @@ func runManagerAccessCommand(entrypoint string, accessConfig clusterconfig.Acces }, } - output, exitCode, err := runManager(containerConfig) + output, exitCode, err := runManager(containerConfig, true) if err != nil { return "", nil, err } From f6875a30cfa79193c7abf486c00fcafc6192d37b Mon Sep 17 00:00:00 2001 From: vishal Date: Sun, 3 May 2020 12:28:49 -0400 Subject: [PATCH 4/5] Update errors.go --- cli/cmd/errors.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/cmd/errors.go b/cli/cmd/errors.go index 7f1fa649ee..d0f5eb0815 100644 --- a/cli/cmd/errors.go +++ b/cli/cmd/errors.go @@ -49,7 +49,7 @@ const ( ErrEnvironmentNotFound = "cli.environment_not_found" ErrOperatorEndpointInLocalEnvironment = "cli.operator_endpoint_in_local_environment" ErrOperatorConfigFromLocalEnvironment = "cli.operater_config_from_local_environment" - ErrFieldNotFoundInEnvironment = "cli.err_field_not_found_in_environment" + ErrFieldNotFoundInEnvironment = "cli.field_not_found_in_environment" ErrInvalidOperatorEndpoint = "cli.invalid_operator_endpoint" ErrCortexYAMLNotFound = "cli.cortex_yaml_not_found" ErrConnectToDockerDaemon = "cli.connect_to_docker_daemon" From bf98e022c5b79bb48e307772699536db9a10618a Mon Sep 17 00:00:00 2001 From: vishal Date: Sun, 3 May 2020 12:29:01 -0400 Subject: [PATCH 5/5] Update errors.go --- cli/local/errors.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/local/errors.go b/cli/local/errors.go index 5556f8484f..c8ee85e50f 100644 --- a/cli/local/errors.go +++ b/cli/local/errors.go @@ -27,7 +27,7 @@ const ( ErrNotAbsolutePath = "local.not_absolute_path" ErrAPINotDeployed = "local.api_not_deployed" ErrAPISpecNotFound = "local.api_specification_not_found" - ErrCortexVersionMismatch = "local.err_cortex_version_mismatch" + ErrCortexVersionMismatch = "local.cortex_version_mismatch" ErrAPIContainersNotFound = "local.api_containers_not_found" ErrFoundContainersWithoutAPISpec = "local.found_containers_without_api_spec" ErrInvalidTensorFlowZip = "local.invalid_tensorflow_zip"