From 236881d7a9961f54b7bc2bd6c0d362dc1031ff05 Mon Sep 17 00:00:00 2001 From: Ilya Grishnov Date: Wed, 19 Apr 2023 16:03:17 +0300 Subject: [PATCH] bugfix: specifying confusing instance names Added instance name support for cases: * Application name as instance name * Instance name with dots Closes #763 --- CHANGELOG.md | 4 ++++ cli/common/utils.go | 19 +------------------ cli/common/utils_test.go | 28 ++-------------------------- cli/connect/connect.go | 2 +- cli/replicasets/failover_priority.go | 2 +- cli/replicasets/join.go | 2 +- cli/running/running.go | 2 +- 7 files changed, 11 insertions(+), 48 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dc21de190..1e04e7162 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Set `compat.fiber_slice_default` to `new` by default in application template. +### Fixed + +- Fixed support for instance names as application name and names with dots. + ## [2.12.4] - 2022-12-31 ### Changed diff --git a/cli/common/utils.go b/cli/common/utils.go index dafa00c6d..35703a796 100644 --- a/cli/common/utils.go +++ b/cli/common/utils.go @@ -377,21 +377,11 @@ func InsertInStringSlice(s []string, i int, elem string) []string { return res } -func GetInstancesFromArgs(args []string, projectName string) ([]string, error) { +func GetInstancesFromArgs(args []string) ([]string, error) { foundInstances := make(map[string]struct{}) var instances []string for _, instanceName := range args { - if instanceName == projectName { - return nil, fmt.Errorf(appNameSpecifiedError) - } - - parts := strings.SplitN(instanceName, ".", 2) - - if len(parts) > 1 { - return nil, fmt.Errorf(instanceIDSpecified) - } - if instanceName == "stateboard" { return nil, fmt.Errorf("Please, specify flag --stateboard for processing stateboard instance") } @@ -579,10 +569,3 @@ func ParseDependencies(rawDeps []string) (PackDependencies, error) { func ContainsUpperSymbols(src string) bool { return strings.ToLower(src) != src } - -const ( - appNameSpecifiedError = "Application name is specified. " + - "Please, specify instance name(s)" - instanceIDSpecified = `[APP_NAME].INSTANCE_NAME is specified. ` + - "Please, specify instance name(s)" -) diff --git a/cli/common/utils_test.go b/cli/common/utils_test.go index 60b845cf0..f2ac835fd 100644 --- a/cli/common/utils_test.go +++ b/cli/common/utils_test.go @@ -114,40 +114,16 @@ func TestGetInstancesFromArgs(t *testing.T) { var args []string var instances []string - projectName := "myapp" - - // wrong format - args = []string{"myapp.instance-1", "myapp.instance-2"} - _, err = GetInstancesFromArgs(args, projectName) - assert.EqualError(err, instanceIDSpecified) - - args = []string{"instance-1", "myapp.instance-2"} - _, err = GetInstancesFromArgs(args, projectName) - assert.EqualError(err, instanceIDSpecified) - - args = []string{"myapp"} - _, err = GetInstancesFromArgs(args, projectName) - assert.True(strings.Contains(err.Error(), appNameSpecifiedError)) - // duplicate instance name args = []string{"instance-1", "instance-1"} - _, err = GetInstancesFromArgs(args, projectName) + _, err = GetInstancesFromArgs(args) assert.True(strings.Contains(err.Error(), "Duplicate instance name specified: instance-1")) // instances are specified args = []string{"instance-1", "instance-2"} - instances, err = GetInstancesFromArgs(args, projectName) + instances, err = GetInstancesFromArgs(args) assert.Nil(err) assert.Equal([]string{"instance-1", "instance-2"}, instances) - - // specified both app name and instance name - args = []string{"instance-1", "myapp"} - instances, err = GetInstancesFromArgs(args, projectName) - assert.EqualError(err, appNameSpecifiedError) - - args = []string{"myapp", "instance-1"} - instances, err = GetInstancesFromArgs(args, projectName) - assert.EqualError(err, appNameSpecifiedError) } func TestCorrectDependencyParsing(t *testing.T) { diff --git a/cli/connect/connect.go b/cli/connect/connect.go index 6d9912010..5b0f9317b 100644 --- a/cli/connect/connect.go +++ b/cli/connect/connect.go @@ -21,7 +21,7 @@ func Enter(ctx *context.Ctx, args []string) error { return err } - if ctx.Running.Instances, err = common.GetInstancesFromArgs(args, ctx.Project.Name); err != nil { + if ctx.Running.Instances, err = common.GetInstancesFromArgs(args); err != nil { return err } diff --git a/cli/replicasets/failover_priority.go b/cli/replicasets/failover_priority.go index ba792e76d..16267b6d0 100644 --- a/cli/replicasets/failover_priority.go +++ b/cli/replicasets/failover_priority.go @@ -21,7 +21,7 @@ func SetFailoverPriority(ctx *context.Ctx, args []string) error { return err } - if ctx.Replicasets.FailoverPriorityNames, err = common.GetInstancesFromArgs(args, ctx.Project.Name); err != nil { + if ctx.Replicasets.FailoverPriorityNames, err = common.GetInstancesFromArgs(args); err != nil { return err } diff --git a/cli/replicasets/join.go b/cli/replicasets/join.go index 2e80abc0e..6a3bc267b 100644 --- a/cli/replicasets/join.go +++ b/cli/replicasets/join.go @@ -23,7 +23,7 @@ func Join(ctx *context.Ctx, args []string) error { return err } - if ctx.Replicasets.JoinInstancesNames, err = common.GetInstancesFromArgs(args, ctx.Project.Name); err != nil { + if ctx.Replicasets.JoinInstancesNames, err = common.GetInstancesFromArgs(args); err != nil { return err } diff --git a/cli/running/running.go b/cli/running/running.go index 47f379097..2da056cf6 100644 --- a/cli/running/running.go +++ b/cli/running/running.go @@ -46,7 +46,7 @@ func FillCtx(ctx *context.Ctx, args []string) error { ctx.Running.WithStateboard = true } - if ctx.Running.Instances, err = common.GetInstancesFromArgs(args, ctx.Project.Name); err != nil { + if ctx.Running.Instances, err = common.GetInstancesFromArgs(args); err != nil { return err }