diff options
Diffstat (limited to 'roles')
| -rw-r--r-- | roles/docker/tasks/package_docker.yml | 2 | ||||
| -rw-r--r-- | roles/lib_utils/library/repoquery.py | 18 | ||||
| -rw-r--r-- | roles/lib_utils/library/yedit.py | 1 | ||||
| -rw-r--r-- | roles/lib_utils/src/ansible/repoquery.py | 17 | ||||
| -rw-r--r-- | roles/lib_utils/src/lib/import.py | 1 | 
5 files changed, 27 insertions, 12 deletions
diff --git a/roles/docker/tasks/package_docker.yml b/roles/docker/tasks/package_docker.yml index 145b552a6..d685d77f2 100644 --- a/roles/docker/tasks/package_docker.yml +++ b/roles/docker/tasks/package_docker.yml @@ -3,6 +3,8 @@    command: "{{ repoquery_cmd }} --installed --qf '%{version}' docker"    when: not openshift.common.is_atomic | bool    register: curr_docker_version +  retries: 4 +  until: not curr_docker_version | failed    changed_when: false  - name: Error out if Docker pre-installed but too old diff --git a/roles/lib_utils/library/repoquery.py b/roles/lib_utils/library/repoquery.py index 95a305b58..e5ac1f74f 100644 --- a/roles/lib_utils/library/repoquery.py +++ b/roles/lib_utils/library/repoquery.py @@ -35,6 +35,7 @@ import os  # noqa: F401  import re  # noqa: F401  import shutil  # noqa: F401  import tempfile  # noqa: F401 +import time  # noqa: F401  try:      import ruamel.yaml as yaml  # noqa: F401 @@ -618,17 +619,22 @@ def main():              show_duplicates=dict(default=False, required=False, type='bool'),              match_version=dict(default=None, required=False, type='str'),              ignore_excluders=dict(default=False, required=False, type='bool'), +            retries=dict(default=4, required=False, type='int'), +            retry_interval=dict(default=5, required=False, type='int'),          ),          supports_check_mode=False,          required_if=[('show_duplicates', True, ['name'])],      ) -    rval = Repoquery.run_ansible(module.params, module.check_mode) - -    if 'failed' in rval: -        module.fail_json(**rval) - -    module.exit_json(**rval) +    tries = 1 +    while True: +        rval = Repoquery.run_ansible(module.params, module.check_mode) +        if 'failed' not in rval: +            module.exit_json(**rval) +        elif tries > module.params['retries']: +            module.fail_json(**rval) +        tries += 1 +        time.sleep(module.params['retry_interval'])  if __name__ == "__main__": diff --git a/roles/lib_utils/library/yedit.py b/roles/lib_utils/library/yedit.py index baf72fe47..921bca074 100644 --- a/roles/lib_utils/library/yedit.py +++ b/roles/lib_utils/library/yedit.py @@ -35,6 +35,7 @@ import os  # noqa: F401  import re  # noqa: F401  import shutil  # noqa: F401  import tempfile  # noqa: F401 +import time  # noqa: F401  try:      import ruamel.yaml as yaml  # noqa: F401 diff --git a/roles/lib_utils/src/ansible/repoquery.py b/roles/lib_utils/src/ansible/repoquery.py index 40773b1c1..5f5b93639 100644 --- a/roles/lib_utils/src/ansible/repoquery.py +++ b/roles/lib_utils/src/ansible/repoquery.py @@ -19,17 +19,22 @@ def main():              show_duplicates=dict(default=False, required=False, type='bool'),              match_version=dict(default=None, required=False, type='str'),              ignore_excluders=dict(default=False, required=False, type='bool'), +            retries=dict(default=4, required=False, type='int'), +            retry_interval=dict(default=5, required=False, type='int'),          ),          supports_check_mode=False,          required_if=[('show_duplicates', True, ['name'])],      ) -    rval = Repoquery.run_ansible(module.params, module.check_mode) - -    if 'failed' in rval: -        module.fail_json(**rval) - -    module.exit_json(**rval) +    tries = 1 +    while True: +        rval = Repoquery.run_ansible(module.params, module.check_mode) +        if 'failed' not in rval: +            module.exit_json(**rval) +        elif tries > module.params['retries']: +            module.fail_json(**rval) +        tries += 1 +        time.sleep(module.params['retry_interval'])  if __name__ == "__main__": diff --git a/roles/lib_utils/src/lib/import.py b/roles/lib_utils/src/lib/import.py index 567f8c9e0..07a04b7ae 100644 --- a/roles/lib_utils/src/lib/import.py +++ b/roles/lib_utils/src/lib/import.py @@ -10,6 +10,7 @@ import os  # noqa: F401  import re  # noqa: F401  import shutil  # noqa: F401  import tempfile  # noqa: F401 +import time  # noqa: F401  try:      import ruamel.yaml as yaml  # noqa: F401  | 
