diff options
| author | Jeffrey Zhang <jeffrey.zhang@99cloud.net> | 2016-03-01 00:45:55 +0800 |
|---|---|---|
| committer | Jeffrey Zhang <jeffrey.zhang@99cloud.net> | 2016-03-02 01:35:55 +0800 |
| commit | b694408abc377cdb8723c43babd7fac2dcf49be0 (patch) | |
| tree | 2a269482c4a595338aa03bd1090263cb3f33a521 /ansible/library | |
| parent | 3aedf52489ed5bc68e43899ca21dae13fc2b5100 (diff) | |
| download | kolla-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.py | 40 |
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'), |
