Fix Swarm model init to correctly pass arguments through to init_swarm

Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
Joffrey F 2017-01-25 15:28:43 -08:00
parent 39deace7c6
commit 3e5bb7b0e6
4 changed files with 10 additions and 9 deletions

View File

@ -29,7 +29,7 @@ class Swarm(Model):
return self.attrs.get('Version').get('Index')
def init(self, advertise_addr=None, listen_addr='0.0.0.0:2377',
force_new_cluster=False, swarm_spec=None, **kwargs):
force_new_cluster=False, **kwargs):
"""
Initialize a new swarm on this Engine.
@ -87,11 +87,11 @@ class Swarm(Model):
)
"""
init_kwargs = {}
for arg in ['advertise_addr', 'listen_addr', 'force_new_cluster']:
if arg in kwargs:
init_kwargs[arg] = kwargs[arg]
del kwargs[arg]
init_kwargs = {
'advertise_addr': advertise_addr,
'listen_addr': listen_addr,
'force_new_cluster': force_new_cluster
}
init_kwargs['swarm_spec'] = SwarmSpec(**kwargs)
self.client.api.init_swarm(**init_kwargs)
self.reload()

View File

@ -14,7 +14,7 @@ class NodesTest(unittest.TestCase):
def test_list_get_update(self):
client = docker.from_env()
client.swarm.init(listen_addr=helpers.swarm_listen_addr())
client.swarm.init('eth0', listen_addr=helpers.swarm_listen_addr())
nodes = client.nodes.list()
assert len(nodes) == 1
assert nodes[0].attrs['Spec']['Role'] == 'manager'

View File

@ -11,7 +11,7 @@ class ServiceTest(unittest.TestCase):
def setUpClass(cls):
client = docker.from_env()
helpers.force_leave_swarm(client)
client.swarm.init(listen_addr=helpers.swarm_listen_addr())
client.swarm.init('eth0', listen_addr=helpers.swarm_listen_addr())
@classmethod
def tearDownClass(cls):

View File

@ -15,7 +15,8 @@ class SwarmTest(unittest.TestCase):
def test_init_update_leave(self):
client = docker.from_env()
client.swarm.init(
snapshot_interval=5000, listen_addr=helpers.swarm_listen_addr()
advertise_addr='eth0', snapshot_interval=5000,
listen_addr=helpers.swarm_listen_addr()
)
assert client.swarm.attrs['Spec']['Raft']['SnapshotInterval'] == 5000
client.swarm.update(snapshot_interval=10000)