summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Witkowski <jason@witkow.ski>2019-03-08 15:58:34 -0500
committerToshio Kuratomi <a.badger@gmail.com>2019-03-11 13:15:05 -0700
commitb84d9a8365430795d0a54d1f7c27c686d504e2a8 (patch)
tree3b7d3a7b918264f13cb23e61bd3fc580ef603826
parent07e4ae0806f96cc37d1f223205ffcbedde0a7967 (diff)
downloadansible-b84d9a8365430795d0a54d1f7c27c686d504e2a8.tar.gz
apply node_id parameter to swarm node removal (#53503)
(cherry picked from commit be39e757e3afea4dc7f8b6321c0103a2882f65d0)
-rw-r--r--changelogs/fragments/53503-docker_swarm_fix_node_id.yml2
-rw-r--r--lib/ansible/modules/cloud/docker/docker_swarm.py8
2 files changed, 7 insertions, 3 deletions
diff --git a/changelogs/fragments/53503-docker_swarm_fix_node_id.yml b/changelogs/fragments/53503-docker_swarm_fix_node_id.yml
new file mode 100644
index 0000000000..6273b094fe
--- /dev/null
+++ b/changelogs/fragments/53503-docker_swarm_fix_node_id.yml
@@ -0,0 +1,2 @@
+bugfixes:
+ - docker_swarm - Fixed node_id parameter not working for node removal (https://github.com/ansible/ansible/issues/53501)
diff --git a/lib/ansible/modules/cloud/docker/docker_swarm.py b/lib/ansible/modules/cloud/docker/docker_swarm.py
index 153bc8385c..13e91c7679 100644
--- a/lib/ansible/modules/cloud/docker/docker_swarm.py
+++ b/lib/ansible/modules/cloud/docker/docker_swarm.py
@@ -399,6 +399,7 @@ class SwarmManager(DockerBaseClass):
self.state = client.module.params['state']
self.force = client.module.params['force']
+ self.node_id = client.module.params['node_id']
self.parameters = TaskParameters.from_ansible_params(client)
@@ -515,7 +516,7 @@ class SwarmManager(DockerBaseClass):
def __get_node_info(self):
try:
- node_info = self.client.inspect_node(node_id=self.parameters.node_id)
+ node_info = self.client.inspect_node(node_id=self.node_id)
except APIError as exc:
raise exc
json_str = json.dumps(node_info, ensure_ascii=False)
@@ -524,10 +525,11 @@ class SwarmManager(DockerBaseClass):
def __check_node_is_down(self):
for _x in range(0, 5):
+ if _x > 0:
+ sleep(5)
node_info = self.__get_node_info()
if node_info['Status']['State'] == 'down':
return True
- sleep(5)
return False
def remove(self):
@@ -544,7 +546,7 @@ class SwarmManager(DockerBaseClass):
if not self.check_mode:
try:
- self.client.remove_node(node_id=self.parameters.node_id, force=self.force)
+ self.client.remove_node(node_id=self.node_id, force=self.force)
except APIError as exc:
self.client.fail("Can not remove the node from the Swarm Cluster: %s" % to_native(exc))
self.results['actions'].append("Node is removed from swarm cluster.")