diff options
| author | Michal Arbet <michal.arbet@ultimum.io> | 2023-01-17 13:26:24 +0100 |
|---|---|---|
| committer | Michal Arbet <michal.arbet@ultimum.io> | 2023-02-04 23:54:47 +0100 |
| commit | 63b9fa56390796c93c76f3bb121015973663d9e7 (patch) | |
| tree | d39a88111e9487daeaaf969e5684f687bb1d2fa0 /ansible/library | |
| parent | f253f99c1216705cc52e65f6229f8ae42bfda178 (diff) | |
| download | kolla-ansible-63b9fa56390796c93c76f3bb121015973663d9e7.tar.gz kolla-ansible-63b9fa56390796c93c76f3bb121015973663d9e7.zip | |
Fix kolla_docker module
This patch fixes kolla_docker module
as it did not take into account common_options
parameter. From patchset it's visible that module's
default values are used always - even if user overrided
some param in common_options dict.
Closes-Bug: #2003079
Change-Id: I677fde708dd004decaff4bd39f2173d8d81052fb
Diffstat (limited to 'ansible/library')
| -rw-r--r-- | ansible/library/kolla_docker.py | 51 |
1 files changed, 38 insertions, 13 deletions
diff --git a/ansible/library/kolla_docker.py b/ansible/library/kolla_docker.py index 839cc914f..4b420bd98 100644 --- a/ansible/library/kolla_docker.py +++ b/ansible/library/kolla_docker.py @@ -275,7 +275,7 @@ def generate_module(): 'start_container', 'stop_container', 'stop_and_remove_container']), - api_version=dict(required=False, type='str', default='auto'), + api_version=dict(required=False, type='str'), auth_email=dict(required=False, type='str'), auth_password=dict(required=False, type='str', no_log=True), auth_registry=dict(required=False, type='str'), @@ -297,14 +297,14 @@ def generate_module(): cgroupns_mode=dict(required=False, type='str', choices=['private', 'host']), privileged=dict(required=False, type='bool', default=False), - graceful_timeout=dict(required=False, type='int', default=10), + graceful_timeout=dict(required=False, type='int'), remove_on_exit=dict(required=False, type='bool', default=True), restart_policy=dict(required=False, type='str', choices=[ 'no', 'on-failure', 'always', 'unless-stopped']), - restart_retries=dict(required=False, type='int', default=10), + restart_retries=dict(required=False, type='int'), state=dict(required=False, type='str', default='running', choices=['running', 'exited', @@ -318,7 +318,7 @@ def generate_module(): volumes_from=dict(required=False, type='list'), dimensions=dict(required=False, type='dict', default=dict()), tty=dict(required=False, type='bool', default=False), - client_timeout=dict(required=False, type='int', default=120), + client_timeout=dict(required=False, type='int'), ignore_missing=dict(required=False, type='bool', default=False), ) required_if = [ @@ -344,17 +344,42 @@ def generate_module(): bypass_checks=False ) - new_args = module.params.pop('common_options', dict()) + common_options_defaults = { + 'auth_email': None, + 'auth_password': None, + 'auth_registry': None, + 'auth_username': None, + 'environment': None, + 'restart_policy': None, + 'restart_retries': 10, + 'api_version': 'auto', + 'graceful_timeout': 10, + 'client_timeout': 120, + } - # NOTE(jeffrey4l): merge the environment - env = module.params.pop('environment', dict()) - if env: - new_args['environment'].update(env) + new_args = module.params.pop('common_options', dict()) or dict() + env_module_environment = module.params.pop('environment', dict()) or dict() - for key, value in module.params.items(): - if key in new_args and value is None: - continue - new_args[key] = value + for k, v in module.params.items(): + if v is None: + if k in common_options_defaults: + if k in new_args: + # From ansible groups vars the common options + # can be string or int + if isinstance(new_args[k], str) and new_args[k].isdigit(): + new_args[k] = int(new_args[k]) + continue + else: + if common_options_defaults[k] is not None: + new_args[k] = common_options_defaults[k] + else: + continue + if v is not None: + new_args[k] = v + + env_module_common_options = new_args.pop('environment', dict()) or dict() + new_args['environment'] = env_module_common_options + new_args['environment'].update(env_module_environment) # if pid_mode = ""/None/False, remove it if not new_args.get('pid_mode', False): |
