@ -148,7 +148,7 @@ options:
- Set the state of the container
- Set the state of the container
required: false
required: false
default: present
default: present
choices: [ "present", "stopped", "absent", "killed", "restarted" ]
choices: [ "present", "running", " stopped", "absent", "killed", "restarted" ]
aliases: []
aliases: []
privileged:
privileged:
description:
description:
@ -632,7 +632,7 @@ def main():
env = dict(),
env = dict(),
dns = dict(),
dns = dict(),
detach = dict(default=True, type='bool'),
detach = dict(default=True, type='bool'),
state = dict(default='present', choices=['absent', 'present ', 'stopped', 'killed', 'restarted']),
state = dict(default='running', choices=['absent', 'present', 'running ', 'stopped', 'killed', 'restarted']),
debug = dict(default=False, type='bool'),
debug = dict(default=False, type='bool'),
privileged = dict(default=False, type='bool'),
privileged = dict(default=False, type='bool'),
lxc_conf = dict(default=None),
lxc_conf = dict(default=None),
@ -662,25 +662,35 @@ def main():
changed = False
changed = False
# start/stop containers
# start/stop containers
if state == "present" :
if state in [ "running", "present" ] :
# make sure a container with `name` is running
# make sure a container with `name` exists, if not create and start it
if name and "/" + name not in map(lambda x: x.get('Name'), running _containers):
if name and "/" + name not in map(lambda x: x.get('Name'), deployed _containers):
containers = manager.create_containers(1)
containers = manager.create_containers(1)
manager.start_containers(containers)
if state == "present": #otherwise it get (re)started later anyways..
manager.start_containers(containers)
# start more containers if we don't have enough
running_containers = manager.get_running_containers()
elif delta > 0:
deployed_containers = manager.get_deployed_containers()
containers = manager.create_containers(delta)
manager.start_containers(containers)
if state == "running":
# make sure a container with `name` is running
# stop containers if we have too many
if name and "/" + name not in map(lambda x: x.get('Name'), running_containers):
elif delta < 0:
manager.start_containers(deployed_containers)
containers_to_stop = running_containers[0:abs(delta)]
containers = manager.stop_containers(containers_to_stop)
# start more containers if we don't have enough
manager.remove_containers(containers_to_stop)
elif delta > 0:
containers = manager.create_containers(delta)
facts = manager.get_running_containers()
manager.start_containers(containers)
# stop containers if we have too many
elif delta < 0:
containers_to_stop = running_containers[0:abs(delta)]
containers = manager.stop_containers(containers_to_stop)
manager.remove_containers(containers_to_stop)
facts = manager.get_running_containers()
else:
acts = manager.get_deployed_containers()
# stop and remove containers
# stop and remove containers
elif state == "absent":
elif state == "absent":