all:
  children:
    cephs:
      hosts:
        instance: null
    computes:
      hosts:
        instance: null
    controllers:
      hosts:
        instance: null
    zuul_unreachable:
      hosts: {}
  hosts:
    instance:
      ansible_connection: ssh
      ansible_host: 199.204.45.4
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      ceph_conf_overrides:
      - option: mon allow pool size one
        section: global
        value: true
      - option: osd crush chooseleaf type
        section: global
        value: 0
      - option: auth allow insecure global id reclaim
        section: mon
        value: false
      ceph_csi_rbd_helm_values:
        provisioner:
          replicaCount: 1
      ceph_fsid: 4837cbf8-4f90-4300-b3f6-726c9b9f89b4
      ceph_osd_devices:
      - /dev/ceph-{{ inventory_hostname_short }}-osd0/data
      - /dev/ceph-{{ inventory_hostname_short }}-osd1/data
      - /dev/ceph-{{ inventory_hostname_short }}-osd2/data
      cilium_helm_values:
        operator:
          replicas: 1
      cilium_ipv4_cidr: 172.24.0.0/16
      csi_driver: local-path-provisioner
      kube_vip_address: 172.17.0.100
      kube_vip_interface: '{{ ansible_facts[''default_ipv4''].interface }}'
      kubernetes_hostname: '{{ ansible_facts[''default_ipv4''].address }}'
      molecule_scenario: csi
      nodepool:
        az: nova
        cloud: public
        external_id: afcf143a-9ce6-4a4a-9a52-92cbd93b73fd
        host_id: f65535b9871d01a5cee8ece1826b232b808f65cb7b3c2fb89f8c9325
        interface_ip: 199.204.45.4
        label: ubuntu-jammy
        node_properties: {}
        private_ipv4: 199.204.45.4
        private_ipv6: null
        provider: yul1
        public_ipv4: 199.204.45.4
        public_ipv6: 2604:e100:1:0:f816:3eff:fe73:8914
        region: ca-ymq-1
        slot: null
      zuul_node:
        az: nova
        cloud: public
        external_id: afcf143a-9ce6-4a4a-9a52-92cbd93b73fd
        host_id: f65535b9871d01a5cee8ece1826b232b808f65cb7b3c2fb89f8c9325
        interface_ip: 199.204.45.4
        label: ubuntu-jammy
        node_properties: {}
        private_ipv4: 199.204.45.4
        private_ipv6: null
        provider: yul1
        public_ipv4: 199.204.45.4
        public_ipv6: 2604:e100:1:0:f816:3eff:fe73:8914
        region: ca-ymq-1
        slot: null
        uuid: null
  vars:
    ceph_conf_overrides:
    - option: mon allow pool size one
      section: global
      value: true
    - option: osd crush chooseleaf type
      section: global
      value: 0
    - option: auth allow insecure global id reclaim
      section: mon
      value: false
    ceph_csi_rbd_helm_values:
      provisioner:
        replicaCount: 1
    ceph_fsid: 4837cbf8-4f90-4300-b3f6-726c9b9f89b4
    ceph_osd_devices:
    - /dev/ceph-{{ inventory_hostname_short }}-osd0/data
    - /dev/ceph-{{ inventory_hostname_short }}-osd1/data
    - /dev/ceph-{{ inventory_hostname_short }}-osd2/data
    cilium_helm_values:
      operator:
        replicas: 1
    cilium_ipv4_cidr: 172.24.0.0/16
    csi_driver: local-path-provisioner
    kube_vip_address: 172.17.0.100
    kube_vip_interface: '{{ ansible_facts[''default_ipv4''].interface }}'
    kubernetes_hostname: '{{ ansible_facts[''default_ipv4''].address }}'
    molecule_scenario: csi
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: zuul-config/zuul.d/jobs.yaml@main#1>'
      - '<Job molecule explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/zuul-jobs/zuul.d/ansible-jobs.yaml@main#1>'
      - '<Job atmosphere-molecule explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/atmosphere/.zuul.yaml@main#17>'
      - '<Job atmosphere-molecule-csi explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/atmosphere/.zuul.yaml@main#53>'
      - '<Job atmosphere-molecule-csi-local-path-provisioner explicit: None implied:
        {MatchAny:{ImpliedBranchMatcher:main}} source: vexxhost/atmosphere/.zuul.yaml@main#60>'
      - '<Job atmosphere-molecule-csi-local-path-provisioner explicit: None implied:
        None source: vexxhost/atmosphere/.zuul.yaml@main#72>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: beb99b2f2a6b4112a0246efcad5495cb
      build_refs:
      - branch: main
        change: '3583'
        change_message: "[WIP] Fix jobs failing with Galaxy 500 errors\n\n## Plan
          to Fix Galaxy 500 Error Retries\n\n- [x] Create `ansible.cfg` to configure
          Galaxy API timeout settings\n- [x] Add retry logic in GitHub Actions molecule
          workflow\n- [x] Document the changes in release notes\n- [ ] Run pre-commit
          hooks to verify code quality\n- [ ] Test the workflow (pending PR CI)\n\n<!--
          START COPILOT ORIGINAL PROMPT -->\n\n\n\n<details>\n\n<summary>Original
          prompt</summary>\n\n\n----\n\n*This section details on the original issue
          you should resolve*\n\n<issue_title>Jobs often fail with Galaxy giving 500s</issue_title>\n<issue_description>This
          is a failure that can happen early:\n\n```\nRun sudo --preserve-env=ANSIBLE_PYTHON_INTERPRETER,ATMOSPHERE_NETWORK_BACKEND,MOLECULE_CSI_DRIVER
          env \"PATH=$PATH\" molecule test -s aio\nWARNING  Molecule scenarios should
          migrate to 'extensions/molecule'\nINFO     [aio > discovery] scenario test
          matrix: dependency, cleanup, destroy, syntax, create, prepare, converge,
          idempotence, side_effect, verify, cleanup, destroy\nINFO     [aio > prerun]
          Performing prerun with role_name_check=0...\nWARNING  Retrying execution
          failure 250 of: ansible-galaxy collection install -vvv community.crypto:2.2.3\nERROR
          \   Command ansible-galaxy collection install -vvv community.crypto:2.2.3,
          returned 250 code:\nStarting galaxy collection install process\nProcess
          install dependency map\nthe full traceback was:\n\nTraceback (most recent
          call last):\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/cli/__init__.py\",
          line 658, in cli_executor\n    exit_code = cli.run()\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/cli/galaxy.py\",
          line 773, in run\n    return context.CLIARGS()\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/cli/galaxy.py\",
          line 120, in method_wrapper\n    return wrapped_method(*args, **kwargs)\n
          \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/cli/galaxy.py\",
          line 1438, in execute_install\n    self._execute_install_collection(\n  File
          \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/cli/galaxy.py\",
          line 1487, in _execute_install_collection\n    install_collections(\n  File
          \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/__init__.py\",
          line 735, in install_collections\n    dependency_map = _resolve_depenency_map(\n
          \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/__init__.py\",
          line 1852, in _resolve_depenency_map\n    return collection_dep_resolver.resolve(\n
          \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/resolvelib/resolvers.py\",
          line 546, in resolve\n    state = resolution.resolve(requirements, max_rounds=max_rounds)\n
          \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/resolvelib/resolvers.py\",
          line 397, in resolve\n    self._add_to_criteria(self.state.criteria, r,
          parent=None)\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/resolvelib/resolvers.py\",
          line 148, in _add_to_criteria\n    matches = self._p.find_matches(\n  File
          \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/dependency_resolution/providers.py\",
          line 477, in find_matches\n    match for match in self._find_matches(list(requirements))\n
          \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/dependency_resolution/providers.py\",
          line 253, in _find_matches\n    coll_versions =  if preinstalled_candidates
          else self._api_proxy.get_collection_versions(first_req)  # type: t.Iterable]\n
          \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/galaxy_api_proxy.py\",
          line 106, in get_collection_versions\n    return set(\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/galaxy_api_proxy.py\",
          line 106, in <genexpr>\n    return set(\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/galaxy_api_proxy.py\",
          line 87, in _get_collection_versions\n    raise last_error\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/galaxy_api_proxy.py\",
          line 66, in _get_collection_versions\n    versions = api.get_collection_versions(requirement.namespace,
          requirement.name)\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/api.py\",
          line 145, in wrapped\n    return method(self, *args, **kwargs)\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/api.py\",
          line 874, in get_collection_versions\n    data = self._call_galaxy(versions_url,
          error_context_msg=error_context_msg, cache=True, cache_key=cache_key)\n
          \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/...\n\n</details>\n\n\n\n<!--
          START COPILOT CODING AGENT SUFFIX -->\n\n- Fixes vexxhost/atmosphere#3582\n\n<!--
          START COPILOT CODING AGENT TIPS -->\n---\n\n\u2728 Let Copilot coding agent
          [set things up for you](https://github.com/vexxhost/atmosphere/issues/new?title=\u2728+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
          \u2014 coding agent works faster and does higher quality work when set up
          for your repo.\n"
        change_url: https://github.com/vexxhost/atmosphere/pull/3583
        commit_id: 28bb718cd95376cbf508c28bd0d3e9c804ffea4c
        patchset: 28bb718cd95376cbf508c28bd0d3e9c804ffea4c
        project:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/atmosphere
          name: vexxhost/atmosphere
          short_name: atmosphere
        src_dir: src/github.com/vexxhost/atmosphere
        topic: null
      buildset: 1aed7eaee5db41a39cd83c533cb97c90
      buildset_refs:
      - branch: main
        change: '3583'
        change_message: "[WIP] Fix jobs failing with Galaxy 500 errors\n\n## Plan
          to Fix Galaxy 500 Error Retries\n\n- [x] Create `ansible.cfg` to configure
          Galaxy API timeout settings\n- [x] Add retry logic in GitHub Actions molecule
          workflow\n- [x] Document the changes in release notes\n- [ ] Run pre-commit
          hooks to verify code quality\n- [ ] Test the workflow (pending PR CI)\n\n<!--
          START COPILOT ORIGINAL PROMPT -->\n\n\n\n<details>\n\n<summary>Original
          prompt</summary>\n\n\n----\n\n*This section details on the original issue
          you should resolve*\n\n<issue_title>Jobs often fail with Galaxy giving 500s</issue_title>\n<issue_description>This
          is a failure that can happen early:\n\n```\nRun sudo --preserve-env=ANSIBLE_PYTHON_INTERPRETER,ATMOSPHERE_NETWORK_BACKEND,MOLECULE_CSI_DRIVER
          env \"PATH=$PATH\" molecule test -s aio\nWARNING  Molecule scenarios should
          migrate to 'extensions/molecule'\nINFO     [aio > discovery] scenario test
          matrix: dependency, cleanup, destroy, syntax, create, prepare, converge,
          idempotence, side_effect, verify, cleanup, destroy\nINFO     [aio > prerun]
          Performing prerun with role_name_check=0...\nWARNING  Retrying execution
          failure 250 of: ansible-galaxy collection install -vvv community.crypto:2.2.3\nERROR
          \   Command ansible-galaxy collection install -vvv community.crypto:2.2.3,
          returned 250 code:\nStarting galaxy collection install process\nProcess
          install dependency map\nthe full traceback was:\n\nTraceback (most recent
          call last):\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/cli/__init__.py\",
          line 658, in cli_executor\n    exit_code = cli.run()\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/cli/galaxy.py\",
          line 773, in run\n    return context.CLIARGS()\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/cli/galaxy.py\",
          line 120, in method_wrapper\n    return wrapped_method(*args, **kwargs)\n
          \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/cli/galaxy.py\",
          line 1438, in execute_install\n    self._execute_install_collection(\n  File
          \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/cli/galaxy.py\",
          line 1487, in _execute_install_collection\n    install_collections(\n  File
          \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/__init__.py\",
          line 735, in install_collections\n    dependency_map = _resolve_depenency_map(\n
          \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/__init__.py\",
          line 1852, in _resolve_depenency_map\n    return collection_dep_resolver.resolve(\n
          \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/resolvelib/resolvers.py\",
          line 546, in resolve\n    state = resolution.resolve(requirements, max_rounds=max_rounds)\n
          \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/resolvelib/resolvers.py\",
          line 397, in resolve\n    self._add_to_criteria(self.state.criteria, r,
          parent=None)\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/resolvelib/resolvers.py\",
          line 148, in _add_to_criteria\n    matches = self._p.find_matches(\n  File
          \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/dependency_resolution/providers.py\",
          line 477, in find_matches\n    match for match in self._find_matches(list(requirements))\n
          \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/dependency_resolution/providers.py\",
          line 253, in _find_matches\n    coll_versions =  if preinstalled_candidates
          else self._api_proxy.get_collection_versions(first_req)  # type: t.Iterable]\n
          \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/galaxy_api_proxy.py\",
          line 106, in get_collection_versions\n    return set(\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/galaxy_api_proxy.py\",
          line 106, in <genexpr>\n    return set(\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/galaxy_api_proxy.py\",
          line 87, in _get_collection_versions\n    raise last_error\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/galaxy_api_proxy.py\",
          line 66, in _get_collection_versions\n    versions = api.get_collection_versions(requirement.namespace,
          requirement.name)\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/api.py\",
          line 145, in wrapped\n    return method(self, *args, **kwargs)\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/api.py\",
          line 874, in get_collection_versions\n    data = self._call_galaxy(versions_url,
          error_context_msg=error_context_msg, cache=True, cache_key=cache_key)\n
          \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/...\n\n</details>\n\n\n\n<!--
          START COPILOT CODING AGENT SUFFIX -->\n\n- Fixes vexxhost/atmosphere#3582\n\n<!--
          START COPILOT CODING AGENT TIPS -->\n---\n\n\u2728 Let Copilot coding agent
          [set things up for you](https://github.com/vexxhost/atmosphere/issues/new?title=\u2728+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
          \u2014 coding agent works faster and does higher quality work when set up
          for your repo.\n"
        change_url: https://github.com/vexxhost/atmosphere/pull/3583
        commit_id: 28bb718cd95376cbf508c28bd0d3e9c804ffea4c
        patchset: 28bb718cd95376cbf508c28bd0d3e9c804ffea4c
        project:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/atmosphere
          name: vexxhost/atmosphere
          short_name: atmosphere
        src_dir: src/github.com/vexxhost/atmosphere
        topic: null
      change: '3583'
      change_message: "[WIP] Fix jobs failing with Galaxy 500 errors\n\n## Plan to
        Fix Galaxy 500 Error Retries\n\n- [x] Create `ansible.cfg` to configure Galaxy
        API timeout settings\n- [x] Add retry logic in GitHub Actions molecule workflow\n-
        [x] Document the changes in release notes\n- [ ] Run pre-commit hooks to verify
        code quality\n- [ ] Test the workflow (pending PR CI)\n\n<!-- START COPILOT
        ORIGINAL PROMPT -->\n\n\n\n<details>\n\n<summary>Original prompt</summary>\n\n\n----\n\n*This
        section details on the original issue you should resolve*\n\n<issue_title>Jobs
        often fail with Galaxy giving 500s</issue_title>\n<issue_description>This
        is a failure that can happen early:\n\n```\nRun sudo --preserve-env=ANSIBLE_PYTHON_INTERPRETER,ATMOSPHERE_NETWORK_BACKEND,MOLECULE_CSI_DRIVER
        env \"PATH=$PATH\" molecule test -s aio\nWARNING  Molecule scenarios should
        migrate to 'extensions/molecule'\nINFO     [aio > discovery] scenario test
        matrix: dependency, cleanup, destroy, syntax, create, prepare, converge, idempotence,
        side_effect, verify, cleanup, destroy\nINFO     [aio > prerun] Performing
        prerun with role_name_check=0...\nWARNING  Retrying execution failure 250
        of: ansible-galaxy collection install -vvv community.crypto:2.2.3\nERROR    Command
        ansible-galaxy collection install -vvv community.crypto:2.2.3, returned 250
        code:\nStarting galaxy collection install process\nProcess install dependency
        map\nthe full traceback was:\n\nTraceback (most recent call last):\n  File
        \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/cli/__init__.py\",
        line 658, in cli_executor\n    exit_code = cli.run()\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/cli/galaxy.py\",
        line 773, in run\n    return context.CLIARGS()\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/cli/galaxy.py\",
        line 120, in method_wrapper\n    return wrapped_method(*args, **kwargs)\n
        \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/cli/galaxy.py\",
        line 1438, in execute_install\n    self._execute_install_collection(\n  File
        \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/cli/galaxy.py\",
        line 1487, in _execute_install_collection\n    install_collections(\n  File
        \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/__init__.py\",
        line 735, in install_collections\n    dependency_map = _resolve_depenency_map(\n
        \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/__init__.py\",
        line 1852, in _resolve_depenency_map\n    return collection_dep_resolver.resolve(\n
        \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/resolvelib/resolvers.py\",
        line 546, in resolve\n    state = resolution.resolve(requirements, max_rounds=max_rounds)\n
        \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/resolvelib/resolvers.py\",
        line 397, in resolve\n    self._add_to_criteria(self.state.criteria, r, parent=None)\n
        \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/resolvelib/resolvers.py\",
        line 148, in _add_to_criteria\n    matches = self._p.find_matches(\n  File
        \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/dependency_resolution/providers.py\",
        line 477, in find_matches\n    match for match in self._find_matches(list(requirements))\n
        \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/dependency_resolution/providers.py\",
        line 253, in _find_matches\n    coll_versions =  if preinstalled_candidates
        else self._api_proxy.get_collection_versions(first_req)  # type: t.Iterable]\n
        \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/galaxy_api_proxy.py\",
        line 106, in get_collection_versions\n    return set(\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/galaxy_api_proxy.py\",
        line 106, in <genexpr>\n    return set(\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/galaxy_api_proxy.py\",
        line 87, in _get_collection_versions\n    raise last_error\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/galaxy_api_proxy.py\",
        line 66, in _get_collection_versions\n    versions = api.get_collection_versions(requirement.namespace,
        requirement.name)\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/api.py\",
        line 145, in wrapped\n    return method(self, *args, **kwargs)\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/api.py\",
        line 874, in get_collection_versions\n    data = self._call_galaxy(versions_url,
        error_context_msg=error_context_msg, cache=True, cache_key=cache_key)\n  File
        \"/opt/github/actions-runner/2.330.0/_work/atmosphere/...\n\n</details>\n\n\n\n<!--
        START COPILOT CODING AGENT SUFFIX -->\n\n- Fixes vexxhost/atmosphere#3582\n\n<!--
        START COPILOT CODING AGENT TIPS -->\n---\n\n\u2728 Let Copilot coding agent
        [set things up for you](https://github.com/vexxhost/atmosphere/issues/new?title=\u2728+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
        \u2014 coding agent works faster and does higher quality work when set up
        for your repo.\n"
      change_url: https://github.com/vexxhost/atmosphere/pull/3583
      child_jobs: []
      commit_id: 28bb718cd95376cbf508c28bd0d3e9c804ffea4c
      event_id: c30d4010-0564-11f1-8a26-d0a0646fba81
      executor:
        hostname: 3a2793d2bd32
        inventory_file: /var/lib/zuul/builds/beb99b2f2a6b4112a0246efcad5495cb/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/beb99b2f2a6b4112a0246efcad5495cb/work/logs
        result_data_file: /var/lib/zuul/builds/beb99b2f2a6b4112a0246efcad5495cb/work/results.json
        src_root: /var/lib/zuul/builds/beb99b2f2a6b4112a0246efcad5495cb/work/src
        work_root: /var/lib/zuul/builds/beb99b2f2a6b4112a0246efcad5495cb/work
      include_vars: []
      items:
      - branch: main
        change: '3583'
        change_message: "[WIP] Fix jobs failing with Galaxy 500 errors\n\n## Plan
          to Fix Galaxy 500 Error Retries\n\n- [x] Create `ansible.cfg` to configure
          Galaxy API timeout settings\n- [x] Add retry logic in GitHub Actions molecule
          workflow\n- [x] Document the changes in release notes\n- [ ] Run pre-commit
          hooks to verify code quality\n- [ ] Test the workflow (pending PR CI)\n\n<!--
          START COPILOT ORIGINAL PROMPT -->\n\n\n\n<details>\n\n<summary>Original
          prompt</summary>\n\n\n----\n\n*This section details on the original issue
          you should resolve*\n\n<issue_title>Jobs often fail with Galaxy giving 500s</issue_title>\n<issue_description>This
          is a failure that can happen early:\n\n```\nRun sudo --preserve-env=ANSIBLE_PYTHON_INTERPRETER,ATMOSPHERE_NETWORK_BACKEND,MOLECULE_CSI_DRIVER
          env \"PATH=$PATH\" molecule test -s aio\nWARNING  Molecule scenarios should
          migrate to 'extensions/molecule'\nINFO     [aio > discovery] scenario test
          matrix: dependency, cleanup, destroy, syntax, create, prepare, converge,
          idempotence, side_effect, verify, cleanup, destroy\nINFO     [aio > prerun]
          Performing prerun with role_name_check=0...\nWARNING  Retrying execution
          failure 250 of: ansible-galaxy collection install -vvv community.crypto:2.2.3\nERROR
          \   Command ansible-galaxy collection install -vvv community.crypto:2.2.3,
          returned 250 code:\nStarting galaxy collection install process\nProcess
          install dependency map\nthe full traceback was:\n\nTraceback (most recent
          call last):\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/cli/__init__.py\",
          line 658, in cli_executor\n    exit_code = cli.run()\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/cli/galaxy.py\",
          line 773, in run\n    return context.CLIARGS()\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/cli/galaxy.py\",
          line 120, in method_wrapper\n    return wrapped_method(*args, **kwargs)\n
          \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/cli/galaxy.py\",
          line 1438, in execute_install\n    self._execute_install_collection(\n  File
          \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/cli/galaxy.py\",
          line 1487, in _execute_install_collection\n    install_collections(\n  File
          \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/__init__.py\",
          line 735, in install_collections\n    dependency_map = _resolve_depenency_map(\n
          \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/__init__.py\",
          line 1852, in _resolve_depenency_map\n    return collection_dep_resolver.resolve(\n
          \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/resolvelib/resolvers.py\",
          line 546, in resolve\n    state = resolution.resolve(requirements, max_rounds=max_rounds)\n
          \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/resolvelib/resolvers.py\",
          line 397, in resolve\n    self._add_to_criteria(self.state.criteria, r,
          parent=None)\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/resolvelib/resolvers.py\",
          line 148, in _add_to_criteria\n    matches = self._p.find_matches(\n  File
          \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/dependency_resolution/providers.py\",
          line 477, in find_matches\n    match for match in self._find_matches(list(requirements))\n
          \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/dependency_resolution/providers.py\",
          line 253, in _find_matches\n    coll_versions =  if preinstalled_candidates
          else self._api_proxy.get_collection_versions(first_req)  # type: t.Iterable]\n
          \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/galaxy_api_proxy.py\",
          line 106, in get_collection_versions\n    return set(\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/galaxy_api_proxy.py\",
          line 106, in <genexpr>\n    return set(\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/galaxy_api_proxy.py\",
          line 87, in _get_collection_versions\n    raise last_error\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/collection/galaxy_api_proxy.py\",
          line 66, in _get_collection_versions\n    versions = api.get_collection_versions(requirement.namespace,
          requirement.name)\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/api.py\",
          line 145, in wrapped\n    return method(self, *args, **kwargs)\n  File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/atmosphere/.venv/lib/python3.10/site-packages/ansible/galaxy/api.py\",
          line 874, in get_collection_versions\n    data = self._call_galaxy(versions_url,
          error_context_msg=error_context_msg, cache=True, cache_key=cache_key)\n
          \ File \"/opt/github/actions-runner/2.330.0/_work/atmosphere/...\n\n</details>\n\n\n\n<!--
          START COPILOT CODING AGENT SUFFIX -->\n\n- Fixes vexxhost/atmosphere#3582\n\n<!--
          START COPILOT CODING AGENT TIPS -->\n---\n\n\u2728 Let Copilot coding agent
          [set things up for you](https://github.com/vexxhost/atmosphere/issues/new?title=\u2728+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
          \u2014 coding agent works faster and does higher quality work when set up
          for your repo.\n"
        change_url: https://github.com/vexxhost/atmosphere/pull/3583
        commit_id: 28bb718cd95376cbf508c28bd0d3e9c804ffea4c
        patchset: 28bb718cd95376cbf508c28bd0d3e9c804ffea4c
        project:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/atmosphere
          name: vexxhost/atmosphere
          short_name: atmosphere
          src_dir: src/github.com/vexxhost/atmosphere
        topic: null
      job: atmosphere-molecule-csi-local-path-provisioner
      jobtags: []
      max_attempts: 3
      message: W1dJUF0gRml4IGpvYnMgZmFpbGluZyB3aXRoIEdhbGF4eSA1MDAgZXJyb3JzCgojIyBQbGFuIHRvIEZpeCBHYWxheHkgNTAwIEVycm9yIFJldHJpZXMKCi0gW3hdIENyZWF0ZSBgYW5zaWJsZS5jZmdgIHRvIGNvbmZpZ3VyZSBHYWxheHkgQVBJIHRpbWVvdXQgc2V0dGluZ3MKLSBbeF0gQWRkIHJldHJ5IGxvZ2ljIGluIEdpdEh1YiBBY3Rpb25zIG1vbGVjdWxlIHdvcmtmbG93Ci0gW3hdIERvY3VtZW50IHRoZSBjaGFuZ2VzIGluIHJlbGVhc2Ugbm90ZXMKLSBbIF0gUnVuIHByZS1jb21taXQgaG9va3MgdG8gdmVyaWZ5IGNvZGUgcXVhbGl0eQotIFsgXSBUZXN0IHRoZSB3b3JrZmxvdyAocGVuZGluZyBQUiBDSSkKCjwhLS0gU1RBUlQgQ09QSUxPVCBPUklHSU5BTCBQUk9NUFQgLS0+CgoKCjxkZXRhaWxzPgoKPHN1bW1hcnk+T3JpZ2luYWwgcHJvbXB0PC9zdW1tYXJ5PgoKCi0tLS0KCipUaGlzIHNlY3Rpb24gZGV0YWlscyBvbiB0aGUgb3JpZ2luYWwgaXNzdWUgeW91IHNob3VsZCByZXNvbHZlKgoKPGlzc3VlX3RpdGxlPkpvYnMgb2Z0ZW4gZmFpbCB3aXRoIEdhbGF4eSBnaXZpbmcgNTAwczwvaXNzdWVfdGl0bGU+Cjxpc3N1ZV9kZXNjcmlwdGlvbj5UaGlzIGlzIGEgZmFpbHVyZSB0aGF0IGNhbiBoYXBwZW4gZWFybHk6CgpgYGAKUnVuIHN1ZG8gLS1wcmVzZXJ2ZS1lbnY9QU5TSUJMRV9QWVRIT05fSU5URVJQUkVURVIsQVRNT1NQSEVSRV9ORVRXT1JLX0JBQ0tFTkQsTU9MRUNVTEVfQ1NJX0RSSVZFUiBlbnYgIlBBVEg9JFBBVEgiIG1vbGVjdWxlIHRlc3QgLXMgYWlvCldBUk5JTkcgIE1vbGVjdWxlIHNjZW5hcmlvcyBzaG91bGQgbWlncmF0ZSB0byAnZXh0ZW5zaW9ucy9tb2xlY3VsZScKSU5GTyAgICAgW2FpbyA+IGRpc2NvdmVyeV0gc2NlbmFyaW8gdGVzdCBtYXRyaXg6IGRlcGVuZGVuY3ksIGNsZWFudXAsIGRlc3Ryb3ksIHN5bnRheCwgY3JlYXRlLCBwcmVwYXJlLCBjb252ZXJnZSwgaWRlbXBvdGVuY2UsIHNpZGVfZWZmZWN0LCB2ZXJpZnksIGNsZWFudXAsIGRlc3Ryb3kKSU5GTyAgICAgW2FpbyA+IHByZXJ1bl0gUGVyZm9ybWluZyBwcmVydW4gd2l0aCByb2xlX25hbWVfY2hlY2s9MC4uLgpXQVJOSU5HICBSZXRyeWluZyBleGVjdXRpb24gZmFpbHVyZSAyNTAgb2Y6IGFuc2libGUtZ2FsYXh5IGNvbGxlY3Rpb24gaW5zdGFsbCAtdnZ2IGNvbW11bml0eS5jcnlwdG86Mi4yLjMKRVJST1IgICAgQ29tbWFuZCBhbnNpYmxlLWdhbGF4eSBjb2xsZWN0aW9uIGluc3RhbGwgLXZ2diBjb21tdW5pdHkuY3J5cHRvOjIuMi4zLCByZXR1cm5lZCAyNTAgY29kZToKU3RhcnRpbmcgZ2FsYXh5IGNvbGxlY3Rpb24gaW5zdGFsbCBwcm9jZXNzClByb2Nlc3MgaW5zdGFsbCBkZXBlbmRlbmN5IG1hcAp0aGUgZnVsbCB0cmFjZWJhY2sgd2FzOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9vcHQvZ2l0aHViL2FjdGlvbnMtcnVubmVyLzIuMzMwLjAvX3dvcmsvYXRtb3NwaGVyZS9hdG1vc3BoZXJlLy52ZW52L2xpYi9weXRob24zLjEwL3NpdGUtcGFja2FnZXMvYW5zaWJsZS9jbGkvX19pbml0X18ucHkiLCBsaW5lIDY1OCwgaW4gY2xpX2V4ZWN1dG9yCiAgICBleGl0X2NvZGUgPSBjbGkucnVuKCkKICBGaWxlICIvb3B0L2dpdGh1Yi9hY3Rpb25zLXJ1bm5lci8yLjMzMC4wL193b3JrL2F0bW9zcGhlcmUvYXRtb3NwaGVyZS8udmVudi9saWIvcHl0aG9uMy4xMC9zaXRlLXBhY2thZ2VzL2Fuc2libGUvY2xpL2dhbGF4eS5weSIsIGxpbmUgNzczLCBpbiBydW4KICAgIHJldHVybiBjb250ZXh0LkNMSUFSR1MoKQogIEZpbGUgIi9vcHQvZ2l0aHViL2FjdGlvbnMtcnVubmVyLzIuMzMwLjAvX3dvcmsvYXRtb3NwaGVyZS9hdG1vc3BoZXJlLy52ZW52L2xpYi9weXRob24zLjEwL3NpdGUtcGFja2FnZXMvYW5zaWJsZS9jbGkvZ2FsYXh5LnB5IiwgbGluZSAxMjAsIGluIG1ldGhvZF93cmFwcGVyCiAgICByZXR1cm4gd3JhcHBlZF9tZXRob2QoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9vcHQvZ2l0aHViL2FjdGlvbnMtcnVubmVyLzIuMzMwLjAvX3dvcmsvYXRtb3NwaGVyZS9hdG1vc3BoZXJlLy52ZW52L2xpYi9weXRob24zLjEwL3NpdGUtcGFja2FnZXMvYW5zaWJsZS9jbGkvZ2FsYXh5LnB5IiwgbGluZSAxNDM4LCBpbiBleGVjdXRlX2luc3RhbGwKICAgIHNlbGYuX2V4ZWN1dGVfaW5zdGFsbF9jb2xsZWN0aW9uKAogIEZpbGUgIi9vcHQvZ2l0aHViL2FjdGlvbnMtcnVubmVyLzIuMzMwLjAvX3dvcmsvYXRtb3NwaGVyZS9hdG1vc3BoZXJlLy52ZW52L2xpYi9weXRob24zLjEwL3NpdGUtcGFja2FnZXMvYW5zaWJsZS9jbGkvZ2FsYXh5LnB5IiwgbGluZSAxNDg3LCBpbiBfZXhlY3V0ZV9pbnN0YWxsX2NvbGxlY3Rpb24KICAgIGluc3RhbGxfY29sbGVjdGlvbnMoCiAgRmlsZSAiL29wdC9naXRodWIvYWN0aW9ucy1ydW5uZXIvMi4zMzAuMC9fd29yay9hdG1vc3BoZXJlL2F0bW9zcGhlcmUvLnZlbnYvbGliL3B5dGhvbjMuMTAvc2l0ZS1wYWNrYWdlcy9hbnNpYmxlL2dhbGF4eS9jb2xsZWN0aW9uL19faW5pdF9fLnB5IiwgbGluZSA3MzUsIGluIGluc3RhbGxfY29sbGVjdGlvbnMKICAgIGRlcGVuZGVuY3lfbWFwID0gX3Jlc29sdmVfZGVwZW5lbmN5X21hcCgKICBGaWxlICIvb3B0L2dpdGh1Yi9hY3Rpb25zLXJ1bm5lci8yLjMzMC4wL193b3JrL2F0bW9zcGhlcmUvYXRtb3NwaGVyZS8udmVudi9saWIvcHl0aG9uMy4xMC9zaXRlLXBhY2thZ2VzL2Fuc2libGUvZ2FsYXh5L2NvbGxlY3Rpb24vX19pbml0X18ucHkiLCBsaW5lIDE4NTIsIGluIF9yZXNvbHZlX2RlcGVuZW5jeV9tYXAKICAgIHJldHVybiBjb2xsZWN0aW9uX2RlcF9yZXNvbHZlci5yZXNvbHZlKAogIEZpbGUgIi9vcHQvZ2l0aHViL2FjdGlvbnMtcnVubmVyLzIuMzMwLjAvX3dvcmsvYXRtb3NwaGVyZS9hdG1vc3BoZXJlLy52ZW52L2xpYi9weXRob24zLjEwL3NpdGUtcGFja2FnZXMvcmVzb2x2ZWxpYi9yZXNvbHZlcnMucHkiLCBsaW5lIDU0NiwgaW4gcmVzb2x2ZQogICAgc3RhdGUgPSByZXNvbHV0aW9uLnJlc29sdmUocmVxdWlyZW1lbnRzLCBtYXhfcm91bmRzPW1heF9yb3VuZHMpCiAgRmlsZSAiL29wdC9naXRodWIvYWN0aW9ucy1ydW5uZXIvMi4zMzAuMC9fd29yay9hdG1vc3BoZXJlL2F0bW9zcGhlcmUvLnZlbnYvbGliL3B5dGhvbjMuMTAvc2l0ZS1wYWNrYWdlcy9yZXNvbHZlbGliL3Jlc29sdmVycy5weSIsIGxpbmUgMzk3LCBpbiByZXNvbHZlCiAgICBzZWxmLl9hZGRfdG9fY3JpdGVyaWEoc2VsZi5zdGF0ZS5jcml0ZXJpYSwgciwgcGFyZW50PU5vbmUpCiAgRmlsZSAiL29wdC9naXRodWIvYWN0aW9ucy1ydW5uZXIvMi4zMzAuMC9fd29yay9hdG1vc3BoZXJlL2F0bW9zcGhlcmUvLnZlbnYvbGliL3B5dGhvbjMuMTAvc2l0ZS1wYWNrYWdlcy9yZXNvbHZlbGliL3Jlc29sdmVycy5weSIsIGxpbmUgMTQ4LCBpbiBfYWRkX3RvX2NyaXRlcmlhCiAgICBtYXRjaGVzID0gc2VsZi5fcC5maW5kX21hdGNoZXMoCiAgRmlsZSAiL29wdC9naXRodWIvYWN0aW9ucy1ydW5uZXIvMi4zMzAuMC9fd29yay9hdG1vc3BoZXJlL2F0bW9zcGhlcmUvLnZlbnYvbGliL3B5dGhvbjMuMTAvc2l0ZS1wYWNrYWdlcy9hbnNpYmxlL2dhbGF4eS9kZXBlbmRlbmN5X3Jlc29sdXRpb24vcHJvdmlkZXJzLnB5IiwgbGluZSA0NzcsIGluIGZpbmRfbWF0Y2hlcwogICAgbWF0Y2ggZm9yIG1hdGNoIGluIHNlbGYuX2ZpbmRfbWF0Y2hlcyhsaXN0KHJlcXVpcmVtZW50cykpCiAgRmlsZSAiL29wdC9naXRodWIvYWN0aW9ucy1ydW5uZXIvMi4zMzAuMC9fd29yay9hdG1vc3BoZXJlL2F0bW9zcGhlcmUvLnZlbnYvbGliL3B5dGhvbjMuMTAvc2l0ZS1wYWNrYWdlcy9hbnNpYmxlL2dhbGF4eS9kZXBlbmRlbmN5X3Jlc29sdXRpb24vcHJvdmlkZXJzLnB5IiwgbGluZSAyNTMsIGluIF9maW5kX21hdGNoZXMKICAgIGNvbGxfdmVyc2lvbnMgPSAgaWYgcHJlaW5zdGFsbGVkX2NhbmRpZGF0ZXMgZWxzZSBzZWxmLl9hcGlfcHJveHkuZ2V0X2NvbGxlY3Rpb25fdmVyc2lvbnMoZmlyc3RfcmVxKSAgIyB0eXBlOiB0Lkl0ZXJhYmxlXQogIEZpbGUgIi9vcHQvZ2l0aHViL2FjdGlvbnMtcnVubmVyLzIuMzMwLjAvX3dvcmsvYXRtb3NwaGVyZS9hdG1vc3BoZXJlLy52ZW52L2xpYi9weXRob24zLjEwL3NpdGUtcGFja2FnZXMvYW5zaWJsZS9nYWxheHkvY29sbGVjdGlvbi9nYWxheHlfYXBpX3Byb3h5LnB5IiwgbGluZSAxMDYsIGluIGdldF9jb2xsZWN0aW9uX3ZlcnNpb25zCiAgICByZXR1cm4gc2V0KAogIEZpbGUgIi9vcHQvZ2l0aHViL2FjdGlvbnMtcnVubmVyLzIuMzMwLjAvX3dvcmsvYXRtb3NwaGVyZS9hdG1vc3BoZXJlLy52ZW52L2xpYi9weXRob24zLjEwL3NpdGUtcGFja2FnZXMvYW5zaWJsZS9nYWxheHkvY29sbGVjdGlvbi9nYWxheHlfYXBpX3Byb3h5LnB5IiwgbGluZSAxMDYsIGluIDxnZW5leHByPgogICAgcmV0dXJuIHNldCgKICBGaWxlICIvb3B0L2dpdGh1Yi9hY3Rpb25zLXJ1bm5lci8yLjMzMC4wL193b3JrL2F0bW9zcGhlcmUvYXRtb3NwaGVyZS8udmVudi9saWIvcHl0aG9uMy4xMC9zaXRlLXBhY2thZ2VzL2Fuc2libGUvZ2FsYXh5L2NvbGxlY3Rpb24vZ2FsYXh5X2FwaV9wcm94eS5weSIsIGxpbmUgODcsIGluIF9nZXRfY29sbGVjdGlvbl92ZXJzaW9ucwogICAgcmFpc2UgbGFzdF9lcnJvcgogIEZpbGUgIi9vcHQvZ2l0aHViL2FjdGlvbnMtcnVubmVyLzIuMzMwLjAvX3dvcmsvYXRtb3NwaGVyZS9hdG1vc3BoZXJlLy52ZW52L2xpYi9weXRob24zLjEwL3NpdGUtcGFja2FnZXMvYW5zaWJsZS9nYWxheHkvY29sbGVjdGlvbi9nYWxheHlfYXBpX3Byb3h5LnB5IiwgbGluZSA2NiwgaW4gX2dldF9jb2xsZWN0aW9uX3ZlcnNpb25zCiAgICB2ZXJzaW9ucyA9IGFwaS5nZXRfY29sbGVjdGlvbl92ZXJzaW9ucyhyZXF1aXJlbWVudC5uYW1lc3BhY2UsIHJlcXVpcmVtZW50Lm5hbWUpCiAgRmlsZSAiL29wdC9naXRodWIvYWN0aW9ucy1ydW5uZXIvMi4zMzAuMC9fd29yay9hdG1vc3BoZXJlL2F0bW9zcGhlcmUvLnZlbnYvbGliL3B5dGhvbjMuMTAvc2l0ZS1wYWNrYWdlcy9hbnNpYmxlL2dhbGF4eS9hcGkucHkiLCBsaW5lIDE0NSwgaW4gd3JhcHBlZAogICAgcmV0dXJuIG1ldGhvZChzZWxmLCAqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL29wdC9naXRodWIvYWN0aW9ucy1ydW5uZXIvMi4zMzAuMC9fd29yay9hdG1vc3BoZXJlL2F0bW9zcGhlcmUvLnZlbnYvbGliL3B5dGhvbjMuMTAvc2l0ZS1wYWNrYWdlcy9hbnNpYmxlL2dhbGF4eS9hcGkucHkiLCBsaW5lIDg3NCwgaW4gZ2V0X2NvbGxlY3Rpb25fdmVyc2lvbnMKICAgIGRhdGEgPSBzZWxmLl9jYWxsX2dhbGF4eSh2ZXJzaW9uc191cmwsIGVycm9yX2NvbnRleHRfbXNnPWVycm9yX2NvbnRleHRfbXNnLCBjYWNoZT1UcnVlLCBjYWNoZV9rZXk9Y2FjaGVfa2V5KQogIEZpbGUgIi9vcHQvZ2l0aHViL2FjdGlvbnMtcnVubmVyLzIuMzMwLjAvX3dvcmsvYXRtb3NwaGVyZS8uLi4KCjwvZGV0YWlscz4KCgoKPCEtLSBTVEFSVCBDT1BJTE9UIENPRElORyBBR0VOVCBTVUZGSVggLS0+CgotIEZpeGVzIHZleHhob3N0L2F0bW9zcGhlcmUjMzU4MgoKPCEtLSBTVEFSVCBDT1BJTE9UIENPRElORyBBR0VOVCBUSVBTIC0tPgotLS0KCuKcqCBMZXQgQ29waWxvdCBjb2RpbmcgYWdlbnQgW3NldCB0aGluZ3MgdXAgZm9yIHlvdV0oaHR0cHM6Ly9naXRodWIuY29tL3ZleHhob3N0L2F0bW9zcGhlcmUvaXNzdWVzL25ldz90aXRsZT3inKgrU2V0K3VwK0NvcGlsb3QraW5zdHJ1Y3Rpb25zJmJvZHk9Q29uZmlndXJlJTIwaW5zdHJ1Y3Rpb25zJTIwZm9yJTIwdGhpcyUyMHJlcG9zaXRvcnklMjBhcyUyMGRvY3VtZW50ZWQlMjBpbiUyMCU1QkJlc3QlMjBwcmFjdGljZXMlMjBmb3IlMjBDb3BpbG90JTIwY29kaW5nJTIwYWdlbnQlMjBpbiUyMHlvdXIlMjByZXBvc2l0b3J5JTVEJTI4aHR0cHM6Ly9naC5pby9jb3BpbG90LWNvZGluZy1hZ2VudC10aXBzJTI5JTJFJTBBJTBBJTNDT25ib2FyZCUyMHRoaXMlMjByZXBvJTNFJmFzc2lnbmVlcz1jb3BpbG90KSDigJQgY29kaW5nIGFnZW50IHdvcmtzIGZhc3RlciBhbmQgZG9lcyBoaWdoZXIgcXVhbGl0eSB3b3JrIHdoZW4gc2V0IHVwIGZvciB5b3VyIHJlcG8uCg==
      patchset: 28bb718cd95376cbf508c28bd0d3e9c804ffea4c
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/vexxhost.dev/zuul-config:
            canonical_name: vexxhost.dev/zuul-config
            checkout: main
            commit: 9052b5a7781b3346e4cffd452a54448cbff54d8b
          trusted/project_1/opendev.org/zuul/zuul-jobs:
            canonical_name: opendev.org/zuul/zuul-jobs
            checkout: master
            commit: d73b78cc624f363c6b7fcfe833f2db4571e4e979
          trusted/project_2/github.com/vexxhost/zuul-jobs:
            canonical_name: github.com/vexxhost/zuul-jobs
            checkout: main
            commit: a6e68243e02ef030ce5e75f8b67630880c475f33
          untrusted/project_0/github.com/vexxhost/zuul-jobs:
            canonical_name: github.com/vexxhost/zuul-jobs
            checkout: main
            commit: a6e68243e02ef030ce5e75f8b67630880c475f33
          untrusted/project_1/vexxhost.dev/zuul-config:
            canonical_name: vexxhost.dev/zuul-config
            checkout: main
            commit: 9052b5a7781b3346e4cffd452a54448cbff54d8b
          untrusted/project_2/opendev.org/zuul/zuul-jobs:
            canonical_name: opendev.org/zuul/zuul-jobs
            checkout: master
            commit: d73b78cc624f363c6b7fcfe833f2db4571e4e979
          untrusted/project_3/github.com/vexxhost/atmosphere:
            canonical_name: github.com/vexxhost/atmosphere
            checkout: main
            commit: 28bb718cd95376cbf508c28bd0d3e9c804ffea4c
          untrusted/project_4/opendev.org/openstack/openstack-helm:
            canonical_name: opendev.org/openstack/openstack-helm
            checkout: master
            commit: 3a57ef7049b4b76a5a29f8331975931464a14d51
        playbooks:
        - path: untrusted/project_0/github.com/vexxhost/zuul-jobs/playbooks/molecule/run.yaml
          roles:
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/playbook_0/role_1/zuul-jobs
            link_target: untrusted/project_2/opendev.org/zuul/zuul-jobs
            role_path: ansible/playbook_0/role_1/zuul-jobs/roles
          - checkout: main
            checkout_description: playbook branch
            link_name: ansible/playbook_0/role_2/zuul-jobs
            link_target: untrusted/project_0/github.com/vexxhost/zuul-jobs
            role_path: ansible/playbook_0/role_2/zuul-jobs/roles
      post_review: false
      post_timeout: null
      pre_timeout: null
      project:
        canonical_hostname: github.com
        canonical_name: github.com/vexxhost/atmosphere
        name: vexxhost/atmosphere
        short_name: atmosphere
        src_dir: src/github.com/vexxhost/atmosphere
      projects:
        github.com/vexxhost/atmosphere:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/atmosphere
          checkout: main
          checkout_description: zuul branch
          commit: 28bb718cd95376cbf508c28bd0d3e9c804ffea4c
          name: vexxhost/atmosphere
          required: false
          short_name: atmosphere
          src_dir: src/github.com/vexxhost/atmosphere
      ref: refs/pull/3583/head
      resources: {}
      tenant: oss
      timeout: 1800
      topic: null
      voting: true
