diff --git a/lib/ansible/modules/cloud/docker/docker_service.py b/lib/ansible/modules/cloud/docker/docker_service.py index b411de6b49e..8b4da6d4765 100644 --- a/lib/ansible/modules/cloud/docker/docker_service.py +++ b/lib/ansible/modules/cloud/docker/docker_service.py @@ -139,6 +139,12 @@ options: required: false type: bool default: false + debug: + description: + - Include I(actions) in the return values. + required: false + type: bool + default: false ''' EXAMPLES = ''' @@ -357,6 +363,35 @@ service: returned: success type: str example: running + +actions: + description: Provides the actions to be taken on each service as determined by compose. + returned: when in check mode or I(debug) true + type: complex + contains: + service_name: + description: Name of the service. + returned: always + type: complex + contains: + action: + description: A descriptive name of the action to be performed on the set of containers + within the service. + returned: always + type: list + contains: + id: + description: the container's long ID + returned: always + type: string + name: + description: the container's name + returned: always + type: string + short_id: + description: the container's short ID + returned: always + type: string ''' HAS_COMPOSE = True @@ -475,6 +510,9 @@ class ContainerManager(DockerBaseClass): self.log("removing %s" % self.project_src) os.rmdir(self.project_src) + if not self.check_mode and not self.debug and result.get('actions'): + result.pop('actions') + return result def _get_auth_options(self): @@ -517,7 +555,7 @@ class ContainerManager(DockerBaseClass): plan = service.convergence_plan(strategy=converge) if plan.action != 'noop': result['changed'] = True - if self.debug: + if self.debug or self.check_mode: result['actions'][service.name] = dict() result['actions'][service.name][plan.action] = [] for container in plan.containers: @@ -586,7 +624,7 @@ class ContainerManager(DockerBaseClass): containers = service.containers(stopped=True) if len(containers): result['changed'] = True - if self.debug: + if self.debug or self.check_mode: result['actions'][service.name] = dict() result['actions'][service.name]['deleted'] = [container.name for container in containers] @@ -637,7 +675,7 @@ class ContainerManager(DockerBaseClass): result['actions'][service.name]['restart'] = [] for container in service.containers(stopped=True): result['changed'] = True - if self.debug: + if self.debug or self.check_mode: result['actions'][service.name]['restart'].append(dict( id=container.id, name=container.name, @@ -664,7 +702,7 @@ class ContainerManager(DockerBaseClass): containers = service.containers(stopped=True) if len(containers) != self.scale[service.name]: result['changed'] = True - if self.debug: + if self.debug or self.check_mode: result['actions'][service.name]['scale'] = self.scale[service.name] - len(containers) if not self.check_mode: try: