From 8f14bf6c465822943b2a204dc58818a125a7b21d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gon=C3=A9ri=20Le=20Bouder?= Date: Wed, 25 Nov 2020 14:01:38 -0500 Subject: [PATCH] The type of wait_condition.status is str (#310) The `wait_condition.status` key is a string. - Use actually string in the documentation - Use core's `boolean()` method to convert the value internally to boolean --- .../fragments/310-wait_condition.status_is_a_str.yaml | 3 +++ plugins/doc_fragments/k8s_wait_options.py | 6 +++--- plugins/module_utils/common.py | 6 ++++-- 3 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 changelogs/fragments/310-wait_condition.status_is_a_str.yaml diff --git a/changelogs/fragments/310-wait_condition.status_is_a_str.yaml b/changelogs/fragments/310-wait_condition.status_is_a_str.yaml new file mode 100644 index 00000000..6d204d5f --- /dev/null +++ b/changelogs/fragments/310-wait_condition.status_is_a_str.yaml @@ -0,0 +1,3 @@ +--- +minor_changes: +- Adjust the documentation to clarify the fact ``wait_condition.status`` is a string. diff --git a/plugins/doc_fragments/k8s_wait_options.py b/plugins/doc_fragments/k8s_wait_options.py index 867901bb..06600564 100644 --- a/plugins/doc_fragments/k8s_wait_options.py +++ b/plugins/doc_fragments/k8s_wait_options.py @@ -52,9 +52,9 @@ options: - The value of the status field in your desired condition. - For example, if a C(Deployment) is paused, the C(Progressing) C(type) will have the C(Unknown) status. choices: - - True - - False - - Unknown + - "True" + - "False" + - "Unknown" default: "True" reason: type: str diff --git a/plugins/module_utils/common.py b/plugins/module_utils/common.py index 5c6a0a02..9c7c1f26 100644 --- a/plugins/module_utils/common.py +++ b/plugins/module_utils/common.py @@ -30,6 +30,8 @@ from ansible.module_utils.basic import AnsibleModule, missing_required_lib from ansible.module_utils.six import iteritems, string_types from ansible.module_utils._text import to_native from ansible.module_utils.common.dict_transformations import dict_merge +from ansible.module_utils.parsing.convert_bool import boolean + K8S_IMP_ERR = None try: @@ -181,7 +183,7 @@ WAIT_ARG_SPEC = dict( default=None, options=dict( type=dict(), - status=dict(default=True, choices=[True, False, "Unknown"]), + status=dict(type='str', default="True", choices=["True", "False", "Unknown"]), reason=dict() ) ) @@ -438,7 +440,7 @@ class K8sAnsibleMixin(object): return match.reason == condition['reason'] return False status = True if match.status == 'True' else False - if status == condition['status']: + if status == boolean(condition['status']): if condition.get('reason'): return match.reason == condition['reason'] return True