aboutsummaryrefslogtreecommitdiff
path: root/ansible/library
diff options
context:
space:
mode:
authorJeffrey Zhang <jeffrey.zhang@99cloud.net>2016-03-01 00:45:55 +0800
committerJeffrey Zhang <jeffrey.zhang@99cloud.net>2016-03-02 01:35:55 +0800
commitb694408abc377cdb8723c43babd7fac2dcf49be0 (patch)
tree2a269482c4a595338aa03bd1090263cb3f33a521 /ansible/library
parent3aedf52489ed5bc68e43899ca21dae13fc2b5100 (diff)
downloadkolla-b694408abc377cdb8723c43babd7fac2dcf49be0.tar.gz
kolla-b694408abc377cdb8723c43babd7fac2dcf49be0.zip
Add kolla_docker action for reconfigure
add three actions used for reconfigure * restart_container * get_container_env * get_container_state Partially-implements: bp kolla-reconfig Change-Id: I63609ce47f044926ff276ab1188b10f44270a0b5
Diffstat (limited to 'ansible/library')
-rw-r--r--ansible/library/kolla_docker.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/ansible/library/kolla_docker.py b/ansible/library/kolla_docker.py
index 3b1e9bd61..08306c2bd 100644
--- a/ansible/library/kolla_docker.py
+++ b/ansible/library/kolla_docker.py
@@ -35,9 +35,12 @@ options:
choices:
- compare_image
- create_volume
+ - get_container_env
+ - get_container_state
- pull_image
- remove_container
- remove_volume
+ - restart_container
- start_container
- stop_container
api_version:
@@ -500,6 +503,30 @@ class DockerWorker(object):
if self.params.get('remove_on_exit'):
self.remove_container()
+ def get_container_env(self):
+ name = self.params.get('name')
+ info = self.get_container_info()
+ if not info:
+ self.module.fail_json(msg="No such container: {}".format(name))
+ else:
+ envs = dict()
+ for env in info['Config']['Env']:
+ if '=' in env:
+ key, value = env.split('=', 1)
+ else:
+ key, value = env, ''
+ envs[key] = value
+
+ self.module.exit_json(**envs)
+
+ def get_container_state(self):
+ name = self.params.get('name')
+ info = self.get_container_info()
+ if not info:
+ self.module.fail_json(msg="No such container: {}".format(name))
+ else:
+ self.module.exit_json(**info['State'])
+
def stop_container(self):
name = self.params.get('name')
container = self.check_container()
@@ -507,6 +534,16 @@ class DockerWorker(object):
self.changed = True
self.dc.stop(name)
+ def restart_container(self):
+ name = self.params.get('name')
+ info = self.get_container_info()
+ if not info:
+ self.module.fail_json(
+ msg="No such container: {}".format(name))
+ else:
+ self.changed = True
+ self.dc.restart(name)
+
def create_volume(self):
if not self.check_volume():
self.changed = True
@@ -533,9 +570,12 @@ def generate_module():
common_options=dict(required=False, type='dict', default=dict()),
action=dict(requried=True, type='str', choices=['compare_image',
'create_volume',
+ 'get_container_env',
+ 'get_container_state',
'pull_image',
'remove_container',
'remove_volume',
+ 'restart_container',
'start_container',
'stop_container']),
api_version=dict(required=False, type='str', default='auto'),