all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fec6:8d3c
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 70ebc154-b5ad-4ab7-a003-b2a39f800a2f
        host_id: 7f2607eceb24f4583c6f9496c53c64b51afe50de5eacda4379b21c42
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fec6:8d3c
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.7.91
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.192.52
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fec6:8d3c
        region: null
        slot: null
  vars:
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-config/zuul.d/jobs.yaml@main#2>'
      - '<Job flake8 explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-jobs/.zuul.yaml@main#32>'
      - '<Job flake8 explicit: None implied: None source: osism/python-osism/.zuul.yaml@main#143>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 69410906b17845f1a2e344bca354f6ad
      build_refs:
      - branch: main
        change: '2501'
        change_message: "Cap openstacksdk <4.11 to fix openstack.cloud collection
          break\n\n## Problem\n\nopenstacksdk `4.17.0` is incompatible with the galaxy-pinned\n`openstack.cloud`
          `2.5.0` ansible collection. The collection's shared\n`openstack_cloud_from_module`
          helper references `openstack.version`, which the\nnewer sdk no longer exposes,
          so every `openstack.cloud` module in the\nosism-ansible manager container
          fails with:\n\n```\nAttributeError: module 'openstack' has no attribute
          'version'\n```\n\nThis broke **all** testbed `periodic-midnight` jobs on
          2026-07-22 (they passed\nthe night before). The sdk bump rode in via:\n\n-
          osism/python-osism#2292\n- osism/python-osism#2395\n\n## Change\n\nRevert
          to the proven-good set that matches collection `2.5.0`, and cap it so it\ncannot
          silently drift again:\n\n- `requirements.txt` + `Pipfile` + `Pipfile.lock`:
          `openstacksdk` `4.17.0` \u2192 `4.10.0`,\n  `python-openstackclient` `10.2.1`
          \u2192 `9.0.0` (openstackclient 10.x requires\n  openstacksdk `>=4.16`,
          so the two must move together).\n- `.github/renovate.json`: `allowedVersions`
          caps (`openstacksdk <4.11`,\n  `python-openstackclient <10`) covering **all**
          managers, so neither\n  `requirements.txt` (pip_requirements) nor the `Pipfile`
          (pipenv) can outrun the\n  collection again.\n\n`Pipfile.lock` was regenerated
          with `pipenv lock` (re-adds `requestsexceptions`\nfor the 4.10.0 tree; incidentally
          refreshes `certifi` and `platformdirs`).\n\n## Follow-up\n\nThe caps are
          the compatibility contract: raise them **only together** with an\n`openstack.cloud`
          bump in `osism/release`. Longer term, the sdk is pinned\nredundantly in
          both `requirements.txt` and the `Pipfile` (two Renovate managers,\nno generation
          link) \u2014 that duplication should be single-sourced.\n\n\U0001F916 Generated
          with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/python-osism/pull/2501
        commit_id: 26b2b572d30a44f66b3361a2679c2eb73f3bed84
        patchset: 26b2b572d30a44f66b3361a2679c2eb73f3bed84
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/python-osism
          name: osism/python-osism
          short_name: python-osism
        src_dir: src/github.com/osism/python-osism
        topic: null
      buildset: 27f80d1a94634df0819a1f29959543cd
      buildset_refs:
      - branch: main
        change: '2501'
        change_message: "Cap openstacksdk <4.11 to fix openstack.cloud collection
          break\n\n## Problem\n\nopenstacksdk `4.17.0` is incompatible with the galaxy-pinned\n`openstack.cloud`
          `2.5.0` ansible collection. The collection's shared\n`openstack_cloud_from_module`
          helper references `openstack.version`, which the\nnewer sdk no longer exposes,
          so every `openstack.cloud` module in the\nosism-ansible manager container
          fails with:\n\n```\nAttributeError: module 'openstack' has no attribute
          'version'\n```\n\nThis broke **all** testbed `periodic-midnight` jobs on
          2026-07-22 (they passed\nthe night before). The sdk bump rode in via:\n\n-
          osism/python-osism#2292\n- osism/python-osism#2395\n\n## Change\n\nRevert
          to the proven-good set that matches collection `2.5.0`, and cap it so it\ncannot
          silently drift again:\n\n- `requirements.txt` + `Pipfile` + `Pipfile.lock`:
          `openstacksdk` `4.17.0` \u2192 `4.10.0`,\n  `python-openstackclient` `10.2.1`
          \u2192 `9.0.0` (openstackclient 10.x requires\n  openstacksdk `>=4.16`,
          so the two must move together).\n- `.github/renovate.json`: `allowedVersions`
          caps (`openstacksdk <4.11`,\n  `python-openstackclient <10`) covering **all**
          managers, so neither\n  `requirements.txt` (pip_requirements) nor the `Pipfile`
          (pipenv) can outrun the\n  collection again.\n\n`Pipfile.lock` was regenerated
          with `pipenv lock` (re-adds `requestsexceptions`\nfor the 4.10.0 tree; incidentally
          refreshes `certifi` and `platformdirs`).\n\n## Follow-up\n\nThe caps are
          the compatibility contract: raise them **only together** with an\n`openstack.cloud`
          bump in `osism/release`. Longer term, the sdk is pinned\nredundantly in
          both `requirements.txt` and the `Pipfile` (two Renovate managers,\nno generation
          link) \u2014 that duplication should be single-sourced.\n\n\U0001F916 Generated
          with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/python-osism/pull/2501
        commit_id: 26b2b572d30a44f66b3361a2679c2eb73f3bed84
        patchset: 26b2b572d30a44f66b3361a2679c2eb73f3bed84
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/python-osism
          name: osism/python-osism
          short_name: python-osism
        src_dir: src/github.com/osism/python-osism
        topic: null
      change: '2501'
      change_message: "Cap openstacksdk <4.11 to fix openstack.cloud collection break\n\n##
        Problem\n\nopenstacksdk `4.17.0` is incompatible with the galaxy-pinned\n`openstack.cloud`
        `2.5.0` ansible collection. The collection's shared\n`openstack_cloud_from_module`
        helper references `openstack.version`, which the\nnewer sdk no longer exposes,
        so every `openstack.cloud` module in the\nosism-ansible manager container
        fails with:\n\n```\nAttributeError: module 'openstack' has no attribute 'version'\n```\n\nThis
        broke **all** testbed `periodic-midnight` jobs on 2026-07-22 (they passed\nthe
        night before). The sdk bump rode in via:\n\n- osism/python-osism#2292\n- osism/python-osism#2395\n\n##
        Change\n\nRevert to the proven-good set that matches collection `2.5.0`, and
        cap it so it\ncannot silently drift again:\n\n- `requirements.txt` + `Pipfile`
        + `Pipfile.lock`: `openstacksdk` `4.17.0` \u2192 `4.10.0`,\n  `python-openstackclient`
        `10.2.1` \u2192 `9.0.0` (openstackclient 10.x requires\n  openstacksdk `>=4.16`,
        so the two must move together).\n- `.github/renovate.json`: `allowedVersions`
        caps (`openstacksdk <4.11`,\n  `python-openstackclient <10`) covering **all**
        managers, so neither\n  `requirements.txt` (pip_requirements) nor the `Pipfile`
        (pipenv) can outrun the\n  collection again.\n\n`Pipfile.lock` was regenerated
        with `pipenv lock` (re-adds `requestsexceptions`\nfor the 4.10.0 tree; incidentally
        refreshes `certifi` and `platformdirs`).\n\n## Follow-up\n\nThe caps are the
        compatibility contract: raise them **only together** with an\n`openstack.cloud`
        bump in `osism/release`. Longer term, the sdk is pinned\nredundantly in both
        `requirements.txt` and the `Pipfile` (two Renovate managers,\nno generation
        link) \u2014 that duplication should be single-sourced.\n\n\U0001F916 Generated
        with [Claude Code](https://claude.com/claude-code)"
      change_url: https://github.com/osism/python-osism/pull/2501
      child_jobs: []
      commit_id: 26b2b572d30a44f66b3361a2679c2eb73f3bed84
      event_id: a77e3c60-8597-11f1-9277-e4d12e418092
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/69410906b17845f1a2e344bca354f6ad/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/69410906b17845f1a2e344bca354f6ad/work/logs
        result_data_file: /var/lib/zuul/builds/69410906b17845f1a2e344bca354f6ad/work/results.json
        src_root: /var/lib/zuul/builds/69410906b17845f1a2e344bca354f6ad/work/src
        work_root: /var/lib/zuul/builds/69410906b17845f1a2e344bca354f6ad/work
      include_vars: []
      items:
      - branch: main
        change: '2501'
        change_message: "Cap openstacksdk <4.11 to fix openstack.cloud collection
          break\n\n## Problem\n\nopenstacksdk `4.17.0` is incompatible with the galaxy-pinned\n`openstack.cloud`
          `2.5.0` ansible collection. The collection's shared\n`openstack_cloud_from_module`
          helper references `openstack.version`, which the\nnewer sdk no longer exposes,
          so every `openstack.cloud` module in the\nosism-ansible manager container
          fails with:\n\n```\nAttributeError: module 'openstack' has no attribute
          'version'\n```\n\nThis broke **all** testbed `periodic-midnight` jobs on
          2026-07-22 (they passed\nthe night before). The sdk bump rode in via:\n\n-
          osism/python-osism#2292\n- osism/python-osism#2395\n\n## Change\n\nRevert
          to the proven-good set that matches collection `2.5.0`, and cap it so it\ncannot
          silently drift again:\n\n- `requirements.txt` + `Pipfile` + `Pipfile.lock`:
          `openstacksdk` `4.17.0` \u2192 `4.10.0`,\n  `python-openstackclient` `10.2.1`
          \u2192 `9.0.0` (openstackclient 10.x requires\n  openstacksdk `>=4.16`,
          so the two must move together).\n- `.github/renovate.json`: `allowedVersions`
          caps (`openstacksdk <4.11`,\n  `python-openstackclient <10`) covering **all**
          managers, so neither\n  `requirements.txt` (pip_requirements) nor the `Pipfile`
          (pipenv) can outrun the\n  collection again.\n\n`Pipfile.lock` was regenerated
          with `pipenv lock` (re-adds `requestsexceptions`\nfor the 4.10.0 tree; incidentally
          refreshes `certifi` and `platformdirs`).\n\n## Follow-up\n\nThe caps are
          the compatibility contract: raise them **only together** with an\n`openstack.cloud`
          bump in `osism/release`. Longer term, the sdk is pinned\nredundantly in
          both `requirements.txt` and the `Pipfile` (two Renovate managers,\nno generation
          link) \u2014 that duplication should be single-sourced.\n\n\U0001F916 Generated
          with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/python-osism/pull/2501
        commit_id: 26b2b572d30a44f66b3361a2679c2eb73f3bed84
        patchset: 26b2b572d30a44f66b3361a2679c2eb73f3bed84
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/python-osism
          name: osism/python-osism
          short_name: python-osism
          src_dir: src/github.com/osism/python-osism
        topic: null
      job: flake8
      jobtags: []
      max_attempts: 3
      message: Q2FwIG9wZW5zdGFja3NkayA8NC4xMSB0byBmaXggb3BlbnN0YWNrLmNsb3VkIGNvbGxlY3Rpb24gYnJlYWsKCiMjIFByb2JsZW0KCm9wZW5zdGFja3NkayBgNC4xNy4wYCBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgZ2FsYXh5LXBpbm5lZApgb3BlbnN0YWNrLmNsb3VkYCBgMi41LjBgIGFuc2libGUgY29sbGVjdGlvbi4gVGhlIGNvbGxlY3Rpb24ncyBzaGFyZWQKYG9wZW5zdGFja19jbG91ZF9mcm9tX21vZHVsZWAgaGVscGVyIHJlZmVyZW5jZXMgYG9wZW5zdGFjay52ZXJzaW9uYCwgd2hpY2ggdGhlCm5ld2VyIHNkayBubyBsb25nZXIgZXhwb3Nlcywgc28gZXZlcnkgYG9wZW5zdGFjay5jbG91ZGAgbW9kdWxlIGluIHRoZQpvc2lzbS1hbnNpYmxlIG1hbmFnZXIgY29udGFpbmVyIGZhaWxzIHdpdGg6CgpgYGAKQXR0cmlidXRlRXJyb3I6IG1vZHVsZSAnb3BlbnN0YWNrJyBoYXMgbm8gYXR0cmlidXRlICd2ZXJzaW9uJwpgYGAKClRoaXMgYnJva2UgKiphbGwqKiB0ZXN0YmVkIGBwZXJpb2RpYy1taWRuaWdodGAgam9icyBvbiAyMDI2LTA3LTIyICh0aGV5IHBhc3NlZAp0aGUgbmlnaHQgYmVmb3JlKS4gVGhlIHNkayBidW1wIHJvZGUgaW4gdmlhOgoKLSBvc2lzbS9weXRob24tb3Npc20jMjI5MgotIG9zaXNtL3B5dGhvbi1vc2lzbSMyMzk1CgojIyBDaGFuZ2UKClJldmVydCB0byB0aGUgcHJvdmVuLWdvb2Qgc2V0IHRoYXQgbWF0Y2hlcyBjb2xsZWN0aW9uIGAyLjUuMGAsIGFuZCBjYXAgaXQgc28gaXQKY2Fubm90IHNpbGVudGx5IGRyaWZ0IGFnYWluOgoKLSBgcmVxdWlyZW1lbnRzLnR4dGAgKyBgUGlwZmlsZWAgKyBgUGlwZmlsZS5sb2NrYDogYG9wZW5zdGFja3Nka2AgYDQuMTcuMGAg4oaSIGA0LjEwLjBgLAogIGBweXRob24tb3BlbnN0YWNrY2xpZW50YCBgMTAuMi4xYCDihpIgYDkuMC4wYCAob3BlbnN0YWNrY2xpZW50IDEwLnggcmVxdWlyZXMKICBvcGVuc3RhY2tzZGsgYD49NC4xNmAsIHNvIHRoZSB0d28gbXVzdCBtb3ZlIHRvZ2V0aGVyKS4KLSBgLmdpdGh1Yi9yZW5vdmF0ZS5qc29uYDogYGFsbG93ZWRWZXJzaW9uc2AgY2FwcyAoYG9wZW5zdGFja3NkayA8NC4xMWAsCiAgYHB5dGhvbi1vcGVuc3RhY2tjbGllbnQgPDEwYCkgY292ZXJpbmcgKiphbGwqKiBtYW5hZ2Vycywgc28gbmVpdGhlcgogIGByZXF1aXJlbWVudHMudHh0YCAocGlwX3JlcXVpcmVtZW50cykgbm9yIHRoZSBgUGlwZmlsZWAgKHBpcGVudikgY2FuIG91dHJ1biB0aGUKICBjb2xsZWN0aW9uIGFnYWluLgoKYFBpcGZpbGUubG9ja2Agd2FzIHJlZ2VuZXJhdGVkIHdpdGggYHBpcGVudiBsb2NrYCAocmUtYWRkcyBgcmVxdWVzdHNleGNlcHRpb25zYApmb3IgdGhlIDQuMTAuMCB0cmVlOyBpbmNpZGVudGFsbHkgcmVmcmVzaGVzIGBjZXJ0aWZpYCBhbmQgYHBsYXRmb3JtZGlyc2ApLgoKIyMgRm9sbG93LXVwCgpUaGUgY2FwcyBhcmUgdGhlIGNvbXBhdGliaWxpdHkgY29udHJhY3Q6IHJhaXNlIHRoZW0gKipvbmx5IHRvZ2V0aGVyKiogd2l0aCBhbgpgb3BlbnN0YWNrLmNsb3VkYCBidW1wIGluIGBvc2lzbS9yZWxlYXNlYC4gTG9uZ2VyIHRlcm0sIHRoZSBzZGsgaXMgcGlubmVkCnJlZHVuZGFudGx5IGluIGJvdGggYHJlcXVpcmVtZW50cy50eHRgIGFuZCB0aGUgYFBpcGZpbGVgICh0d28gUmVub3ZhdGUgbWFuYWdlcnMsCm5vIGdlbmVyYXRpb24gbGluaykg4oCUIHRoYXQgZHVwbGljYXRpb24gc2hvdWxkIGJlIHNpbmdsZS1zb3VyY2VkLgoK8J+kliBHZW5lcmF0ZWQgd2l0aCBbQ2xhdWRlIENvZGVdKGh0dHBzOi8vY2xhdWRlLmNvbS9jbGF1ZGUtY29kZSk=
      patchset: 26b2b572d30a44f66b3361a2679c2eb73f3bed84
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 71b711c422c10c242a8f785dc6d41ed9d12e9cd3
          trusted/project_1/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 242732586e2cba04d04867d3e302888c766bc231
          trusted/project_2/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 1d71e58c93442038e695a5d883d57a603182c7ae
          untrusted/project_0/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 1d71e58c93442038e695a5d883d57a603182c7ae
          untrusted/project_1/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 71b711c422c10c242a8f785dc6d41ed9d12e9cd3
          untrusted/project_2/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 242732586e2cba04d04867d3e302888c766bc231
        playbooks:
        - path: untrusted/project_0/github.com/osism/zuul-jobs/playbooks/flake8/run.yaml
          roles:
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/playbook_0/role_0/zuul-config
            link_target: untrusted/project_1/github.com/osism/zuul-config
            role_path: ansible/playbook_0/role_0/zuul-config/roles
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/playbook_0/role_1/openinfra-zuul-jobs
            link_target: untrusted/project_2/github.com/osism/openinfra-zuul-jobs
            role_path: ansible/playbook_0/role_1/openinfra-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/osism/zuul-jobs
            role_path: ansible/playbook_0/role_2/zuul-jobs/roles
      post_review: false
      post_timeout: 1800
      pre_timeout: null
      project:
        canonical_hostname: github.com
        canonical_name: github.com/osism/python-osism
        name: osism/python-osism
        short_name: python-osism
        src_dir: src/github.com/osism/python-osism
      projects:
        github.com/osism/python-osism:
          canonical_hostname: github.com
          canonical_name: github.com/osism/python-osism
          checkout: main
          checkout_description: zuul branch
          commit: b01c692c1cf84d3053de4648975edacb84b48747
          name: osism/python-osism
          required: false
          short_name: python-osism
          src_dir: src/github.com/osism/python-osism
      ref: refs/pull/2501/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
