#237 retry to install/remove packages
Merged 5 years ago by astepano. Opened 5 years ago by bgoncalv.
bgoncalv/standard-test-roles retry-install-packages  into  master

@@ -1,11 +1,19 @@ 

  - name: Remove yum-utils for dnf system

    package: name=yum-utils state=absent

+   register: result

+   retries: 5

+   delay: 10

+   until: result.failed == false

  

  - name: Install additional dnf packages

    package: name={{ item }} state=present

+   register: result

    with_items:

      - dnf-plugins-core

      - dnf-utils

+   retries: 5

+   delay: 10

+   until: result.failed == false

  

  - name: Enable copr repos

    shell: dnf copr enable -y {{ item }}
@@ -19,11 +27,19 @@ 

  - name: Install test-specific package requirements

    # Note, this method cannot install -debuginfo packages.

    package: name={{ item }} state=present

+   register: result

    with_flattened:

      - "{{ pkgs_ordinary_req|d|list|flatten }}"

+   retries: 5

+   delay: 10

+   until: result.failed == false

  

  - name: Install debuginfo packages

    shell: |

        debuginfo-install --assumeyes {{item}}

+   register: result

    with_items:

        - "{{ pkgs_debuginfo_req|d|list }}"

+   retries: 5

+   delay: 10

+   until: result.failed == false

@@ -1,8 +1,12 @@ 

  - name: Install additional yum packages

    package: name={{ item }} state=present

+   register: result

    with_items:

      - yum-plugin-copr

      - yum-utils

+   retries: 5

+   delay: 10

+   until: result.failed == false

  

  - name: Enable copr repos

    shell: yum copr enable -y {{ item }}
@@ -16,12 +20,20 @@ 

  - name: Install test-specific package requirements

    # Note, this method cannot install -debuginfo packages.

    package: name={{ item }} state=present

+   register: result

    with_flattened:

      - "{{ pkgs_ordinary_req|d|list|flatten }}"

+   retries: 5

+   delay: 10

+   until: result.failed == false

  

  - name: Install debuginfo packages

    shell: |

        debuginfo-install --assumeyes {{item}}

+   register: result

    with_items:

        - "{{ pkgs_debuginfo_req|d|list }}"

+   retries: 5

+   delay: 10

+   until: result.failed == false

  

Do not fail task due to temporary network issue like:

TASK [str-common-pkgs : Remove yum-utils for dnf system] ***********************
fatal: [test_subject.qcow2]: FAILED! => {"changed": false, "module_stderr": "Shared connection to 127.0.0.3 closed.\r\n", "module_stdout": "Traceback (most recent call last):\r\n  File \"/usr/lib/python3.6/site-packages/dnf/repo.py\", line 230, in _perform\r\n    return super(_Handle, self).perform(result)\r\n  File \"/usr/lib64/python3.6/site-packages/librepo/__init__.py\", line 1522, in perform\r\n    _librepo.Handle.perform(self, result)\r\nlibrepo.LibrepoException: (10, 'Cannot prepare internal mirrorlist: Status code: 503 for https://mirrors.fedoraproject.org/metalink?repo=fedora-28&arch=x86_64', 'Error HTTP/FTP status code')\r\n\r\nDuring handling of the above exception, another exception occurred:\r\n\r\nTraceback (most recent call last):\r\n  File \"/usr/lib/python3.6/site-packages/dnf/repo.py\", line 915, in load\r\n    self._handle_load(handle)\r\n  File \"/usr/lib/python3.6/site-packages/dnf/repo.py\", line 658, in _handle_load\r\n    return self._handle_load_core(handle)\r\n  File \"/usr/lib/python3.6/site-packages/dnf/repo.py\", line 671, in _handle_load_core\r\n    result = handle._perform()\r\n  File \"/usr/lib/python3.6/site-packages/dnf/repo.py\", line 234, in _perform\r\n    raise _DetailedLibrepoError(exc, source)\r\ndnf.repo._DetailedLibrepoError\r\n\r\nDuring handling of the above exception, another exception occurred:\r\n\r\nTraceback (most recent call last):\r\n  File \"/tmp/ansible_52fwbq8c/ansible_module_dnf.py\", line 534, in <module>\r\n    main()\r\n  File \"/tmp/ansible_52fwbq8c/ansible_module_dnf.py\", line 528, in main\r\n    params['disablerepo'], params['enablerepo'], params['installroot'])\r\n  File \"/tmp/ansible_52fwbq8c/ansible_module_dnf.py\", line 251, in _base\r\n    base.fill_sack(load_system_repo='auto')\r\n  File \"/usr/lib/python3.6/site-packages/dnf/base.py\", line 475, in fill_sack\r\n    self._add_repo_to_sack(r)\r\n  File \"/usr/lib/python3.6/site-packages/dnf/base.py\", line 130, in _add_repo_to_sack\r\n    repo.load()\r\n  File \"/usr/lib/python3.6/site-packages/dnf/repo.py\", line 927, in load\r\n    raise dnf.exceptions.RepoError(msg)\r\ndnf.exceptions.RepoError: Failed to synchronize cache for repo 'fedora'\r\n", "msg": "MODULE FAILURE", "rc": 1}

I have successfully running this patch on Fedora.

@astepano is there a chance this could be added in the next build?

Commit eda3e17 fixes this pull-request

Pull-Request has been merged by astepano

5 years ago

Pull-Request has been merged by astepano

5 years ago