github.com/kim0/docker@v0.6.2-0.20161130212042-4addda3f07e7/cmd/dockerd/daemon_unix_test.go (about) 1 // +build !windows 2 3 package main 4 5 import ( 6 "testing" 7 8 "github.com/docker/docker/daemon" 9 "github.com/docker/docker/pkg/testutil/assert" 10 "github.com/docker/docker/pkg/testutil/tempfile" 11 ) 12 13 func TestLoadDaemonCliConfigWithDaemonFlags(t *testing.T) { 14 content := `{"log-opts": {"max-size": "1k"}}` 15 tempFile := tempfile.NewTempFile(t, "config", content) 16 defer tempFile.Remove() 17 18 opts := defaultOptions(tempFile.Name()) 19 opts.common.Debug = true 20 opts.common.LogLevel = "info" 21 assert.NilError(t, opts.flags.Set("selinux-enabled", "true")) 22 23 loadedConfig, err := loadDaemonCliConfig(opts) 24 assert.NilError(t, err) 25 assert.NotNil(t, loadedConfig) 26 27 assert.Equal(t, loadedConfig.Debug, true) 28 assert.Equal(t, loadedConfig.LogLevel, "info") 29 assert.Equal(t, loadedConfig.EnableSelinuxSupport, true) 30 assert.Equal(t, loadedConfig.LogConfig.Type, "json-file") 31 assert.Equal(t, loadedConfig.LogConfig.Config["max-size"], "1k") 32 } 33 34 func TestLoadDaemonConfigWithNetwork(t *testing.T) { 35 content := `{"bip": "127.0.0.2", "ip": "127.0.0.1"}` 36 tempFile := tempfile.NewTempFile(t, "config", content) 37 defer tempFile.Remove() 38 39 opts := defaultOptions(tempFile.Name()) 40 loadedConfig, err := loadDaemonCliConfig(opts) 41 assert.NilError(t, err) 42 assert.NotNil(t, loadedConfig) 43 44 assert.Equal(t, loadedConfig.IP, "127.0.0.2") 45 assert.Equal(t, loadedConfig.DefaultIP.String(), "127.0.0.1") 46 } 47 48 func TestLoadDaemonConfigWithMapOptions(t *testing.T) { 49 content := `{ 50 "cluster-store-opts": {"kv.cacertfile": "/var/lib/docker/discovery_certs/ca.pem"}, 51 "log-opts": {"tag": "test"} 52 }` 53 tempFile := tempfile.NewTempFile(t, "config", content) 54 defer tempFile.Remove() 55 56 opts := defaultOptions(tempFile.Name()) 57 loadedConfig, err := loadDaemonCliConfig(opts) 58 assert.NilError(t, err) 59 assert.NotNil(t, loadedConfig) 60 assert.NotNil(t, loadedConfig.ClusterOpts) 61 62 expectedPath := "/var/lib/docker/discovery_certs/ca.pem" 63 assert.Equal(t, loadedConfig.ClusterOpts["kv.cacertfile"], expectedPath) 64 assert.NotNil(t, loadedConfig.LogConfig.Config) 65 assert.Equal(t, loadedConfig.LogConfig.Config["tag"], "test") 66 } 67 68 func TestLoadDaemonConfigWithTrueDefaultValues(t *testing.T) { 69 content := `{ "userland-proxy": false }` 70 tempFile := tempfile.NewTempFile(t, "config", content) 71 defer tempFile.Remove() 72 73 opts := defaultOptions(tempFile.Name()) 74 loadedConfig, err := loadDaemonCliConfig(opts) 75 assert.NilError(t, err) 76 assert.NotNil(t, loadedConfig) 77 assert.NotNil(t, loadedConfig.ClusterOpts) 78 79 assert.Equal(t, loadedConfig.EnableUserlandProxy, false) 80 81 // make sure reloading doesn't generate configuration 82 // conflicts after normalizing boolean values. 83 reload := func(reloadedConfig *daemon.Config) { 84 assert.Equal(t, reloadedConfig.EnableUserlandProxy, false) 85 } 86 assert.NilError(t, daemon.ReloadConfiguration(opts.configFile, opts.flags, reload)) 87 } 88 89 func TestLoadDaemonConfigWithTrueDefaultValuesLeaveDefaults(t *testing.T) { 90 tempFile := tempfile.NewTempFile(t, "config", `{}`) 91 defer tempFile.Remove() 92 93 opts := defaultOptions(tempFile.Name()) 94 loadedConfig, err := loadDaemonCliConfig(opts) 95 assert.NilError(t, err) 96 assert.NotNil(t, loadedConfig) 97 assert.NotNil(t, loadedConfig.ClusterOpts) 98 99 assert.Equal(t, loadedConfig.EnableUserlandProxy, true) 100 } 101 102 func TestLoadDaemonConfigWithLegacyRegistryOptions(t *testing.T) { 103 content := `{"disable-legacy-registry": true}` 104 tempFile := tempfile.NewTempFile(t, "config", content) 105 defer tempFile.Remove() 106 107 opts := defaultOptions(tempFile.Name()) 108 loadedConfig, err := loadDaemonCliConfig(opts) 109 assert.NilError(t, err) 110 assert.NotNil(t, loadedConfig) 111 assert.Equal(t, loadedConfig.V2Only, true) 112 }