diff options
author | Tonis Tiigi <tonistiigi@gmail.com> | 2016-06-09 13:27:25 -0700 |
---|---|---|
committer | Tonis Tiigi <tonistiigi@gmail.com> | 2016-06-13 18:24:17 -0700 |
commit | 89a55568377860b22324920a4fe1b899adf558ac (patch) | |
tree | 869cc8bb1db639df6732c6d653bc8eb5cc502c6e | |
parent | 0c843376771c640ce06b88ef084c86bc5e48d7c4 (diff) | |
download | docker-89a55568377860b22324920a4fe1b899adf558ac.tar.gz |
Fix accept policy initialization
- Set secret when using default policy
- Always initialize policy for all roles
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
-rw-r--r-- | api/client/swarm/opts.go | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/api/client/swarm/opts.go b/api/client/swarm/opts.go index db2c243bae..fa543b6596 100644 --- a/api/client/swarm/opts.go +++ b/api/client/swarm/opts.go @@ -16,7 +16,10 @@ const ( ) var ( - defaultPolicy = swarm.Policy{Role: WORKER, Autoaccept: true} + defaultPolicies = []swarm.Policy{ + {Role: WORKER, Autoaccept: true}, + {Role: MANAGER, Autoaccept: false}, + } ) // NodeAddrOption is a pflag.Value for listen and remote addresses @@ -101,17 +104,12 @@ func (o *AutoAcceptOption) Type() string { // Policies returns a representation of this option for the api func (o *AutoAcceptOption) Policies(secret string) []swarm.Policy { policies := []swarm.Policy{} - - if len(o.values) == 0 { - return append(policies, defaultPolicy) - } - - for role, enabled := range o.values { - policies = append(policies, swarm.Policy{ - Role: swarm.NodeRole(strings.ToUpper(role)), - Autoaccept: enabled, - Secret: secret, - }) + for _, p := range defaultPolicies { + if len(o.values) != 0 { + p.Autoaccept = o.values[string(p.Role)] + } + p.Secret = secret + policies = append(policies, p) } return policies } |