all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fe47:f478
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 24536037-2a46-4310-b7d2-097a80fbb978
        host_id: 7f2607eceb24f4583c6f9496c53c64b51afe50de5eacda4379b21c42
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fe47:f478
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.7.213
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.192.219
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fe47:f478
        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 python-osism-test-setup explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/python-osism/.zuul.yaml@main#128>'
      - '<Job python-osism-test-setup explicit: None implied: None source: osism/python-osism/.zuul.yaml@main#143>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 7198ef27f5014e3981f0880a74a25fd2
      build_refs:
      - branch: main
        change: '2575'
        change_message: "rabbitmq: keep dots in interface fact keys\n\n`get_rabbitmq_node_addresses()`
          derived the Ansible fact name for an interface by replacing both `-` and
          `.` with `_`:\n\n```python\nnormalized_interface = internal_interface.replace(\".\",
          \"_\").replace(\"-\", \"_\")\n```\n\nAnsible only replaces `-`. `PrefixFactNamespace._underscore()`
          is `name.replace('-', '_')`, and the setup module prefixes the result with
          `ansible_`, so an interface named `br-ex` is `ansible_br_ex` \u2014 but
          one named `bond0.100` is `ansible_bond0.100`, with the dot intact.\n\nDotted
          names are the conventional way to name a VLAN interface, so for any deployment
          using `bond0.<vlan>` the lookup asked for `ansible_bond0_100`, found nothing,
          and reported:\n\n```\nInterface bond0.100 (ansible_bond0_100) not found
          in ansible facts\n```\n\nThis is independent of the Jinja2 handling further
          up the function: it happens even when `internal_interface` is a plain literal
          with no template in it.\n\nThe unit test asserted the old mapping (`\"eth0.100\"`
          \u2192 `\"ansible_eth0_100\"`), so it pinned the bug in place; it now asserts
          the mapping Ansible actually uses.\n\n**Verification.** Against live fact
          gathering on ansible-core 2.18.9 and 2.19.11: a real interface named `br-e4aefb861457`
          is cached as `ansible_br_e4aefb861457`, and `PrefixFactNamespace` leaves
          `eth0.100` as `ansible_eth0.100`. Reverting the code change makes the updated
          test fail with the message above.\n\nFound while investigating:\n\n- osism/issues#1425\n\n\U0001F916
          Generated with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/python-osism/pull/2575
        commit_id: 74ca2a676923e330388cce104da6881841fcdaaf
        patchset: 74ca2a676923e330388cce104da6881841fcdaaf
        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: 9ae4ae7910384a76b86ed82ae1788419
      buildset_refs:
      - branch: main
        change: '2575'
        change_message: "rabbitmq: keep dots in interface fact keys\n\n`get_rabbitmq_node_addresses()`
          derived the Ansible fact name for an interface by replacing both `-` and
          `.` with `_`:\n\n```python\nnormalized_interface = internal_interface.replace(\".\",
          \"_\").replace(\"-\", \"_\")\n```\n\nAnsible only replaces `-`. `PrefixFactNamespace._underscore()`
          is `name.replace('-', '_')`, and the setup module prefixes the result with
          `ansible_`, so an interface named `br-ex` is `ansible_br_ex` \u2014 but
          one named `bond0.100` is `ansible_bond0.100`, with the dot intact.\n\nDotted
          names are the conventional way to name a VLAN interface, so for any deployment
          using `bond0.<vlan>` the lookup asked for `ansible_bond0_100`, found nothing,
          and reported:\n\n```\nInterface bond0.100 (ansible_bond0_100) not found
          in ansible facts\n```\n\nThis is independent of the Jinja2 handling further
          up the function: it happens even when `internal_interface` is a plain literal
          with no template in it.\n\nThe unit test asserted the old mapping (`\"eth0.100\"`
          \u2192 `\"ansible_eth0_100\"`), so it pinned the bug in place; it now asserts
          the mapping Ansible actually uses.\n\n**Verification.** Against live fact
          gathering on ansible-core 2.18.9 and 2.19.11: a real interface named `br-e4aefb861457`
          is cached as `ansible_br_e4aefb861457`, and `PrefixFactNamespace` leaves
          `eth0.100` as `ansible_eth0.100`. Reverting the code change makes the updated
          test fail with the message above.\n\nFound while investigating:\n\n- osism/issues#1425\n\n\U0001F916
          Generated with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/python-osism/pull/2575
        commit_id: 74ca2a676923e330388cce104da6881841fcdaaf
        patchset: 74ca2a676923e330388cce104da6881841fcdaaf
        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: '2575'
      change_message: "rabbitmq: keep dots in interface fact keys\n\n`get_rabbitmq_node_addresses()`
        derived the Ansible fact name for an interface by replacing both `-` and `.`
        with `_`:\n\n```python\nnormalized_interface = internal_interface.replace(\".\",
        \"_\").replace(\"-\", \"_\")\n```\n\nAnsible only replaces `-`. `PrefixFactNamespace._underscore()`
        is `name.replace('-', '_')`, and the setup module prefixes the result with
        `ansible_`, so an interface named `br-ex` is `ansible_br_ex` \u2014 but one
        named `bond0.100` is `ansible_bond0.100`, with the dot intact.\n\nDotted names
        are the conventional way to name a VLAN interface, so for any deployment using
        `bond0.<vlan>` the lookup asked for `ansible_bond0_100`, found nothing, and
        reported:\n\n```\nInterface bond0.100 (ansible_bond0_100) not found in ansible
        facts\n```\n\nThis is independent of the Jinja2 handling further up the function:
        it happens even when `internal_interface` is a plain literal with no template
        in it.\n\nThe unit test asserted the old mapping (`\"eth0.100\"` \u2192 `\"ansible_eth0_100\"`),
        so it pinned the bug in place; it now asserts the mapping Ansible actually
        uses.\n\n**Verification.** Against live fact gathering on ansible-core 2.18.9
        and 2.19.11: a real interface named `br-e4aefb861457` is cached as `ansible_br_e4aefb861457`,
        and `PrefixFactNamespace` leaves `eth0.100` as `ansible_eth0.100`. Reverting
        the code change makes the updated test fail with the message above.\n\nFound
        while investigating:\n\n- osism/issues#1425\n\n\U0001F916 Generated with [Claude
        Code](https://claude.com/claude-code)"
      change_url: https://github.com/osism/python-osism/pull/2575
      child_jobs: []
      commit_id: 74ca2a676923e330388cce104da6881841fcdaaf
      event_id: d59a0560-9178-11f1-979b-0d202245f6a0
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/7198ef27f5014e3981f0880a74a25fd2/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/7198ef27f5014e3981f0880a74a25fd2/work/logs
        result_data_file: /var/lib/zuul/builds/7198ef27f5014e3981f0880a74a25fd2/work/results.json
        src_root: /var/lib/zuul/builds/7198ef27f5014e3981f0880a74a25fd2/work/src
        work_root: /var/lib/zuul/builds/7198ef27f5014e3981f0880a74a25fd2/work
      include_vars: []
      items:
      - branch: main
        change: '2575'
        change_message: "rabbitmq: keep dots in interface fact keys\n\n`get_rabbitmq_node_addresses()`
          derived the Ansible fact name for an interface by replacing both `-` and
          `.` with `_`:\n\n```python\nnormalized_interface = internal_interface.replace(\".\",
          \"_\").replace(\"-\", \"_\")\n```\n\nAnsible only replaces `-`. `PrefixFactNamespace._underscore()`
          is `name.replace('-', '_')`, and the setup module prefixes the result with
          `ansible_`, so an interface named `br-ex` is `ansible_br_ex` \u2014 but
          one named `bond0.100` is `ansible_bond0.100`, with the dot intact.\n\nDotted
          names are the conventional way to name a VLAN interface, so for any deployment
          using `bond0.<vlan>` the lookup asked for `ansible_bond0_100`, found nothing,
          and reported:\n\n```\nInterface bond0.100 (ansible_bond0_100) not found
          in ansible facts\n```\n\nThis is independent of the Jinja2 handling further
          up the function: it happens even when `internal_interface` is a plain literal
          with no template in it.\n\nThe unit test asserted the old mapping (`\"eth0.100\"`
          \u2192 `\"ansible_eth0_100\"`), so it pinned the bug in place; it now asserts
          the mapping Ansible actually uses.\n\n**Verification.** Against live fact
          gathering on ansible-core 2.18.9 and 2.19.11: a real interface named `br-e4aefb861457`
          is cached as `ansible_br_e4aefb861457`, and `PrefixFactNamespace` leaves
          `eth0.100` as `ansible_eth0.100`. Reverting the code change makes the updated
          test fail with the message above.\n\nFound while investigating:\n\n- osism/issues#1425\n\n\U0001F916
          Generated with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/python-osism/pull/2575
        commit_id: 74ca2a676923e330388cce104da6881841fcdaaf
        patchset: 74ca2a676923e330388cce104da6881841fcdaaf
        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: python-osism-test-setup
      jobtags: []
      max_attempts: 3
      message: cmFiYml0bXE6IGtlZXAgZG90cyBpbiBpbnRlcmZhY2UgZmFjdCBrZXlzCgpgZ2V0X3JhYmJpdG1xX25vZGVfYWRkcmVzc2VzKClgIGRlcml2ZWQgdGhlIEFuc2libGUgZmFjdCBuYW1lIGZvciBhbiBpbnRlcmZhY2UgYnkgcmVwbGFjaW5nIGJvdGggYC1gIGFuZCBgLmAgd2l0aCBgX2A6CgpgYGBweXRob24Kbm9ybWFsaXplZF9pbnRlcmZhY2UgPSBpbnRlcm5hbF9pbnRlcmZhY2UucmVwbGFjZSgiLiIsICJfIikucmVwbGFjZSgiLSIsICJfIikKYGBgCgpBbnNpYmxlIG9ubHkgcmVwbGFjZXMgYC1gLiBgUHJlZml4RmFjdE5hbWVzcGFjZS5fdW5kZXJzY29yZSgpYCBpcyBgbmFtZS5yZXBsYWNlKCctJywgJ18nKWAsIGFuZCB0aGUgc2V0dXAgbW9kdWxlIHByZWZpeGVzIHRoZSByZXN1bHQgd2l0aCBgYW5zaWJsZV9gLCBzbyBhbiBpbnRlcmZhY2UgbmFtZWQgYGJyLWV4YCBpcyBgYW5zaWJsZV9icl9leGAg4oCUIGJ1dCBvbmUgbmFtZWQgYGJvbmQwLjEwMGAgaXMgYGFuc2libGVfYm9uZDAuMTAwYCwgd2l0aCB0aGUgZG90IGludGFjdC4KCkRvdHRlZCBuYW1lcyBhcmUgdGhlIGNvbnZlbnRpb25hbCB3YXkgdG8gbmFtZSBhIFZMQU4gaW50ZXJmYWNlLCBzbyBmb3IgYW55IGRlcGxveW1lbnQgdXNpbmcgYGJvbmQwLjx2bGFuPmAgdGhlIGxvb2t1cCBhc2tlZCBmb3IgYGFuc2libGVfYm9uZDBfMTAwYCwgZm91bmQgbm90aGluZywgYW5kIHJlcG9ydGVkOgoKYGBgCkludGVyZmFjZSBib25kMC4xMDAgKGFuc2libGVfYm9uZDBfMTAwKSBub3QgZm91bmQgaW4gYW5zaWJsZSBmYWN0cwpgYGAKClRoaXMgaXMgaW5kZXBlbmRlbnQgb2YgdGhlIEppbmphMiBoYW5kbGluZyBmdXJ0aGVyIHVwIHRoZSBmdW5jdGlvbjogaXQgaGFwcGVucyBldmVuIHdoZW4gYGludGVybmFsX2ludGVyZmFjZWAgaXMgYSBwbGFpbiBsaXRlcmFsIHdpdGggbm8gdGVtcGxhdGUgaW4gaXQuCgpUaGUgdW5pdCB0ZXN0IGFzc2VydGVkIHRoZSBvbGQgbWFwcGluZyAoYCJldGgwLjEwMCJgIOKGkiBgImFuc2libGVfZXRoMF8xMDAiYCksIHNvIGl0IHBpbm5lZCB0aGUgYnVnIGluIHBsYWNlOyBpdCBub3cgYXNzZXJ0cyB0aGUgbWFwcGluZyBBbnNpYmxlIGFjdHVhbGx5IHVzZXMuCgoqKlZlcmlmaWNhdGlvbi4qKiBBZ2FpbnN0IGxpdmUgZmFjdCBnYXRoZXJpbmcgb24gYW5zaWJsZS1jb3JlIDIuMTguOSBhbmQgMi4xOS4xMTogYSByZWFsIGludGVyZmFjZSBuYW1lZCBgYnItZTRhZWZiODYxNDU3YCBpcyBjYWNoZWQgYXMgYGFuc2libGVfYnJfZTRhZWZiODYxNDU3YCwgYW5kIGBQcmVmaXhGYWN0TmFtZXNwYWNlYCBsZWF2ZXMgYGV0aDAuMTAwYCBhcyBgYW5zaWJsZV9ldGgwLjEwMGAuIFJldmVydGluZyB0aGUgY29kZSBjaGFuZ2UgbWFrZXMgdGhlIHVwZGF0ZWQgdGVzdCBmYWlsIHdpdGggdGhlIG1lc3NhZ2UgYWJvdmUuCgpGb3VuZCB3aGlsZSBpbnZlc3RpZ2F0aW5nOgoKLSBvc2lzbS9pc3N1ZXMjMTQyNQoK8J+kliBHZW5lcmF0ZWQgd2l0aCBbQ2xhdWRlIENvZGVdKGh0dHBzOi8vY2xhdWRlLmNvbS9jbGF1ZGUtY29kZSk=
      patchset: 74ca2a676923e330388cce104da6881841fcdaaf
      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: dcb06ea8a3ad422cc9d98b376216617b2daa6a02
          untrusted/project_0/github.com/osism/python-osism:
            canonical_name: github.com/osism/python-osism
            checkout: main
            commit: 64df3a5baf0cefdc6a5dba89b7e975011c90d79c
          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
          untrusted/project_3/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: dcb06ea8a3ad422cc9d98b376216617b2daa6a02
        playbooks:
        - path: untrusted/project_0/github.com/osism/python-osism/playbooks/test-setup.yml
          roles:
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/playbook_0/role_1/zuul-config
            link_target: untrusted/project_1/github.com/osism/zuul-config
            role_path: ansible/playbook_0/role_1/zuul-config/roles
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/playbook_0/role_2/openinfra-zuul-jobs
            link_target: untrusted/project_2/github.com/osism/openinfra-zuul-jobs
            role_path: ansible/playbook_0/role_2/openinfra-zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/playbook_0/role_3/zuul-jobs
            link_target: untrusted/project_3/github.com/osism/zuul-jobs
            role_path: ansible/playbook_0/role_3/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: 64df3a5baf0cefdc6a5dba89b7e975011c90d79c
          name: osism/python-osism
          required: false
          short_name: python-osism
          src_dir: src/github.com/osism/python-osism
      ref: refs/pull/2575/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
