all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fe80:6050
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 42f34f22-7fc9-42a9-9522-228d31afcb95
        host_id: 7f2607eceb24f4583c6f9496c53c64b51afe50de5eacda4379b21c42
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fe80:6050
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.0.103
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.193.94
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fe80:6050
        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 hadolint explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-jobs/.zuul.yaml@main#37>'
      - '<Job hadolint explicit: None implied: None source: osism/python-osism/.zuul.yaml@main#143>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: d85466874e984893ba9e2fe3ba3b7002
      build_refs:
      - branch: main
        change: '2576'
        change_message: "tests: narrow the secrets-file existence mock\n\nThe `setup_password`
          fixture patched the existence check with a flat `return_value`:\n\n```python\nmocker.patch(\"osism.utils.rabbitmq.os.path.exists\",
          return_value=exists)\n```\n\nThat target reads as module-scoped but resolves
          to the attribute on the shared `os.path` module, so for the duration of
          the patch `os.path.exists` answers the same way for **every** caller in
          the process.\n\n`load_rabbitmq_password()` then calls `osism.tasks.conductor.utils.load_yaml_file`,
          whose import pulls in ansible. Ansible's config manager reads `ansible/config/base.yml`
          and checks `os.path.exists` first, gets the mocked answer, and raises:\n\n```\nAnsibleError:
          Missing base YAML definition file (bad install?):\n  .../site-packages/ansible/config/base.yml\n```\n\nSo
          `test_password_file_missing_returns_none` fails \u2014 with a message pointing
          at ansible's installation rather than at the mock \u2014 whenever ansible-core
          happens to be importable. It passes today only because the unit-test environment
          has no ansible-core, which leaves the suite quietly dependent on that staying
          true.\n\nThis answers for the path under test and defers everything else
          to the real function. The test keeps asserting what it asserted; it just
          stops answering questions it was not asked.\n\n**Verification.** Two virtualenvs
          differing only in whether ansible-core is installed: before, the test fails
          in the one that has it; after, the module passes in both.\n\nNot required
          by any other change here, but it removes a tripwire under the next PR in
          the stack, which installs ansible for the integration job.\n\n\U0001F916
          Generated with [Claude Code](https://claude.com/claude-code)\n"
        change_url: https://github.com/osism/python-osism/pull/2576
        commit_id: 6c17da201d6192f1fc5e44665db80b8cf888a390
        patchset: 6c17da201d6192f1fc5e44665db80b8cf888a390
        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: e5fef1325a934ef18354375912c424e1
      buildset_refs:
      - branch: main
        change: '2576'
        change_message: "tests: narrow the secrets-file existence mock\n\nThe `setup_password`
          fixture patched the existence check with a flat `return_value`:\n\n```python\nmocker.patch(\"osism.utils.rabbitmq.os.path.exists\",
          return_value=exists)\n```\n\nThat target reads as module-scoped but resolves
          to the attribute on the shared `os.path` module, so for the duration of
          the patch `os.path.exists` answers the same way for **every** caller in
          the process.\n\n`load_rabbitmq_password()` then calls `osism.tasks.conductor.utils.load_yaml_file`,
          whose import pulls in ansible. Ansible's config manager reads `ansible/config/base.yml`
          and checks `os.path.exists` first, gets the mocked answer, and raises:\n\n```\nAnsibleError:
          Missing base YAML definition file (bad install?):\n  .../site-packages/ansible/config/base.yml\n```\n\nSo
          `test_password_file_missing_returns_none` fails \u2014 with a message pointing
          at ansible's installation rather than at the mock \u2014 whenever ansible-core
          happens to be importable. It passes today only because the unit-test environment
          has no ansible-core, which leaves the suite quietly dependent on that staying
          true.\n\nThis answers for the path under test and defers everything else
          to the real function. The test keeps asserting what it asserted; it just
          stops answering questions it was not asked.\n\n**Verification.** Two virtualenvs
          differing only in whether ansible-core is installed: before, the test fails
          in the one that has it; after, the module passes in both.\n\nNot required
          by any other change here, but it removes a tripwire under the next PR in
          the stack, which installs ansible for the integration job.\n\n\U0001F916
          Generated with [Claude Code](https://claude.com/claude-code)\n"
        change_url: https://github.com/osism/python-osism/pull/2576
        commit_id: 6c17da201d6192f1fc5e44665db80b8cf888a390
        patchset: 6c17da201d6192f1fc5e44665db80b8cf888a390
        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: '2576'
      change_message: "tests: narrow the secrets-file existence mock\n\nThe `setup_password`
        fixture patched the existence check with a flat `return_value`:\n\n```python\nmocker.patch(\"osism.utils.rabbitmq.os.path.exists\",
        return_value=exists)\n```\n\nThat target reads as module-scoped but resolves
        to the attribute on the shared `os.path` module, so for the duration of the
        patch `os.path.exists` answers the same way for **every** caller in the process.\n\n`load_rabbitmq_password()`
        then calls `osism.tasks.conductor.utils.load_yaml_file`, whose import pulls
        in ansible. Ansible's config manager reads `ansible/config/base.yml` and checks
        `os.path.exists` first, gets the mocked answer, and raises:\n\n```\nAnsibleError:
        Missing base YAML definition file (bad install?):\n  .../site-packages/ansible/config/base.yml\n```\n\nSo
        `test_password_file_missing_returns_none` fails \u2014 with a message pointing
        at ansible's installation rather than at the mock \u2014 whenever ansible-core
        happens to be importable. It passes today only because the unit-test environment
        has no ansible-core, which leaves the suite quietly dependent on that staying
        true.\n\nThis answers for the path under test and defers everything else to
        the real function. The test keeps asserting what it asserted; it just stops
        answering questions it was not asked.\n\n**Verification.** Two virtualenvs
        differing only in whether ansible-core is installed: before, the test fails
        in the one that has it; after, the module passes in both.\n\nNot required
        by any other change here, but it removes a tripwire under the next PR in the
        stack, which installs ansible for the integration job.\n\n\U0001F916 Generated
        with [Claude Code](https://claude.com/claude-code)\n"
      change_url: https://github.com/osism/python-osism/pull/2576
      child_jobs: []
      commit_id: 6c17da201d6192f1fc5e44665db80b8cf888a390
      event_id: 289fc2c0-9225-11f1-997d-a83041df5396
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/d85466874e984893ba9e2fe3ba3b7002/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/d85466874e984893ba9e2fe3ba3b7002/work/logs
        result_data_file: /var/lib/zuul/builds/d85466874e984893ba9e2fe3ba3b7002/work/results.json
        src_root: /var/lib/zuul/builds/d85466874e984893ba9e2fe3ba3b7002/work/src
        work_root: /var/lib/zuul/builds/d85466874e984893ba9e2fe3ba3b7002/work
      include_vars: []
      items:
      - branch: main
        change: '2576'
        change_message: "tests: narrow the secrets-file existence mock\n\nThe `setup_password`
          fixture patched the existence check with a flat `return_value`:\n\n```python\nmocker.patch(\"osism.utils.rabbitmq.os.path.exists\",
          return_value=exists)\n```\n\nThat target reads as module-scoped but resolves
          to the attribute on the shared `os.path` module, so for the duration of
          the patch `os.path.exists` answers the same way for **every** caller in
          the process.\n\n`load_rabbitmq_password()` then calls `osism.tasks.conductor.utils.load_yaml_file`,
          whose import pulls in ansible. Ansible's config manager reads `ansible/config/base.yml`
          and checks `os.path.exists` first, gets the mocked answer, and raises:\n\n```\nAnsibleError:
          Missing base YAML definition file (bad install?):\n  .../site-packages/ansible/config/base.yml\n```\n\nSo
          `test_password_file_missing_returns_none` fails \u2014 with a message pointing
          at ansible's installation rather than at the mock \u2014 whenever ansible-core
          happens to be importable. It passes today only because the unit-test environment
          has no ansible-core, which leaves the suite quietly dependent on that staying
          true.\n\nThis answers for the path under test and defers everything else
          to the real function. The test keeps asserting what it asserted; it just
          stops answering questions it was not asked.\n\n**Verification.** Two virtualenvs
          differing only in whether ansible-core is installed: before, the test fails
          in the one that has it; after, the module passes in both.\n\nNot required
          by any other change here, but it removes a tripwire under the next PR in
          the stack, which installs ansible for the integration job.\n\n\U0001F916
          Generated with [Claude Code](https://claude.com/claude-code)\n"
        change_url: https://github.com/osism/python-osism/pull/2576
        commit_id: 6c17da201d6192f1fc5e44665db80b8cf888a390
        patchset: 6c17da201d6192f1fc5e44665db80b8cf888a390
        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: hadolint
      jobtags: []
      max_attempts: 3
      message: dGVzdHM6IG5hcnJvdyB0aGUgc2VjcmV0cy1maWxlIGV4aXN0ZW5jZSBtb2NrCgpUaGUgYHNldHVwX3Bhc3N3b3JkYCBmaXh0dXJlIHBhdGNoZWQgdGhlIGV4aXN0ZW5jZSBjaGVjayB3aXRoIGEgZmxhdCBgcmV0dXJuX3ZhbHVlYDoKCmBgYHB5dGhvbgptb2NrZXIucGF0Y2goIm9zaXNtLnV0aWxzLnJhYmJpdG1xLm9zLnBhdGguZXhpc3RzIiwgcmV0dXJuX3ZhbHVlPWV4aXN0cykKYGBgCgpUaGF0IHRhcmdldCByZWFkcyBhcyBtb2R1bGUtc2NvcGVkIGJ1dCByZXNvbHZlcyB0byB0aGUgYXR0cmlidXRlIG9uIHRoZSBzaGFyZWQgYG9zLnBhdGhgIG1vZHVsZSwgc28gZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgcGF0Y2ggYG9zLnBhdGguZXhpc3RzYCBhbnN3ZXJzIHRoZSBzYW1lIHdheSBmb3IgKipldmVyeSoqIGNhbGxlciBpbiB0aGUgcHJvY2Vzcy4KCmBsb2FkX3JhYmJpdG1xX3Bhc3N3b3JkKClgIHRoZW4gY2FsbHMgYG9zaXNtLnRhc2tzLmNvbmR1Y3Rvci51dGlscy5sb2FkX3lhbWxfZmlsZWAsIHdob3NlIGltcG9ydCBwdWxscyBpbiBhbnNpYmxlLiBBbnNpYmxlJ3MgY29uZmlnIG1hbmFnZXIgcmVhZHMgYGFuc2libGUvY29uZmlnL2Jhc2UueW1sYCBhbmQgY2hlY2tzIGBvcy5wYXRoLmV4aXN0c2AgZmlyc3QsIGdldHMgdGhlIG1vY2tlZCBhbnN3ZXIsIGFuZCByYWlzZXM6CgpgYGAKQW5zaWJsZUVycm9yOiBNaXNzaW5nIGJhc2UgWUFNTCBkZWZpbml0aW9uIGZpbGUgKGJhZCBpbnN0YWxsPyk6CiAgLi4uL3NpdGUtcGFja2FnZXMvYW5zaWJsZS9jb25maWcvYmFzZS55bWwKYGBgCgpTbyBgdGVzdF9wYXNzd29yZF9maWxlX21pc3NpbmdfcmV0dXJuc19ub25lYCBmYWlscyDigJQgd2l0aCBhIG1lc3NhZ2UgcG9pbnRpbmcgYXQgYW5zaWJsZSdzIGluc3RhbGxhdGlvbiByYXRoZXIgdGhhbiBhdCB0aGUgbW9jayDigJQgd2hlbmV2ZXIgYW5zaWJsZS1jb3JlIGhhcHBlbnMgdG8gYmUgaW1wb3J0YWJsZS4gSXQgcGFzc2VzIHRvZGF5IG9ubHkgYmVjYXVzZSB0aGUgdW5pdC10ZXN0IGVudmlyb25tZW50IGhhcyBubyBhbnNpYmxlLWNvcmUsIHdoaWNoIGxlYXZlcyB0aGUgc3VpdGUgcXVpZXRseSBkZXBlbmRlbnQgb24gdGhhdCBzdGF5aW5nIHRydWUuCgpUaGlzIGFuc3dlcnMgZm9yIHRoZSBwYXRoIHVuZGVyIHRlc3QgYW5kIGRlZmVycyBldmVyeXRoaW5nIGVsc2UgdG8gdGhlIHJlYWwgZnVuY3Rpb24uIFRoZSB0ZXN0IGtlZXBzIGFzc2VydGluZyB3aGF0IGl0IGFzc2VydGVkOyBpdCBqdXN0IHN0b3BzIGFuc3dlcmluZyBxdWVzdGlvbnMgaXQgd2FzIG5vdCBhc2tlZC4KCioqVmVyaWZpY2F0aW9uLioqIFR3byB2aXJ0dWFsZW52cyBkaWZmZXJpbmcgb25seSBpbiB3aGV0aGVyIGFuc2libGUtY29yZSBpcyBpbnN0YWxsZWQ6IGJlZm9yZSwgdGhlIHRlc3QgZmFpbHMgaW4gdGhlIG9uZSB0aGF0IGhhcyBpdDsgYWZ0ZXIsIHRoZSBtb2R1bGUgcGFzc2VzIGluIGJvdGguCgpOb3QgcmVxdWlyZWQgYnkgYW55IG90aGVyIGNoYW5nZSBoZXJlLCBidXQgaXQgcmVtb3ZlcyBhIHRyaXB3aXJlIHVuZGVyIHRoZSBuZXh0IFBSIGluIHRoZSBzdGFjaywgd2hpY2ggaW5zdGFsbHMgYW5zaWJsZSBmb3IgdGhlIGludGVncmF0aW9uIGpvYi4KCvCfpJYgR2VuZXJhdGVkIHdpdGggW0NsYXVkZSBDb2RlXShodHRwczovL2NsYXVkZS5jb20vY2xhdWRlLWNvZGUpCg==
      patchset: 6c17da201d6192f1fc5e44665db80b8cf888a390
      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: b7c70f39598a39998dbbc6f833779355630f3a39
          untrusted/project_0/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: b7c70f39598a39998dbbc6f833779355630f3a39
          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/hadolint/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: 17946a86c547f71e28e4235bd943246ca395a6a1
          name: osism/python-osism
          required: false
          short_name: python-osism
          src_dir: src/github.com/osism/python-osism
      ref: refs/pull/2576/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
