mirror of https://github.com/docker/docs.git
				
				
				
			Merge pull request #811 from ehazlett/revert-783
revert "Fixing `config` and `env` bad handling of paths with spaces"
This commit is contained in:
		
						commit
						703ea4b497
					
				|  | @ -438,7 +438,7 @@ func cmdConfig(c *cli.Context) { | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	fmt.Printf("--tlsverify --tlscacert=%q --tlscert=%q --tlskey=%q -H=%s", | ||||
| 	fmt.Printf("--tlsverify --tlscacert=%s --tlscert=%s --tlskey=%s -H=%s", | ||||
| 		cfg.caCertPath, cfg.clientCertPath, cfg.clientKeyPath, dockerHost) | ||||
| } | ||||
| 
 | ||||
|  | @ -628,10 +628,10 @@ func cmdEnv(c *cli.Context) { | |||
| 
 | ||||
| 	switch userShell { | ||||
| 	case "fish": | ||||
| 		fmt.Printf("set -x DOCKER_TLS_VERIFY 1;\nset -x DOCKER_CERT_PATH %q;\nset -x DOCKER_HOST %s;\n", | ||||
| 		fmt.Printf("set -x DOCKER_TLS_VERIFY 1;\nset -x DOCKER_CERT_PATH %s;\nset -x DOCKER_HOST %s;\n", | ||||
| 			cfg.machineDir, dockerHost) | ||||
| 	default: | ||||
| 		fmt.Printf("export DOCKER_TLS_VERIFY=1\nexport DOCKER_CERT_PATH=%q\nexport DOCKER_HOST=%s\n", | ||||
| 		fmt.Printf("export DOCKER_TLS_VERIFY=1\nexport DOCKER_CERT_PATH=%s\nexport DOCKER_HOST=%s\n", | ||||
| 			cfg.machineDir, dockerHost) | ||||
| 	} | ||||
| } | ||||
|  |  | |||
							
								
								
									
										166
									
								
								commands_test.go
								
								
								
								
							
							
						
						
									
										166
									
								
								commands_test.go
								
								
								
								
							|  | @ -3,7 +3,6 @@ package main | |||
| import ( | ||||
| 	"bytes" | ||||
| 	"flag" | ||||
| 	"fmt" | ||||
| 	"io" | ||||
| 	"io/ioutil" | ||||
| 	"os" | ||||
|  | @ -386,172 +385,7 @@ func TestCmdConfig(t *testing.T) { | |||
| 		t.Fatalf("Expect --tlsverify") | ||||
| 	} | ||||
| 
 | ||||
| 	tlscacert := fmt.Sprintf("--tlscacert=\"%s/test-a/ca.pem\"", TestMachineDir) | ||||
| 	if !strings.Contains(out, tlscacert) { | ||||
| 		t.Fatalf("Expected to find %s in %s", tlscacert, out) | ||||
| 	} | ||||
| 
 | ||||
| 	tlscert := fmt.Sprintf("--tlscert=\"%s/test-a/cert.pem\"", TestMachineDir) | ||||
| 	if !strings.Contains(out, tlscert) { | ||||
| 		t.Fatalf("Expected to find %s in %s", tlscert, out) | ||||
| 	} | ||||
| 
 | ||||
| 	tlskey := fmt.Sprintf("--tlskey=\"%s/test-a/key.pem\"", TestMachineDir) | ||||
| 	if !strings.Contains(out, tlskey) { | ||||
| 		t.Fatalf("Expected to find %s in %s", tlskey, out) | ||||
| 	} | ||||
| 
 | ||||
| 	if !strings.Contains(out, "-H=unix:///var/run/docker.sock") { | ||||
| 		t.Fatalf("Expect docker host URL") | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func TestCmdEnvBash(t *testing.T) { | ||||
| 	stdout := os.Stdout | ||||
| 	shell := os.Getenv("SHELL") | ||||
| 	r, w, _ := os.Pipe() | ||||
| 
 | ||||
| 	os.Stdout = w | ||||
| 	os.Setenv("MACHINE_STORAGE_PATH", TestStoreDir) | ||||
| 	os.Setenv("SHELL", "/bin/bash") | ||||
| 
 | ||||
| 	defer func() { | ||||
| 		os.Setenv("MACHINE_STORAGE_PATH", "") | ||||
| 		os.Setenv("SHELL", shell) | ||||
| 		os.Stdout = stdout | ||||
| 	}() | ||||
| 
 | ||||
| 	if err := clearHosts(); err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
| 
 | ||||
| 	flags := getDefaultTestDriverFlags() | ||||
| 
 | ||||
| 	store := NewStore(TestMachineDir, "", "") | ||||
| 	var err error | ||||
| 
 | ||||
| 	_, err = store.Create("test-a", "none", flags) | ||||
| 	if err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
| 
 | ||||
| 	host, err := store.Load("test-a") | ||||
| 	if err != nil { | ||||
| 		t.Fatalf("error loading host: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	if err := store.SetActive(host); err != nil { | ||||
| 		t.Fatalf("error setting active host: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	outStr := make(chan string) | ||||
| 
 | ||||
| 	go func() { | ||||
| 		var testOutput bytes.Buffer | ||||
| 		io.Copy(&testOutput, r) | ||||
| 		outStr <- testOutput.String() | ||||
| 	}() | ||||
| 
 | ||||
| 	set := flag.NewFlagSet("config", 0) | ||||
| 	c := cli.NewContext(nil, set, set) | ||||
| 	cmdEnv(c) | ||||
| 
 | ||||
| 	w.Close() | ||||
| 
 | ||||
| 	out := <-outStr | ||||
| 
 | ||||
| 	// parse the output into a map of envvar:value for easier testing below
 | ||||
| 	envvars := make(map[string]string) | ||||
| 	for _, e := range strings.Split(strings.TrimSpace(out), "\n") { | ||||
| 		kv := strings.SplitN(e, "=", 2) | ||||
| 		key, value := kv[0], kv[1] | ||||
| 		envvars[strings.Replace(key, "export ", "", 1)] = value | ||||
| 	} | ||||
| 
 | ||||
| 	expected := map[string]string{ | ||||
| 		"DOCKER_TLS_VERIFY": "1", | ||||
| 		"DOCKER_CERT_PATH":  fmt.Sprintf("\"%s/test-a\"", TestMachineDir), | ||||
| 		"DOCKER_HOST":       "unix:///var/run/docker.sock", | ||||
| 	} | ||||
| 
 | ||||
| 	for k, v := range envvars { | ||||
| 		if v != expected[k] { | ||||
| 			t.Fatalf("Expected %s == <%s>, but was <%s>", k, expected[k], v) | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func TestCmdEnvFish(t *testing.T) { | ||||
| 	stdout := os.Stdout | ||||
| 	shell := os.Getenv("SHELL") | ||||
| 	r, w, _ := os.Pipe() | ||||
| 
 | ||||
| 	os.Stdout = w | ||||
| 	os.Setenv("MACHINE_STORAGE_PATH", TestStoreDir) | ||||
| 	os.Setenv("SHELL", "/bin/fish") | ||||
| 
 | ||||
| 	defer func() { | ||||
| 		os.Setenv("MACHINE_STORAGE_PATH", "") | ||||
| 		os.Setenv("SHELL", shell) | ||||
| 		os.Stdout = stdout | ||||
| 	}() | ||||
| 
 | ||||
| 	if err := clearHosts(); err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
| 
 | ||||
| 	flags := getDefaultTestDriverFlags() | ||||
| 
 | ||||
| 	store := NewStore(TestMachineDir, "", "") | ||||
| 	var err error | ||||
| 
 | ||||
| 	_, err = store.Create("test-a", "none", flags) | ||||
| 	if err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
| 
 | ||||
| 	host, err := store.Load("test-a") | ||||
| 	if err != nil { | ||||
| 		t.Fatalf("error loading host: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	if err := store.SetActive(host); err != nil { | ||||
| 		t.Fatalf("error setting active host: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	outStr := make(chan string) | ||||
| 
 | ||||
| 	go func() { | ||||
| 		var testOutput bytes.Buffer | ||||
| 		io.Copy(&testOutput, r) | ||||
| 		outStr <- testOutput.String() | ||||
| 	}() | ||||
| 
 | ||||
| 	set := flag.NewFlagSet("config", 0) | ||||
| 	c := cli.NewContext(nil, set, set) | ||||
| 	cmdEnv(c) | ||||
| 
 | ||||
| 	w.Close() | ||||
| 
 | ||||
| 	out := <-outStr | ||||
| 
 | ||||
| 	// parse the output into a map of envvar:value for easier testing below
 | ||||
| 	envvars := make(map[string]string) | ||||
| 	for _, e := range strings.Split(strings.TrimSuffix(out, ";\n"), ";\n") { | ||||
| 		kv := strings.SplitN(strings.Replace(e, "set -x ", "", 1), " ", 2) | ||||
| 		key, value := kv[0], kv[1] | ||||
| 		envvars[key] = value | ||||
| 	} | ||||
| 
 | ||||
| 	expected := map[string]string{ | ||||
| 		"DOCKER_TLS_VERIFY": "1", | ||||
| 		"DOCKER_CERT_PATH":  fmt.Sprintf("\"%s/test-a\"", TestMachineDir), | ||||
| 		"DOCKER_HOST":       "unix:///var/run/docker.sock", | ||||
| 	} | ||||
| 
 | ||||
| 	for k, v := range envvars { | ||||
| 		if v != expected[k] { | ||||
| 			t.Fatalf("Expected %s == <%s>, but was <%s>", k, expected[k], v) | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue