all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fe9a:f4c5
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: b809883b-051c-4371-99f8-a646de282706
        host_id: ec4f54fa666de9bc553bc59c41683f12345b665d0b1af00d715e7318
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fe9a:f4c5
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.7.49
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.193.198
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fe9a:f4c5
        region: null
        slot: null
      tox_environment:
        NOSE_HTML_OUT_FILE: nose_results.html
        NOSE_WITH_HTML_OUTPUT: 1
        NOSE_WITH_XUNIT: 1
      tox_envlist: seed
  vars:
    tox_environment:
      NOSE_HTML_OUT_FILE: nose_results.html
      NOSE_WITH_HTML_OUTPUT: 1
      NOSE_WITH_XUNIT: 1
    tox_envlist: seed
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-config/zuul.d/jobs.yaml@main#2>'
      - '<Job unittests explicit: None implied: {MatchAny:{ImpliedBranchMatcher:master}}
        source: osism/openinfra-zuul-jobs/zuul.d/general-jobs.yaml@master#9>'
      - '<Job tox explicit: None implied: {MatchAny:{ImpliedBranchMatcher:master}}
        source: osism/openinfra-zuul-jobs/zuul.d/python-jobs.yaml@master#1>'
      - '<Job generics-tox-seed explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/generics/.zuul.yaml@main#38>'
      - '<Job generics-tox-seed explicit: None implied: None source: osism/generics/.zuul.yaml@main#44>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 0121fd3f26bf46c9aad5173076a1904a
      build_refs:
      - branch: main
        change: '602'
        change_message: "check-kolla-inventory: gate CI on inventory drift\n\n## What\n\nTurn
          `src/check-kolla-inventory.py` into a **gating CI check** that fails when\nthis
          repo's Ansible inventory drifts from the kolla-ansible release OSISM\ndeploys.
          This is the class of bug behind the neutron 2025.2 groups and\n`ironic-dnsmasq`:
          a group present upstream but absent here makes Ansible abort\nwith `'dict
          object' has no attribute '<group>'`.\n\n## Commits\n\n- `check-kolla-inventory:
          gate CI on missing groups` \u2014 exit non-zero on drift\n  with remediation
          guidance; pin `KOLLA_BRANCH = stable/2025.2` (the deployed\n  release) instead
          of `master`, so it flags real drift rather than\n  not-yet-released groups.\n-
          `check-kolla-inventory: clean up the IGNORE list` \u2014 split into\n  `IGNORE_ROLE_GROUPS`
          (host-role groups, exact match) and\n  `IGNORE_NOT_DEPLOYED` (services OSISM
          does not deploy, prefix match); drop 8\n  stale entries.\n- `check-kolla-inventory:
          guard against stale IGNORE` \u2014 fail when an IGNORE\n  entry no longer
          suppresses any real upstream group (now shipped, or removed\n  from the
          tracked release), so a stale prefix can't silently hide future\n  drift.\n-
          `zuul: run check-kolla-inventory as a gating job` \u2014 `check-kolla` tox
          env +\n  voting `generics-tox-check-kolla` job in the `check` and `periodic-daily`\n
          \ pipelines.\n\n## \u26A0\uFE0F Depends on the ironic-dnsmasq fix\n\nThis
          branch is based on `main`, which does **not** yet contain the\n`ironic-dnsmasq`
          inventory group. The new `generics-tox-check-kolla` job will\ntherefore
          fail on `ironic-dnsmasq` until that fix merges and this branch is\nrebased.
          Merge order: the fix first, then this PR.\n\n- osism/generics#601\n\n##
          Maintenance\n\n`KOLLA_BRANCH` must be bumped when OSISM moves to a new OpenStack
          series;\ndocumented as a prerequisite in the developer-guide release checklist\n(osism.github.io,
          `rewrite-releases-guide`).\n\n\U0001F916 Generated with [Claude Code](https://claude.com/claude-code)\n"
        change_url: https://github.com/osism/generics/pull/602
        commit_id: 5c2b94d64e020da8868c565956a8e50200fb3f41
        patchset: 5c2b94d64e020da8868c565956a8e50200fb3f41
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/generics
          name: osism/generics
          short_name: generics
        src_dir: src/github.com/osism/generics
        topic: null
      buildset: eb727c476b964a83ab12f74d2bfd27b6
      buildset_refs:
      - branch: main
        change: '602'
        change_message: "check-kolla-inventory: gate CI on inventory drift\n\n## What\n\nTurn
          `src/check-kolla-inventory.py` into a **gating CI check** that fails when\nthis
          repo's Ansible inventory drifts from the kolla-ansible release OSISM\ndeploys.
          This is the class of bug behind the neutron 2025.2 groups and\n`ironic-dnsmasq`:
          a group present upstream but absent here makes Ansible abort\nwith `'dict
          object' has no attribute '<group>'`.\n\n## Commits\n\n- `check-kolla-inventory:
          gate CI on missing groups` \u2014 exit non-zero on drift\n  with remediation
          guidance; pin `KOLLA_BRANCH = stable/2025.2` (the deployed\n  release) instead
          of `master`, so it flags real drift rather than\n  not-yet-released groups.\n-
          `check-kolla-inventory: clean up the IGNORE list` \u2014 split into\n  `IGNORE_ROLE_GROUPS`
          (host-role groups, exact match) and\n  `IGNORE_NOT_DEPLOYED` (services OSISM
          does not deploy, prefix match); drop 8\n  stale entries.\n- `check-kolla-inventory:
          guard against stale IGNORE` \u2014 fail when an IGNORE\n  entry no longer
          suppresses any real upstream group (now shipped, or removed\n  from the
          tracked release), so a stale prefix can't silently hide future\n  drift.\n-
          `zuul: run check-kolla-inventory as a gating job` \u2014 `check-kolla` tox
          env +\n  voting `generics-tox-check-kolla` job in the `check` and `periodic-daily`\n
          \ pipelines.\n\n## \u26A0\uFE0F Depends on the ironic-dnsmasq fix\n\nThis
          branch is based on `main`, which does **not** yet contain the\n`ironic-dnsmasq`
          inventory group. The new `generics-tox-check-kolla` job will\ntherefore
          fail on `ironic-dnsmasq` until that fix merges and this branch is\nrebased.
          Merge order: the fix first, then this PR.\n\n- osism/generics#601\n\n##
          Maintenance\n\n`KOLLA_BRANCH` must be bumped when OSISM moves to a new OpenStack
          series;\ndocumented as a prerequisite in the developer-guide release checklist\n(osism.github.io,
          `rewrite-releases-guide`).\n\n\U0001F916 Generated with [Claude Code](https://claude.com/claude-code)\n"
        change_url: https://github.com/osism/generics/pull/602
        commit_id: 5c2b94d64e020da8868c565956a8e50200fb3f41
        patchset: 5c2b94d64e020da8868c565956a8e50200fb3f41
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/generics
          name: osism/generics
          short_name: generics
        src_dir: src/github.com/osism/generics
        topic: null
      change: '602'
      change_message: "check-kolla-inventory: gate CI on inventory drift\n\n## What\n\nTurn
        `src/check-kolla-inventory.py` into a **gating CI check** that fails when\nthis
        repo's Ansible inventory drifts from the kolla-ansible release OSISM\ndeploys.
        This is the class of bug behind the neutron 2025.2 groups and\n`ironic-dnsmasq`:
        a group present upstream but absent here makes Ansible abort\nwith `'dict
        object' has no attribute '<group>'`.\n\n## Commits\n\n- `check-kolla-inventory:
        gate CI on missing groups` \u2014 exit non-zero on drift\n  with remediation
        guidance; pin `KOLLA_BRANCH = stable/2025.2` (the deployed\n  release) instead
        of `master`, so it flags real drift rather than\n  not-yet-released groups.\n-
        `check-kolla-inventory: clean up the IGNORE list` \u2014 split into\n  `IGNORE_ROLE_GROUPS`
        (host-role groups, exact match) and\n  `IGNORE_NOT_DEPLOYED` (services OSISM
        does not deploy, prefix match); drop 8\n  stale entries.\n- `check-kolla-inventory:
        guard against stale IGNORE` \u2014 fail when an IGNORE\n  entry no longer
        suppresses any real upstream group (now shipped, or removed\n  from the tracked
        release), so a stale prefix can't silently hide future\n  drift.\n- `zuul:
        run check-kolla-inventory as a gating job` \u2014 `check-kolla` tox env +\n
        \ voting `generics-tox-check-kolla` job in the `check` and `periodic-daily`\n
        \ pipelines.\n\n## \u26A0\uFE0F Depends on the ironic-dnsmasq fix\n\nThis
        branch is based on `main`, which does **not** yet contain the\n`ironic-dnsmasq`
        inventory group. The new `generics-tox-check-kolla` job will\ntherefore fail
        on `ironic-dnsmasq` until that fix merges and this branch is\nrebased. Merge
        order: the fix first, then this PR.\n\n- osism/generics#601\n\n## Maintenance\n\n`KOLLA_BRANCH`
        must be bumped when OSISM moves to a new OpenStack series;\ndocumented as
        a prerequisite in the developer-guide release checklist\n(osism.github.io,
        `rewrite-releases-guide`).\n\n\U0001F916 Generated with [Claude Code](https://claude.com/claude-code)\n"
      change_url: https://github.com/osism/generics/pull/602
      child_jobs: []
      commit_id: 5c2b94d64e020da8868c565956a8e50200fb3f41
      event_id: 3be372e0-705c-11f1-956d-86877e93c48c
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/0121fd3f26bf46c9aad5173076a1904a/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/0121fd3f26bf46c9aad5173076a1904a/work/logs
        result_data_file: /var/lib/zuul/builds/0121fd3f26bf46c9aad5173076a1904a/work/results.json
        src_root: /var/lib/zuul/builds/0121fd3f26bf46c9aad5173076a1904a/work/src
        work_root: /var/lib/zuul/builds/0121fd3f26bf46c9aad5173076a1904a/work
      include_vars: []
      items:
      - branch: main
        change: '602'
        change_message: "check-kolla-inventory: gate CI on inventory drift\n\n## What\n\nTurn
          `src/check-kolla-inventory.py` into a **gating CI check** that fails when\nthis
          repo's Ansible inventory drifts from the kolla-ansible release OSISM\ndeploys.
          This is the class of bug behind the neutron 2025.2 groups and\n`ironic-dnsmasq`:
          a group present upstream but absent here makes Ansible abort\nwith `'dict
          object' has no attribute '<group>'`.\n\n## Commits\n\n- `check-kolla-inventory:
          gate CI on missing groups` \u2014 exit non-zero on drift\n  with remediation
          guidance; pin `KOLLA_BRANCH = stable/2025.2` (the deployed\n  release) instead
          of `master`, so it flags real drift rather than\n  not-yet-released groups.\n-
          `check-kolla-inventory: clean up the IGNORE list` \u2014 split into\n  `IGNORE_ROLE_GROUPS`
          (host-role groups, exact match) and\n  `IGNORE_NOT_DEPLOYED` (services OSISM
          does not deploy, prefix match); drop 8\n  stale entries.\n- `check-kolla-inventory:
          guard against stale IGNORE` \u2014 fail when an IGNORE\n  entry no longer
          suppresses any real upstream group (now shipped, or removed\n  from the
          tracked release), so a stale prefix can't silently hide future\n  drift.\n-
          `zuul: run check-kolla-inventory as a gating job` \u2014 `check-kolla` tox
          env +\n  voting `generics-tox-check-kolla` job in the `check` and `periodic-daily`\n
          \ pipelines.\n\n## \u26A0\uFE0F Depends on the ironic-dnsmasq fix\n\nThis
          branch is based on `main`, which does **not** yet contain the\n`ironic-dnsmasq`
          inventory group. The new `generics-tox-check-kolla` job will\ntherefore
          fail on `ironic-dnsmasq` until that fix merges and this branch is\nrebased.
          Merge order: the fix first, then this PR.\n\n- osism/generics#601\n\n##
          Maintenance\n\n`KOLLA_BRANCH` must be bumped when OSISM moves to a new OpenStack
          series;\ndocumented as a prerequisite in the developer-guide release checklist\n(osism.github.io,
          `rewrite-releases-guide`).\n\n\U0001F916 Generated with [Claude Code](https://claude.com/claude-code)\n"
        change_url: https://github.com/osism/generics/pull/602
        commit_id: 5c2b94d64e020da8868c565956a8e50200fb3f41
        patchset: 5c2b94d64e020da8868c565956a8e50200fb3f41
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/generics
          name: osism/generics
          short_name: generics
          src_dir: src/github.com/osism/generics
        topic: null
      job: generics-tox-seed
      jobtags: []
      max_attempts: 3
      message: Y2hlY2sta29sbGEtaW52ZW50b3J5OiBnYXRlIENJIG9uIGludmVudG9yeSBkcmlmdAoKIyMgV2hhdAoKVHVybiBgc3JjL2NoZWNrLWtvbGxhLWludmVudG9yeS5weWAgaW50byBhICoqZ2F0aW5nIENJIGNoZWNrKiogdGhhdCBmYWlscyB3aGVuCnRoaXMgcmVwbydzIEFuc2libGUgaW52ZW50b3J5IGRyaWZ0cyBmcm9tIHRoZSBrb2xsYS1hbnNpYmxlIHJlbGVhc2UgT1NJU00KZGVwbG95cy4gVGhpcyBpcyB0aGUgY2xhc3Mgb2YgYnVnIGJlaGluZCB0aGUgbmV1dHJvbiAyMDI1LjIgZ3JvdXBzIGFuZApgaXJvbmljLWRuc21hc3FgOiBhIGdyb3VwIHByZXNlbnQgdXBzdHJlYW0gYnV0IGFic2VudCBoZXJlIG1ha2VzIEFuc2libGUgYWJvcnQKd2l0aCBgJ2RpY3Qgb2JqZWN0JyBoYXMgbm8gYXR0cmlidXRlICc8Z3JvdXA+J2AuCgojIyBDb21taXRzCgotIGBjaGVjay1rb2xsYS1pbnZlbnRvcnk6IGdhdGUgQ0kgb24gbWlzc2luZyBncm91cHNgIOKAlCBleGl0IG5vbi16ZXJvIG9uIGRyaWZ0CiAgd2l0aCByZW1lZGlhdGlvbiBndWlkYW5jZTsgcGluIGBLT0xMQV9CUkFOQ0ggPSBzdGFibGUvMjAyNS4yYCAodGhlIGRlcGxveWVkCiAgcmVsZWFzZSkgaW5zdGVhZCBvZiBgbWFzdGVyYCwgc28gaXQgZmxhZ3MgcmVhbCBkcmlmdCByYXRoZXIgdGhhbgogIG5vdC15ZXQtcmVsZWFzZWQgZ3JvdXBzLgotIGBjaGVjay1rb2xsYS1pbnZlbnRvcnk6IGNsZWFuIHVwIHRoZSBJR05PUkUgbGlzdGAg4oCUIHNwbGl0IGludG8KICBgSUdOT1JFX1JPTEVfR1JPVVBTYCAoaG9zdC1yb2xlIGdyb3VwcywgZXhhY3QgbWF0Y2gpIGFuZAogIGBJR05PUkVfTk9UX0RFUExPWUVEYCAoc2VydmljZXMgT1NJU00gZG9lcyBub3QgZGVwbG95LCBwcmVmaXggbWF0Y2gpOyBkcm9wIDgKICBzdGFsZSBlbnRyaWVzLgotIGBjaGVjay1rb2xsYS1pbnZlbnRvcnk6IGd1YXJkIGFnYWluc3Qgc3RhbGUgSUdOT1JFYCDigJQgZmFpbCB3aGVuIGFuIElHTk9SRQogIGVudHJ5IG5vIGxvbmdlciBzdXBwcmVzc2VzIGFueSByZWFsIHVwc3RyZWFtIGdyb3VwIChub3cgc2hpcHBlZCwgb3IgcmVtb3ZlZAogIGZyb20gdGhlIHRyYWNrZWQgcmVsZWFzZSksIHNvIGEgc3RhbGUgcHJlZml4IGNhbid0IHNpbGVudGx5IGhpZGUgZnV0dXJlCiAgZHJpZnQuCi0gYHp1dWw6IHJ1biBjaGVjay1rb2xsYS1pbnZlbnRvcnkgYXMgYSBnYXRpbmcgam9iYCDigJQgYGNoZWNrLWtvbGxhYCB0b3ggZW52ICsKICB2b3RpbmcgYGdlbmVyaWNzLXRveC1jaGVjay1rb2xsYWAgam9iIGluIHRoZSBgY2hlY2tgIGFuZCBgcGVyaW9kaWMtZGFpbHlgCiAgcGlwZWxpbmVzLgoKIyMg4pqg77iPIERlcGVuZHMgb24gdGhlIGlyb25pYy1kbnNtYXNxIGZpeAoKVGhpcyBicmFuY2ggaXMgYmFzZWQgb24gYG1haW5gLCB3aGljaCBkb2VzICoqbm90KiogeWV0IGNvbnRhaW4gdGhlCmBpcm9uaWMtZG5zbWFzcWAgaW52ZW50b3J5IGdyb3VwLiBUaGUgbmV3IGBnZW5lcmljcy10b3gtY2hlY2sta29sbGFgIGpvYiB3aWxsCnRoZXJlZm9yZSBmYWlsIG9uIGBpcm9uaWMtZG5zbWFzcWAgdW50aWwgdGhhdCBmaXggbWVyZ2VzIGFuZCB0aGlzIGJyYW5jaCBpcwpyZWJhc2VkLiBNZXJnZSBvcmRlcjogdGhlIGZpeCBmaXJzdCwgdGhlbiB0aGlzIFBSLgoKLSBvc2lzbS9nZW5lcmljcyM2MDEKCiMjIE1haW50ZW5hbmNlCgpgS09MTEFfQlJBTkNIYCBtdXN0IGJlIGJ1bXBlZCB3aGVuIE9TSVNNIG1vdmVzIHRvIGEgbmV3IE9wZW5TdGFjayBzZXJpZXM7CmRvY3VtZW50ZWQgYXMgYSBwcmVyZXF1aXNpdGUgaW4gdGhlIGRldmVsb3Blci1ndWlkZSByZWxlYXNlIGNoZWNrbGlzdAoob3Npc20uZ2l0aHViLmlvLCBgcmV3cml0ZS1yZWxlYXNlcy1ndWlkZWApLgoK8J+kliBHZW5lcmF0ZWQgd2l0aCBbQ2xhdWRlIENvZGVdKGh0dHBzOi8vY2xhdWRlLmNvbS9jbGF1ZGUtY29kZSkK
      patchset: 5c2b94d64e020da8868c565956a8e50200fb3f41
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 3d5c7b5973754999f7005857a00ce9168944f0f1
          trusted/project_1/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 038dd8b856c62af4433c8477c5cb3d0480847059
          trusted/project_2/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 0c74c57cedff2b36bb37ca68a5338d1c49991496
          untrusted/project_0/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 038dd8b856c62af4433c8477c5cb3d0480847059
          untrusted/project_1/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 3d5c7b5973754999f7005857a00ce9168944f0f1
          untrusted/project_2/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 0c74c57cedff2b36bb37ca68a5338d1c49991496
        playbooks:
        - path: untrusted/project_0/github.com/osism/openinfra-zuul-jobs/playbooks/tox/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: playbook branch
            link_name: ansible/playbook_0/role_1/openinfra-zuul-jobs
            link_target: untrusted/project_0/github.com/osism/openinfra-zuul-jobs
            role_path: ansible/playbook_0/role_1/openinfra-zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/playbook_0/role_2/zuul-jobs
            link_target: untrusted/project_2/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/generics
        name: osism/generics
        short_name: generics
        src_dir: src/github.com/osism/generics
      projects:
        github.com/osism/generics:
          canonical_hostname: github.com
          canonical_name: github.com/osism/generics
          checkout: main
          checkout_description: zuul branch
          commit: e9bb6688ae1adfdbcc01cfd9dfc4881b54d65c1f
          name: osism/generics
          required: false
          short_name: generics
          src_dir: src/github.com/osism/generics
      ref: refs/pull/602/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
