summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolay Murga <nikolay.m@randrmusic.com>2017-05-25 00:21:24 +0300
committerToshio Kuratomi <a.badger@gmail.com>2017-05-24 14:21:24 -0700
commit3610a2457f89362cc61255fbfa93df0d60b33677 (patch)
tree10c02742a4c7cb3f9329cefd94621c6f84e3ba00
parentcb3026f76949a0f03f133c56a772d1dc7a897837 (diff)
downloadansible-3610a2457f89362cc61255fbfa93df0d60b33677.tar.gz
Fixed #21464 - docker_network: TypeError with existing network (#24266)
Fixed #22530 - docker_network Failed but Overlay network created successfully on Docker swarm mode
-rw-r--r--lib/ansible/modules/cloud/docker/docker_network.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/lib/ansible/modules/cloud/docker/docker_network.py b/lib/ansible/modules/cloud/docker/docker_network.py
index 5352a716aa..9d84249047 100644
--- a/lib/ansible/modules/cloud/docker/docker_network.py
+++ b/lib/ansible/modules/cloud/docker/docker_network.py
@@ -194,8 +194,7 @@ class TaskParameters(DockerBaseClass):
def container_names_in_network(network):
- return [c['Name'] for c in network['Containers'].values()]
-
+ return [c['Name'] for c in network['Containers'].values()] if network['Containers'] else []
class DockerNetworkManager(object):
@@ -247,7 +246,7 @@ class DockerNetworkManager(object):
differences.append('driver_options')
else:
for key, value in self.parameters.driver_options.items():
- if not net['Options'].get(key) or value != net['Options'][key]:
+ if not (key in net['Options']) or value != net['Options'][key]:
different = True
differences.append('driver_options.%s' % key)
if self.parameters.ipam_driver:
@@ -286,10 +285,10 @@ class DockerNetworkManager(object):
if HAS_DOCKER_PY_2:
ipam_config = IPAMConfig(driver=self.parameters.ipam_driver,
- pool_configs=ipam_pools)
+ pool_configs=ipam_pools)
else:
ipam_config = utils.create_ipam_config(driver=self.parameters.ipam_driver,
- pool_configs=ipam_pools)
+ pool_configs=ipam_pools)
if not self.check_mode:
resp = self.client.create_network(self.parameters.network_name,
@@ -321,13 +320,18 @@ class DockerNetworkManager(object):
self.results['changed'] = True
def disconnect_missing(self):
- for c in self.existing_network['Containers'].values():
+ containers = self.existing_network['Containers']
+ if not containers:
+ return
+ for c in containers.values():
name = c['Name']
if name not in self.parameters.connected:
self.disconnect_container(name)
def disconnect_all_containers(self):
containers = self.client.inspect_network(self.parameters.network_name)['Containers']
+ if not containers:
+ return
for cont in containers.values():
self.disconnect_container(cont['Name'])