From c6c66f02f96fa353f5c4598a825be22b14441a9d Mon Sep 17 00:00:00 2001 From: Tim Hockin Date: Mon, 21 Nov 2016 09:18:57 -0800 Subject: [PATCH] Remove vowels from rand.String, to avoid 'bad words' --- pkg/controller/serviceaccount/BUILD | 1 + .../serviceaccount/tokens_controller_test.go | 19 ++++++++++--------- pkg/util/rand/rand.go | 12 +++++++----- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/pkg/controller/serviceaccount/BUILD b/pkg/controller/serviceaccount/BUILD index 20bd1a6eb65..f743f300836 100644 --- a/pkg/controller/serviceaccount/BUILD +++ b/pkg/controller/serviceaccount/BUILD @@ -70,6 +70,7 @@ go_test( "//pkg/runtime/schema:go_default_library", "//pkg/util/rand:go_default_library", "//pkg/util/sets:go_default_library", + "//vendor:github.com/davecgh/go-spew/spew", "//vendor:github.com/golang/glog", ], ) diff --git a/pkg/controller/serviceaccount/tokens_controller_test.go b/pkg/controller/serviceaccount/tokens_controller_test.go index 4ea4febb8ce..ca6e4d4634f 100644 --- a/pkg/controller/serviceaccount/tokens_controller_test.go +++ b/pkg/controller/serviceaccount/tokens_controller_test.go @@ -22,6 +22,7 @@ import ( "testing" "time" + "github.com/davecgh/go-spew/spew" "github.com/golang/glog" "k8s.io/kubernetes/pkg/api" @@ -69,7 +70,7 @@ func tokenSecretReferences() []v1.ObjectReference { // addTokenSecretReference adds a reference to the ServiceAccountToken that will be created func addTokenSecretReference(refs []v1.ObjectReference) []v1.ObjectReference { - return addNamedTokenSecretReference(refs, "default-token-fplln") + return addNamedTokenSecretReference(refs, "default-token-p7w9c") } // addNamedTokenSecretReference adds a reference to the named ServiceAccountToken @@ -114,9 +115,9 @@ func opaqueSecret() *v1.Secret { } // createdTokenSecret returns the ServiceAccountToken secret posted when creating a new token secret. -// Named "default-token-fplln", since that is the first generated name after rand.Seed(1) +// Named "default-token-p7w9c", since that is the first generated name after rand.Seed(1) func createdTokenSecret(overrideName ...string) *v1.Secret { - return namedCreatedTokenSecret("default-token-fplln") + return namedCreatedTokenSecret("default-token-p7w9c") } // namedTokenSecret returns the ServiceAccountToken secret posted when creating a new token secret with the given name. @@ -259,12 +260,12 @@ func TestTokenCreation(t *testing.T) { // Attempt 2 core.NewGetAction(schema.GroupVersionResource{Version: "v1", Resource: "serviceaccounts"}, v1.NamespaceDefault, "default"), - core.NewCreateAction(schema.GroupVersionResource{Version: "v1", Resource: "secrets"}, v1.NamespaceDefault, namedCreatedTokenSecret("default-token-gziey")), + core.NewCreateAction(schema.GroupVersionResource{Version: "v1", Resource: "secrets"}, v1.NamespaceDefault, namedCreatedTokenSecret("default-token-x50vb")), // Attempt 3 core.NewGetAction(schema.GroupVersionResource{Version: "v1", Resource: "serviceaccounts"}, v1.NamespaceDefault, "default"), - core.NewCreateAction(schema.GroupVersionResource{Version: "v1", Resource: "secrets"}, v1.NamespaceDefault, namedCreatedTokenSecret("default-token-oh43e")), - core.NewUpdateAction(schema.GroupVersionResource{Version: "v1", Resource: "serviceaccounts"}, v1.NamespaceDefault, serviceAccount(addNamedTokenSecretReference(emptySecretReferences(), "default-token-oh43e"))), + core.NewCreateAction(schema.GroupVersionResource{Version: "v1", Resource: "secrets"}, v1.NamespaceDefault, namedCreatedTokenSecret("default-token-scq98")), + core.NewUpdateAction(schema.GroupVersionResource{Version: "v1", Resource: "serviceaccounts"}, v1.NamespaceDefault, serviceAccount(addNamedTokenSecretReference(emptySecretReferences(), "default-token-scq98"))), }, }, "new serviceaccount with no secrets encountering unending create error": { @@ -288,10 +289,10 @@ func TestTokenCreation(t *testing.T) { core.NewCreateAction(schema.GroupVersionResource{Version: "v1", Resource: "secrets"}, v1.NamespaceDefault, createdTokenSecret()), // Retry 1 core.NewGetAction(schema.GroupVersionResource{Version: "v1", Resource: "serviceaccounts"}, v1.NamespaceDefault, "default"), - core.NewCreateAction(schema.GroupVersionResource{Version: "v1", Resource: "secrets"}, v1.NamespaceDefault, namedCreatedTokenSecret("default-token-gziey")), + core.NewCreateAction(schema.GroupVersionResource{Version: "v1", Resource: "secrets"}, v1.NamespaceDefault, namedCreatedTokenSecret("default-token-x50vb")), // Retry 2 core.NewGetAction(schema.GroupVersionResource{Version: "v1", Resource: "serviceaccounts"}, v1.NamespaceDefault, "default"), - core.NewCreateAction(schema.GroupVersionResource{Version: "v1", Resource: "secrets"}, v1.NamespaceDefault, namedCreatedTokenSecret("default-token-oh43e")), + core.NewCreateAction(schema.GroupVersionResource{Version: "v1", Resource: "secrets"}, v1.NamespaceDefault, namedCreatedTokenSecret("default-token-scq98")), }, }, "new serviceaccount with missing secrets": { @@ -652,7 +653,7 @@ func TestTokenCreation(t *testing.T) { expectedAction := tc.ExpectedActions[i] if !reflect.DeepEqual(expectedAction, action) { - t.Errorf("%s: Expected\n\t%#v\ngot\n\t%#v", k, expectedAction, action) + t.Errorf("%s:\nExpected:\n%s\ngot:\n%s", k, spew.Sdump(expectedAction), spew.Sdump(action)) continue } } diff --git a/pkg/util/rand/rand.go b/pkg/util/rand/rand.go index 134c1526050..db109c2cd2a 100644 --- a/pkg/util/rand/rand.go +++ b/pkg/util/rand/rand.go @@ -23,8 +23,6 @@ import ( "time" ) -var letters = []rune("abcdefghijklmnopqrstuvwxyz0123456789") -var numLetters = len(letters) var rng = struct { sync.Mutex rand *rand.Rand @@ -72,12 +70,16 @@ func Perm(n int) []int { return rng.rand.Perm(n) } -// String generates a random alphanumeric string n characters long. This will -// panic if n is less than zero. +// We omit vowels from the set of available characters to reduce the chances +// of "bad words" being formed. +var alphanums = []rune("bcdfghjklmnpqrstvwxz0123456789") + +// String generates a random alphanumeric string, without vowels, which is n +// characters long. This will panic if n is less than zero. func String(length int) string { b := make([]rune, length) for i := range b { - b[i] = letters[Intn(numLetters)] + b[i] = alphanums[Intn(len(alphanums))] } return string(b) }