all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fe0a:ac05
      ansible_molecule_ansible_version: 11.12.0
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_role: netbox
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 7b7fb4e1-407a-40e8-913f-a353e8d43485
        host_id: 0d3d02185f810c959252bd1d303ec55040bf5bb0b401cceef814c3a7
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fe0a:ac05
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.7.111
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.193.109
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fe0a:ac05
        region: null
        slot: null
    ubuntu-noble:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fecd:2da4
      ansible_molecule_ansible_version: 11.12.0
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_role: netbox
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 845d0ae2-b612-4221-b163-cfe50592c58b
        host_id: 0d3d02185f810c959252bd1d303ec55040bf5bb0b401cceef814c3a7
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fecd:2da4
        label: ubuntu-noble
        node_properties: {}
        private_ipv4: 10.128.0.110
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.192.96
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fecd:2da4
        region: null
        slot: null
  vars:
    ansible_molecule_ansible_version: 11.12.0
    ansible_role: netbox
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-config/zuul.d/jobs.yaml@main#2>'
      - '<Job ansible-molecule explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-jobs/.zuul.yaml@main#12>'
      - '<Job abstract-ansible-collection-services-molecule explicit: None implied:
        {MatchAny:{ImpliedBranchMatcher:main}} source: osism/ansible-collection-services/.zuul.yaml@main#79>'
      - '<Job ansible-collection-services-molecule-netbox explicit: None implied:
        {MatchAny:{ImpliedBranchMatcher:main}} source: osism/ansible-collection-services/.zuul.yaml@main#279>'
      - '<Job ansible-collection-services-molecule-netbox explicit: None implied:
        None source: osism/ansible-collection-services/.zuul.yaml@main#499>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 0185276831134ff1bcbefe92fc4bbdc0
      build_refs:
      - branch: main
        change: '2090'
        change_message: "molecule: publish per-container logs on failure\n\n## What\n\nA
          Zuul `post-run` playbook (`playbooks/collect-container-logs.yml`), wired\ninto
          `abstract-ansible-collection-services-molecule`, that publishes\nper-container
          docker diagnostics on every molecule run into the build's log\ndirectory
          (per node):\n\n- `_overview.txt` \u2014 `docker ps --all` (name / state
          / status)\n- `<container>.txt` \u2014 `docker logs` (stdout+stderr)\n- `<container>.inspect.json`
          \u2014 `docker inspect .State` (health / restart / exit)\n\nBest-effort
          (`failed_when: false`); covers every docker-based role in the\nscenario.\n\n##
          Why\n\nThe molecule jobs published nothing about the running containers,
          so a\ncontainer that never became healthy could only be diagnosed by a local\nreproduction.
          This is the gap that left the chronic\n`molecule-netbox-worker-unhealthy`
          flake (~70% failure rate) unexplained\nfor months. With this instrumentation,
          the netbox flake was root-caused\nfrom a single CI failure \u2014 the fix
          is in #2091.\n\nA `post-run` is required rather than a `block`/`rescue`
          in the converge\nplaybook: the molecule health gates run as Ansible *handlers*,
          whose\nfailures happen at play-end (`flush_handlers`) outside any block/rescue,
          so\na rescue never fires. The post phase runs after molecule aborts, while
          the\ncontainers are still up (`destroy` is off by default).\n\n## Safety\n\nMolecule
          runs use dummy credentials, and `docker logs` captures container\nstdout/stderr
          (not the environment), so no real secrets are published.\n\n\U0001F916 Generated
          with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/ansible-collection-services/pull/2090
        commit_id: 134f8f036cb8c1959f30a1d71f9bc9276ad8ff02
        patchset: 134f8f036cb8c1959f30a1d71f9bc9276ad8ff02
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/ansible-collection-services
          name: osism/ansible-collection-services
          short_name: ansible-collection-services
        src_dir: src/github.com/osism/ansible-collection-services
        topic: null
      buildset: b0b39d3f58ee4d3486b975260cfd1335
      buildset_refs:
      - branch: main
        change: '2090'
        change_message: "molecule: publish per-container logs on failure\n\n## What\n\nA
          Zuul `post-run` playbook (`playbooks/collect-container-logs.yml`), wired\ninto
          `abstract-ansible-collection-services-molecule`, that publishes\nper-container
          docker diagnostics on every molecule run into the build's log\ndirectory
          (per node):\n\n- `_overview.txt` \u2014 `docker ps --all` (name / state
          / status)\n- `<container>.txt` \u2014 `docker logs` (stdout+stderr)\n- `<container>.inspect.json`
          \u2014 `docker inspect .State` (health / restart / exit)\n\nBest-effort
          (`failed_when: false`); covers every docker-based role in the\nscenario.\n\n##
          Why\n\nThe molecule jobs published nothing about the running containers,
          so a\ncontainer that never became healthy could only be diagnosed by a local\nreproduction.
          This is the gap that left the chronic\n`molecule-netbox-worker-unhealthy`
          flake (~70% failure rate) unexplained\nfor months. With this instrumentation,
          the netbox flake was root-caused\nfrom a single CI failure \u2014 the fix
          is in #2091.\n\nA `post-run` is required rather than a `block`/`rescue`
          in the converge\nplaybook: the molecule health gates run as Ansible *handlers*,
          whose\nfailures happen at play-end (`flush_handlers`) outside any block/rescue,
          so\na rescue never fires. The post phase runs after molecule aborts, while
          the\ncontainers are still up (`destroy` is off by default).\n\n## Safety\n\nMolecule
          runs use dummy credentials, and `docker logs` captures container\nstdout/stderr
          (not the environment), so no real secrets are published.\n\n\U0001F916 Generated
          with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/ansible-collection-services/pull/2090
        commit_id: 134f8f036cb8c1959f30a1d71f9bc9276ad8ff02
        patchset: 134f8f036cb8c1959f30a1d71f9bc9276ad8ff02
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/ansible-collection-services
          name: osism/ansible-collection-services
          short_name: ansible-collection-services
        src_dir: src/github.com/osism/ansible-collection-services
        topic: null
      change: '2090'
      change_message: "molecule: publish per-container logs on failure\n\n## What\n\nA
        Zuul `post-run` playbook (`playbooks/collect-container-logs.yml`), wired\ninto
        `abstract-ansible-collection-services-molecule`, that publishes\nper-container
        docker diagnostics on every molecule run into the build's log\ndirectory (per
        node):\n\n- `_overview.txt` \u2014 `docker ps --all` (name / state / status)\n-
        `<container>.txt` \u2014 `docker logs` (stdout+stderr)\n- `<container>.inspect.json`
        \u2014 `docker inspect .State` (health / restart / exit)\n\nBest-effort (`failed_when:
        false`); covers every docker-based role in the\nscenario.\n\n## Why\n\nThe
        molecule jobs published nothing about the running containers, so a\ncontainer
        that never became healthy could only be diagnosed by a local\nreproduction.
        This is the gap that left the chronic\n`molecule-netbox-worker-unhealthy`
        flake (~70% failure rate) unexplained\nfor months. With this instrumentation,
        the netbox flake was root-caused\nfrom a single CI failure \u2014 the fix
        is in #2091.\n\nA `post-run` is required rather than a `block`/`rescue` in
        the converge\nplaybook: the molecule health gates run as Ansible *handlers*,
        whose\nfailures happen at play-end (`flush_handlers`) outside any block/rescue,
        so\na rescue never fires. The post phase runs after molecule aborts, while
        the\ncontainers are still up (`destroy` is off by default).\n\n## Safety\n\nMolecule
        runs use dummy credentials, and `docker logs` captures container\nstdout/stderr
        (not the environment), so no real secrets are published.\n\n\U0001F916 Generated
        with [Claude Code](https://claude.com/claude-code)"
      change_url: https://github.com/osism/ansible-collection-services/pull/2090
      child_jobs: []
      commit_id: 134f8f036cb8c1959f30a1d71f9bc9276ad8ff02
      event_id: bedd0e30-6a1d-11f1-8c3b-8e0342590aa4
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/0185276831134ff1bcbefe92fc4bbdc0/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/0185276831134ff1bcbefe92fc4bbdc0/work/logs
        result_data_file: /var/lib/zuul/builds/0185276831134ff1bcbefe92fc4bbdc0/work/results.json
        src_root: /var/lib/zuul/builds/0185276831134ff1bcbefe92fc4bbdc0/work/src
        work_root: /var/lib/zuul/builds/0185276831134ff1bcbefe92fc4bbdc0/work
      include_vars: []
      items:
      - branch: main
        change: '2090'
        change_message: "molecule: publish per-container logs on failure\n\n## What\n\nA
          Zuul `post-run` playbook (`playbooks/collect-container-logs.yml`), wired\ninto
          `abstract-ansible-collection-services-molecule`, that publishes\nper-container
          docker diagnostics on every molecule run into the build's log\ndirectory
          (per node):\n\n- `_overview.txt` \u2014 `docker ps --all` (name / state
          / status)\n- `<container>.txt` \u2014 `docker logs` (stdout+stderr)\n- `<container>.inspect.json`
          \u2014 `docker inspect .State` (health / restart / exit)\n\nBest-effort
          (`failed_when: false`); covers every docker-based role in the\nscenario.\n\n##
          Why\n\nThe molecule jobs published nothing about the running containers,
          so a\ncontainer that never became healthy could only be diagnosed by a local\nreproduction.
          This is the gap that left the chronic\n`molecule-netbox-worker-unhealthy`
          flake (~70% failure rate) unexplained\nfor months. With this instrumentation,
          the netbox flake was root-caused\nfrom a single CI failure \u2014 the fix
          is in #2091.\n\nA `post-run` is required rather than a `block`/`rescue`
          in the converge\nplaybook: the molecule health gates run as Ansible *handlers*,
          whose\nfailures happen at play-end (`flush_handlers`) outside any block/rescue,
          so\na rescue never fires. The post phase runs after molecule aborts, while
          the\ncontainers are still up (`destroy` is off by default).\n\n## Safety\n\nMolecule
          runs use dummy credentials, and `docker logs` captures container\nstdout/stderr
          (not the environment), so no real secrets are published.\n\n\U0001F916 Generated
          with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/ansible-collection-services/pull/2090
        commit_id: 134f8f036cb8c1959f30a1d71f9bc9276ad8ff02
        patchset: 134f8f036cb8c1959f30a1d71f9bc9276ad8ff02
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/ansible-collection-services
          name: osism/ansible-collection-services
          short_name: ansible-collection-services
          src_dir: src/github.com/osism/ansible-collection-services
        topic: null
      job: ansible-collection-services-molecule-netbox
      jobtags: []
      max_attempts: 3
      message: bW9sZWN1bGU6IHB1Ymxpc2ggcGVyLWNvbnRhaW5lciBsb2dzIG9uIGZhaWx1cmUKCiMjIFdoYXQKCkEgWnV1bCBgcG9zdC1ydW5gIHBsYXlib29rIChgcGxheWJvb2tzL2NvbGxlY3QtY29udGFpbmVyLWxvZ3MueW1sYCksIHdpcmVkCmludG8gYGFic3RyYWN0LWFuc2libGUtY29sbGVjdGlvbi1zZXJ2aWNlcy1tb2xlY3VsZWAsIHRoYXQgcHVibGlzaGVzCnBlci1jb250YWluZXIgZG9ja2VyIGRpYWdub3N0aWNzIG9uIGV2ZXJ5IG1vbGVjdWxlIHJ1biBpbnRvIHRoZSBidWlsZCdzIGxvZwpkaXJlY3RvcnkgKHBlciBub2RlKToKCi0gYF9vdmVydmlldy50eHRgIOKAlCBgZG9ja2VyIHBzIC0tYWxsYCAobmFtZSAvIHN0YXRlIC8gc3RhdHVzKQotIGA8Y29udGFpbmVyPi50eHRgIOKAlCBgZG9ja2VyIGxvZ3NgIChzdGRvdXQrc3RkZXJyKQotIGA8Y29udGFpbmVyPi5pbnNwZWN0Lmpzb25gIOKAlCBgZG9ja2VyIGluc3BlY3QgLlN0YXRlYCAoaGVhbHRoIC8gcmVzdGFydCAvIGV4aXQpCgpCZXN0LWVmZm9ydCAoYGZhaWxlZF93aGVuOiBmYWxzZWApOyBjb3ZlcnMgZXZlcnkgZG9ja2VyLWJhc2VkIHJvbGUgaW4gdGhlCnNjZW5hcmlvLgoKIyMgV2h5CgpUaGUgbW9sZWN1bGUgam9icyBwdWJsaXNoZWQgbm90aGluZyBhYm91dCB0aGUgcnVubmluZyBjb250YWluZXJzLCBzbyBhCmNvbnRhaW5lciB0aGF0IG5ldmVyIGJlY2FtZSBoZWFsdGh5IGNvdWxkIG9ubHkgYmUgZGlhZ25vc2VkIGJ5IGEgbG9jYWwKcmVwcm9kdWN0aW9uLiBUaGlzIGlzIHRoZSBnYXAgdGhhdCBsZWZ0IHRoZSBjaHJvbmljCmBtb2xlY3VsZS1uZXRib3gtd29ya2VyLXVuaGVhbHRoeWAgZmxha2UgKH43MCUgZmFpbHVyZSByYXRlKSB1bmV4cGxhaW5lZApmb3IgbW9udGhzLiBXaXRoIHRoaXMgaW5zdHJ1bWVudGF0aW9uLCB0aGUgbmV0Ym94IGZsYWtlIHdhcyByb290LWNhdXNlZApmcm9tIGEgc2luZ2xlIENJIGZhaWx1cmUg4oCUIHRoZSBmaXggaXMgaW4gIzIwOTEuCgpBIGBwb3N0LXJ1bmAgaXMgcmVxdWlyZWQgcmF0aGVyIHRoYW4gYSBgYmxvY2tgL2ByZXNjdWVgIGluIHRoZSBjb252ZXJnZQpwbGF5Ym9vazogdGhlIG1vbGVjdWxlIGhlYWx0aCBnYXRlcyBydW4gYXMgQW5zaWJsZSAqaGFuZGxlcnMqLCB3aG9zZQpmYWlsdXJlcyBoYXBwZW4gYXQgcGxheS1lbmQgKGBmbHVzaF9oYW5kbGVyc2ApIG91dHNpZGUgYW55IGJsb2NrL3Jlc2N1ZSwgc28KYSByZXNjdWUgbmV2ZXIgZmlyZXMuIFRoZSBwb3N0IHBoYXNlIHJ1bnMgYWZ0ZXIgbW9sZWN1bGUgYWJvcnRzLCB3aGlsZSB0aGUKY29udGFpbmVycyBhcmUgc3RpbGwgdXAgKGBkZXN0cm95YCBpcyBvZmYgYnkgZGVmYXVsdCkuCgojIyBTYWZldHkKCk1vbGVjdWxlIHJ1bnMgdXNlIGR1bW15IGNyZWRlbnRpYWxzLCBhbmQgYGRvY2tlciBsb2dzYCBjYXB0dXJlcyBjb250YWluZXIKc3Rkb3V0L3N0ZGVyciAobm90IHRoZSBlbnZpcm9ubWVudCksIHNvIG5vIHJlYWwgc2VjcmV0cyBhcmUgcHVibGlzaGVkLgoK8J+kliBHZW5lcmF0ZWQgd2l0aCBbQ2xhdWRlIENvZGVdKGh0dHBzOi8vY2xhdWRlLmNvbS9jbGF1ZGUtY29kZSk=
      patchset: 134f8f036cb8c1959f30a1d71f9bc9276ad8ff02
      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/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 0c74c57cedff2b36bb37ca68a5338d1c49991496
          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/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 038dd8b856c62af4433c8477c5cb3d0480847059
          untrusted/project_3/github.com/osism/ansible-collection-services:
            canonical_name: github.com/osism/ansible-collection-services
            checkout: main
            commit: 6404746d32f775eb973b8fde8d726449f9082a98
        playbooks:
        - path: untrusted/project_0/github.com/osism/zuul-jobs/playbooks/ansible-molecule/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/ansible-collection-services
        name: osism/ansible-collection-services
        short_name: ansible-collection-services
        src_dir: src/github.com/osism/ansible-collection-services
      projects:
        github.com/osism/ansible-collection-services:
          canonical_hostname: github.com
          canonical_name: github.com/osism/ansible-collection-services
          checkout: main
          checkout_description: zuul branch
          commit: 6404746d32f775eb973b8fde8d726449f9082a98
          name: osism/ansible-collection-services
          required: false
          short_name: ansible-collection-services
          src_dir: src/github.com/osism/ansible-collection-services
      ref: refs/pull/2090/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
