Skip to content

Commit

Permalink
fix: should catch label name
Browse files Browse the repository at this point in the history
  • Loading branch information
linfan committed Nov 29, 2021
1 parent 877ae0e commit 18020c1
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 39 deletions.
2 changes: 1 addition & 1 deletion pkg/kt/cmd/mesh.go
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ func (o *MeshOptions) transport() *options.DaemonOptions {
daemonOptions := o.transportGlobalOptions()
daemonOptions.MeshOptions = &options.MeshOptions{
Expose: o.Expose,
Version: o.Version,
VersionMark: o.Version,
}
return daemonOptions
}
6 changes: 3 additions & 3 deletions pkg/kt/command/mesh.go
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ func autoMesh(ctx context.Context, k cluster.KubernetesInterface, deploymentName
common.KtRole: common.RoleShadow,
common.KtName: shadowPodName,
}
if err = createShadowService(ctx, k, shadowSvcName, ports, shadowLabels, opts); err != nil {
if err = createShadowService(ctx, k, shadowSvcName, ports, util.CopyMap(shadowLabels), opts); err != nil {
return err
}

Expand All @@ -159,7 +159,7 @@ func autoMesh(ctx context.Context, k cluster.KubernetesInterface, deploymentName
common.KtRole: common.RoleRouter,
common.KtName: routerPodName,
}
if err = createRouter(ctx, k, routerPodName, svc.Name, ports, routerLabels, versionMark, opts); err != nil {
if err = createRouter(ctx, k, routerPodName, svc.Name, ports, util.CopyMap(routerLabels), versionMark, opts); err != nil {
return err
}

Expand Down Expand Up @@ -414,6 +414,6 @@ func getVersion(versionMark string) (string, string) {
}

func isValidKey(key string) bool {
ok, err := regexp.MatchString("^[a-z][a-z0-9_-]*", key)
ok, err := regexp.MatchString("^[a-z][a-z0-9_-]*$", key)
return err == nil && ok
}
53 changes: 18 additions & 35 deletions pkg/kt/command/mesh_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package command
import (
"errors"
"flag"
"github.com/stretchr/testify/require"
"io/ioutil"
"testing"

Expand Down Expand Up @@ -46,60 +47,42 @@ func Test_meshCommand(t *testing.T) {
err := command.Run(context)

if c.expectedErr != nil {
if err.Error() != c.expectedErr.Error() {
t.Errorf("expected %v but is %v", c.expectedErr, err)
}
} else if err != c.expectedErr {
t.Errorf("expected %v but is %v", c.expectedErr, err)
require.Equal(t, err.Error(), c.expectedErr.Error(), "expected %v but is %v", c.expectedErr, err)
} else {
require.Equal(t, err, c.expectedErr, "expected %v but is %v", c.expectedErr, err)
}

}

}

func Test_toPortMapParameter(t *testing.T) {
if toPortMapParameter(map[int]int{ }) != "" {
t.Errorf("port map parameter incorrect")
}
if toPortMapParameter(map[int]int{ 80:8080 }) != "80:8080" {
t.Errorf("port map parameter incorrect")
}
if toPortMapParameter(map[int]int{ 80:8080, 70:7000 }) != "80:8080,70:7000" {
t.Errorf("port map parameter incorrect")
}
require.Equal(t, toPortMapParameter(map[int]int{ }), "", "port map parameter incorrect")
require.Equal(t, toPortMapParameter(map[int]int{ 80:8080 }), "80:8080", "port map parameter incorrect")
require.Equal(t, toPortMapParameter(map[int]int{ 80:8080, 70:7000 }), "80:8080,70:7000","port map parameter incorrect")
}

func Test_isValidKey(t *testing.T) {
validCases := []string{"kt", "k123", "kt-version_1123"}
for _, c := range validCases {
if !isValidKey(c) {
t.Errorf("\"%s\" should be valid", c)
}
require.True(t, isValidKey(c), "\"%s\" should be valid", c)
}
invalidCases := []string{"-version_1123", "123", ""}
invalidCases := []string{"-version_1123", "123", "", "kt.ver"}
for _, c := range invalidCases {
if isValidKey(c) {
t.Errorf("\"%s\" should be invalid", c)
}
require.True(t, !isValidKey(c), "\"%s\" should be invalid", c)
}
}

func Test_getVersion(t *testing.T) {
var k, v string
k, v = getVersion("")
if k != "kt-version" || len(v) != 5 {
t.Errorf("parse empty version mark, got %s:%s", k, v)
}
require.Equal(t, k, "kt-version")
require.Equal(t, len(v), 5)
k, v = getVersion("test")
if k != "kt-version" || v != "test" {
t.Errorf("parse key-only version mark, got %s:%s", k, v)
}
require.Equal(t, k, "kt-version")
require.Equal(t, v, "test")
k, v = getVersion("mark:")
if k != "mark" || len(v) != 5 {
t.Errorf("parse value-only version mark, got %s:%s", k, v)
}
require.Equal(t, k, "mark")
require.Equal(t, len(v), 5)
k, v = getVersion("mark:test")
if k != "mark" || v != "test" {
t.Errorf("parse key-value version mark, got %s:%s", k, v)
}
require.Equal(t, k, "mark")
require.Equal(t, v, "test")
}

0 comments on commit 18020c1

Please # to comment.