Merge pull request #17685 from WeiZhang555/cluster-parser

Fix `--cluster-store` option parser
This commit is contained in:
David Calavera 2015-11-05 13:21:52 -08:00
commit c7b65288e4
2 changed files with 27 additions and 2 deletions

View file

@ -549,3 +549,28 @@ func TestParseSecurityOpt(t *testing.T) {
t.Fatal("Expected parseSecurityOpt error, got nil") t.Fatal("Expected parseSecurityOpt error, got nil")
} }
} }
func TestNetworkOptions(t *testing.T) {
daemon := &Daemon{}
dconfigCorrect := &Config{
CommonConfig: CommonConfig{
DefaultNetwork: "netPlugin:mynet:dev",
ClusterStore: "consul://localhost:8500",
ClusterAdvertise: "192.168.0.1:8000",
},
}
if _, err := daemon.networkOptions(dconfigCorrect); err != nil {
t.Fatalf("Expect networkOptions sucess, got error: %v", err)
}
dconfigWrong := &Config{
CommonConfig: CommonConfig{
ClusterStore: "consul://localhost:8500://test://bbb",
},
}
if _, err := daemon.networkOptions(dconfigWrong); err == nil {
t.Fatalf("Expected networkOptions error, got nil")
}
}

View file

@ -333,11 +333,11 @@ func (daemon *Daemon) networkOptions(dconfig *Config) ([]nwconfig.Option, error)
if strings.TrimSpace(dconfig.ClusterStore) != "" { if strings.TrimSpace(dconfig.ClusterStore) != "" {
kv := strings.Split(dconfig.ClusterStore, "://") kv := strings.Split(dconfig.ClusterStore, "://")
if len(kv) < 2 { if len(kv) != 2 {
return nil, fmt.Errorf("kv store daemon config must be of the form KV-PROVIDER://KV-URL") return nil, fmt.Errorf("kv store daemon config must be of the form KV-PROVIDER://KV-URL")
} }
options = append(options, nwconfig.OptionKVProvider(kv[0])) options = append(options, nwconfig.OptionKVProvider(kv[0]))
options = append(options, nwconfig.OptionKVProviderURL(strings.Join(kv[1:], "://"))) options = append(options, nwconfig.OptionKVProviderURL(kv[1]))
} }
if len(dconfig.ClusterOpts) > 0 { if len(dconfig.ClusterOpts) > 0 {
options = append(options, nwconfig.OptionKVOpts(dconfig.ClusterOpts)) options = append(options, nwconfig.OptionKVOpts(dconfig.ClusterOpts))