2018-02-05 16:05:59 -05:00
|
|
|
package config // import "github.com/docker/docker/daemon/config"
|
2016-08-10 06:52:06 -04:00
|
|
|
|
|
|
|
import (
|
2021-08-24 06:10:50 -04:00
|
|
|
"os"
|
2016-08-10 06:52:06 -04:00
|
|
|
"testing"
|
2017-04-12 03:26:42 -04:00
|
|
|
|
|
|
|
"github.com/docker/docker/opts"
|
|
|
|
"github.com/spf13/pflag"
|
2020-02-07 08:39:24 -05:00
|
|
|
"gotest.tools/v3/assert"
|
|
|
|
is "gotest.tools/v3/assert/cmp"
|
2016-08-10 06:52:06 -04:00
|
|
|
)
|
|
|
|
|
|
|
|
func TestDaemonConfigurationMerge(t *testing.T) {
|
2021-08-24 06:10:50 -04:00
|
|
|
f, err := os.CreateTemp("", "docker-config-")
|
2016-08-10 06:52:06 -04:00
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
configFile := f.Name()
|
|
|
|
|
|
|
|
f.Write([]byte(`
|
|
|
|
{
|
|
|
|
"debug": true,
|
|
|
|
"log-opts": {
|
|
|
|
"tag": "test_tag"
|
|
|
|
}
|
|
|
|
}`))
|
|
|
|
|
|
|
|
f.Close()
|
|
|
|
|
|
|
|
c := &Config{
|
|
|
|
CommonConfig: CommonConfig{
|
|
|
|
AutoRestart: true,
|
|
|
|
LogConfig: LogConfig{
|
|
|
|
Type: "syslog",
|
|
|
|
Config: map[string]string{"tag": "test"},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
2017-04-12 03:26:42 -04:00
|
|
|
flags := pflag.NewFlagSet("test", pflag.ContinueOnError)
|
|
|
|
var debug bool
|
|
|
|
flags.BoolVarP(&debug, "debug", "D", false, "")
|
|
|
|
flags.Var(opts.NewNamedMapOpts("log-opts", nil, nil), "log-opt", "")
|
|
|
|
|
|
|
|
cc, err := MergeDaemonConfigurations(c, flags, configFile)
|
2018-03-13 15:28:34 -04:00
|
|
|
assert.NilError(t, err)
|
2016-08-10 06:52:06 -04:00
|
|
|
|
2018-03-13 15:28:34 -04:00
|
|
|
assert.Check(t, cc.Debug)
|
|
|
|
assert.Check(t, cc.AutoRestart)
|
2017-04-12 03:26:42 -04:00
|
|
|
|
|
|
|
expectedLogConfig := LogConfig{
|
|
|
|
Type: "syslog",
|
|
|
|
Config: map[string]string{"tag": "test_tag"},
|
2016-08-10 06:52:06 -04:00
|
|
|
}
|
2017-04-12 03:26:42 -04:00
|
|
|
|
2018-03-13 15:28:34 -04:00
|
|
|
assert.Check(t, is.DeepEqual(expectedLogConfig, cc.LogConfig))
|
2016-08-10 06:52:06 -04:00
|
|
|
}
|