Explorar o código

pkg/flags: fatal on conflicting environment variable

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
Gyuho Lee %!s(int64=7) %!d(string=hai) anos
pai
achega
748ab8c398
Modificáronse 2 ficheiros con 1 adicións e 10 borrados
  1. 1 3
      pkg/flags/flag.go
  2. 0 7
      pkg/flags/flag_test.go

+ 1 - 3
pkg/flags/flag.go

@@ -119,9 +119,7 @@ func verifyEnv(prefix string, usedEnvKey, alreadySet map[string]bool) {
 			continue
 		}
 		if alreadySet[kv[0]] {
-			// TODO: exit with error in v3.4
-			plog.Warningf("recognized environment variable %s, but unused: shadowed by corresponding flag", kv[0])
-			continue
+			plog.Fatalf("conflicting environment variable %q is shadowed by corresponding command-line flag (either unset environment variable or disable flag)", kv[0])
 		}
 		if strings.HasPrefix(env, prefix+"_") {
 			plog.Warningf("unrecognized environment variable %s", env)

+ 0 - 7
pkg/flags/flag_test.go

@@ -34,17 +34,11 @@ func TestSetFlagsFromEnv(t *testing.T) {
 	if err := fs.Set("b", "bar"); err != nil {
 		t.Fatal(err)
 	}
-	// command-line flags take precedence over env vars
-	os.Setenv("ETCD_C", "woof")
-	if err := fs.Set("c", "quack"); err != nil {
-		t.Fatal(err)
-	}
 
 	// first verify that flags are as expected before reading the env
 	for f, want := range map[string]string{
 		"a": "",
 		"b": "bar",
-		"c": "quack",
 	} {
 		if got := fs.Lookup(f).Value.String(); got != want {
 			t.Fatalf("flag %q=%q, want %q", f, got, want)
@@ -59,7 +53,6 @@ func TestSetFlagsFromEnv(t *testing.T) {
 	for f, want := range map[string]string{
 		"a": "foo",
 		"b": "bar",
-		"c": "quack",
 	} {
 		if got := fs.Lookup(f).Value.String(); got != want {
 			t.Errorf("flag %q=%q, want %q", f, got, want)