Skip to content

Commit

Permalink
bugfix: specifying confusing instance names
Browse files Browse the repository at this point in the history
Added instance name support for cases:
* Application name as instance name
* Instance name with dots

Closes #763
  • Loading branch information
GRISHNOV committed Apr 19, 2023
1 parent 80f0f63 commit 780457a
Show file tree
Hide file tree
Showing 6 changed files with 7 additions and 48 deletions.
19 changes: 1 addition & 18 deletions cli/common/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -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")
}
Expand Down Expand Up @@ -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)"
)
28 changes: 2 additions & 26 deletions cli/common/utils_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
2 changes: 1 addition & 1 deletion cli/connect/connect.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand Down
2 changes: 1 addition & 1 deletion cli/replicasets/failover_priority.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand Down
2 changes: 1 addition & 1 deletion cli/replicasets/join.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand Down
2 changes: 1 addition & 1 deletion cli/running/running.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand Down

0 comments on commit 780457a

Please sign in to comment.