all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fe75:6647
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: b3a1167e-7c14-4229-a4d8-5d8bdd8d4eca
        host_id: 7f2607eceb24f4583c6f9496c53c64b51afe50de5eacda4379b21c42
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fe75:6647
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.7.209
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.192.93
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fe75:6647
        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 check-shell-syntax explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-jobs/.zuul.yaml@main#17>'
      - '<Job check-shell-syntax explicit: None implied: None source: osism/generics/.zuul.yaml@main#44>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: c856a78d338e4a90babf3aceb37e7f6e
      build_refs:
      - branch: main
        change: '608'
        change_message: "run.sh: fail fast when venv package install fails\n\n## Problem\n\nThe
          manager bootstrap `run.sh` venv seed path installed uv and the\nPython/ansible
          environment without checking exit codes:\n\n```sh\npip3 install uv\nuv pip
          install -r requirements.txt\nuv pip install \"ansible==$ANSIBLE_VERSION\"\n```\n\nUnlike
          the surrounding lines (`ansible-galaxy`, `osism.manager.*`), which use `||
          exit $?`, these three swallowed any failure. When uv could not install \u2014
          e.g. it failed to initialize its cache (`Failed to initialize cache at ~/.cache/uv:
          Permission denied`) \u2014 `run.sh` proceeded with a **half-built environment**:
          `requirements.txt` (which pulls in ansible plus collection dependencies
          such as `ansible.posix`) never installed, `ansible-galaxy` still installed
          the `osism.*` collections, and the `operator` playbook aborted much later
          with a misleading `couldn't resolve module/action 'ansible.posix.authorized_key'
          \u2014 No module named ansible_collections.ansible.posix`, tens of lines
          removed from the real cause.\n\nObserved live in an autodrive/tbng deploy
          on regiocloud.\n\n## Fix\n\nGuard all three install lines with `|| exit
          $?` so a uv/pip failure aborts `run.sh` immediately with uv's own error
          message instead of producing a broken venv and a confusing downstream failure.\n\nA
          targeted `|| exit $?` was chosen over `set -euo pipefail` deliberately:
          these exits occur *before* the `trap cleanup ERR EXIT` is registered (further
          down the script), so the fix cannot trigger `cleanup`'s `rm -rf \"$VENV_PATH\"`
          on the failure path.\n\n## Impact on downstream copies\n\nThis file is also
          vendored by `cloud-in-a-box`, `metalbox`, the `generics-drift-*` repos,
          and tbng, which pick up the fix on their next sync.\n\n\U0001F916 Generated
          with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/generics/pull/608
        commit_id: 349b28a842f1c3f544d3a40cabdab48074e6a340
        patchset: 349b28a842f1c3f544d3a40cabdab48074e6a340
        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: 60454d147fa5402b85289d3ef5086662
      buildset_refs:
      - branch: main
        change: '608'
        change_message: "run.sh: fail fast when venv package install fails\n\n## Problem\n\nThe
          manager bootstrap `run.sh` venv seed path installed uv and the\nPython/ansible
          environment without checking exit codes:\n\n```sh\npip3 install uv\nuv pip
          install -r requirements.txt\nuv pip install \"ansible==$ANSIBLE_VERSION\"\n```\n\nUnlike
          the surrounding lines (`ansible-galaxy`, `osism.manager.*`), which use `||
          exit $?`, these three swallowed any failure. When uv could not install \u2014
          e.g. it failed to initialize its cache (`Failed to initialize cache at ~/.cache/uv:
          Permission denied`) \u2014 `run.sh` proceeded with a **half-built environment**:
          `requirements.txt` (which pulls in ansible plus collection dependencies
          such as `ansible.posix`) never installed, `ansible-galaxy` still installed
          the `osism.*` collections, and the `operator` playbook aborted much later
          with a misleading `couldn't resolve module/action 'ansible.posix.authorized_key'
          \u2014 No module named ansible_collections.ansible.posix`, tens of lines
          removed from the real cause.\n\nObserved live in an autodrive/tbng deploy
          on regiocloud.\n\n## Fix\n\nGuard all three install lines with `|| exit
          $?` so a uv/pip failure aborts `run.sh` immediately with uv's own error
          message instead of producing a broken venv and a confusing downstream failure.\n\nA
          targeted `|| exit $?` was chosen over `set -euo pipefail` deliberately:
          these exits occur *before* the `trap cleanup ERR EXIT` is registered (further
          down the script), so the fix cannot trigger `cleanup`'s `rm -rf \"$VENV_PATH\"`
          on the failure path.\n\n## Impact on downstream copies\n\nThis file is also
          vendored by `cloud-in-a-box`, `metalbox`, the `generics-drift-*` repos,
          and tbng, which pick up the fix on their next sync.\n\n\U0001F916 Generated
          with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/generics/pull/608
        commit_id: 349b28a842f1c3f544d3a40cabdab48074e6a340
        patchset: 349b28a842f1c3f544d3a40cabdab48074e6a340
        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: '608'
      change_message: "run.sh: fail fast when venv package install fails\n\n## Problem\n\nThe
        manager bootstrap `run.sh` venv seed path installed uv and the\nPython/ansible
        environment without checking exit codes:\n\n```sh\npip3 install uv\nuv pip
        install -r requirements.txt\nuv pip install \"ansible==$ANSIBLE_VERSION\"\n```\n\nUnlike
        the surrounding lines (`ansible-galaxy`, `osism.manager.*`), which use `||
        exit $?`, these three swallowed any failure. When uv could not install \u2014
        e.g. it failed to initialize its cache (`Failed to initialize cache at ~/.cache/uv:
        Permission denied`) \u2014 `run.sh` proceeded with a **half-built environment**:
        `requirements.txt` (which pulls in ansible plus collection dependencies such
        as `ansible.posix`) never installed, `ansible-galaxy` still installed the
        `osism.*` collections, and the `operator` playbook aborted much later with
        a misleading `couldn't resolve module/action 'ansible.posix.authorized_key'
        \u2014 No module named ansible_collections.ansible.posix`, tens of lines removed
        from the real cause.\n\nObserved live in an autodrive/tbng deploy on regiocloud.\n\n##
        Fix\n\nGuard all three install lines with `|| exit $?` so a uv/pip failure
        aborts `run.sh` immediately with uv's own error message instead of producing
        a broken venv and a confusing downstream failure.\n\nA targeted `|| exit $?`
        was chosen over `set -euo pipefail` deliberately: these exits occur *before*
        the `trap cleanup ERR EXIT` is registered (further down the script), so the
        fix cannot trigger `cleanup`'s `rm -rf \"$VENV_PATH\"` on the failure path.\n\n##
        Impact on downstream copies\n\nThis file is also vendored by `cloud-in-a-box`,
        `metalbox`, the `generics-drift-*` repos, and tbng, which pick up the fix
        on their next sync.\n\n\U0001F916 Generated with [Claude Code](https://claude.com/claude-code)"
      change_url: https://github.com/osism/generics/pull/608
      child_jobs: []
      commit_id: 349b28a842f1c3f544d3a40cabdab48074e6a340
      event_id: 3987e540-7dc6-11f1-9b2a-684ad533e9c0
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/c856a78d338e4a90babf3aceb37e7f6e/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/c856a78d338e4a90babf3aceb37e7f6e/work/logs
        result_data_file: /var/lib/zuul/builds/c856a78d338e4a90babf3aceb37e7f6e/work/results.json
        src_root: /var/lib/zuul/builds/c856a78d338e4a90babf3aceb37e7f6e/work/src
        work_root: /var/lib/zuul/builds/c856a78d338e4a90babf3aceb37e7f6e/work
      include_vars: []
      items:
      - branch: main
        change: '608'
        change_message: "run.sh: fail fast when venv package install fails\n\n## Problem\n\nThe
          manager bootstrap `run.sh` venv seed path installed uv and the\nPython/ansible
          environment without checking exit codes:\n\n```sh\npip3 install uv\nuv pip
          install -r requirements.txt\nuv pip install \"ansible==$ANSIBLE_VERSION\"\n```\n\nUnlike
          the surrounding lines (`ansible-galaxy`, `osism.manager.*`), which use `||
          exit $?`, these three swallowed any failure. When uv could not install \u2014
          e.g. it failed to initialize its cache (`Failed to initialize cache at ~/.cache/uv:
          Permission denied`) \u2014 `run.sh` proceeded with a **half-built environment**:
          `requirements.txt` (which pulls in ansible plus collection dependencies
          such as `ansible.posix`) never installed, `ansible-galaxy` still installed
          the `osism.*` collections, and the `operator` playbook aborted much later
          with a misleading `couldn't resolve module/action 'ansible.posix.authorized_key'
          \u2014 No module named ansible_collections.ansible.posix`, tens of lines
          removed from the real cause.\n\nObserved live in an autodrive/tbng deploy
          on regiocloud.\n\n## Fix\n\nGuard all three install lines with `|| exit
          $?` so a uv/pip failure aborts `run.sh` immediately with uv's own error
          message instead of producing a broken venv and a confusing downstream failure.\n\nA
          targeted `|| exit $?` was chosen over `set -euo pipefail` deliberately:
          these exits occur *before* the `trap cleanup ERR EXIT` is registered (further
          down the script), so the fix cannot trigger `cleanup`'s `rm -rf \"$VENV_PATH\"`
          on the failure path.\n\n## Impact on downstream copies\n\nThis file is also
          vendored by `cloud-in-a-box`, `metalbox`, the `generics-drift-*` repos,
          and tbng, which pick up the fix on their next sync.\n\n\U0001F916 Generated
          with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/generics/pull/608
        commit_id: 349b28a842f1c3f544d3a40cabdab48074e6a340
        patchset: 349b28a842f1c3f544d3a40cabdab48074e6a340
        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: check-shell-syntax
      jobtags: []
      max_attempts: 3
      message: cnVuLnNoOiBmYWlsIGZhc3Qgd2hlbiB2ZW52IHBhY2thZ2UgaW5zdGFsbCBmYWlscwoKIyMgUHJvYmxlbQoKVGhlIG1hbmFnZXIgYm9vdHN0cmFwIGBydW4uc2hgIHZlbnYgc2VlZCBwYXRoIGluc3RhbGxlZCB1diBhbmQgdGhlClB5dGhvbi9hbnNpYmxlIGVudmlyb25tZW50IHdpdGhvdXQgY2hlY2tpbmcgZXhpdCBjb2RlczoKCmBgYHNoCnBpcDMgaW5zdGFsbCB1dgp1diBwaXAgaW5zdGFsbCAtciByZXF1aXJlbWVudHMudHh0CnV2IHBpcCBpbnN0YWxsICJhbnNpYmxlPT0kQU5TSUJMRV9WRVJTSU9OIgpgYGAKClVubGlrZSB0aGUgc3Vycm91bmRpbmcgbGluZXMgKGBhbnNpYmxlLWdhbGF4eWAsIGBvc2lzbS5tYW5hZ2VyLipgKSwgd2hpY2ggdXNlIGB8fCBleGl0ICQ/YCwgdGhlc2UgdGhyZWUgc3dhbGxvd2VkIGFueSBmYWlsdXJlLiBXaGVuIHV2IGNvdWxkIG5vdCBpbnN0YWxsIOKAlCBlLmcuIGl0IGZhaWxlZCB0byBpbml0aWFsaXplIGl0cyBjYWNoZSAoYEZhaWxlZCB0byBpbml0aWFsaXplIGNhY2hlIGF0IH4vLmNhY2hlL3V2OiBQZXJtaXNzaW9uIGRlbmllZGApIOKAlCBgcnVuLnNoYCBwcm9jZWVkZWQgd2l0aCBhICoqaGFsZi1idWlsdCBlbnZpcm9ubWVudCoqOiBgcmVxdWlyZW1lbnRzLnR4dGAgKHdoaWNoIHB1bGxzIGluIGFuc2libGUgcGx1cyBjb2xsZWN0aW9uIGRlcGVuZGVuY2llcyBzdWNoIGFzIGBhbnNpYmxlLnBvc2l4YCkgbmV2ZXIgaW5zdGFsbGVkLCBgYW5zaWJsZS1nYWxheHlgIHN0aWxsIGluc3RhbGxlZCB0aGUgYG9zaXNtLipgIGNvbGxlY3Rpb25zLCBhbmQgdGhlIGBvcGVyYXRvcmAgcGxheWJvb2sgYWJvcnRlZCBtdWNoIGxhdGVyIHdpdGggYSBtaXNsZWFkaW5nIGBjb3VsZG4ndCByZXNvbHZlIG1vZHVsZS9hY3Rpb24gJ2Fuc2libGUucG9zaXguYXV0aG9yaXplZF9rZXknIOKAlCBObyBtb2R1bGUgbmFtZWQgYW5zaWJsZV9jb2xsZWN0aW9ucy5hbnNpYmxlLnBvc2l4YCwgdGVucyBvZiBsaW5lcyByZW1vdmVkIGZyb20gdGhlIHJlYWwgY2F1c2UuCgpPYnNlcnZlZCBsaXZlIGluIGFuIGF1dG9kcml2ZS90Ym5nIGRlcGxveSBvbiByZWdpb2Nsb3VkLgoKIyMgRml4CgpHdWFyZCBhbGwgdGhyZWUgaW5zdGFsbCBsaW5lcyB3aXRoIGB8fCBleGl0ICQ/YCBzbyBhIHV2L3BpcCBmYWlsdXJlIGFib3J0cyBgcnVuLnNoYCBpbW1lZGlhdGVseSB3aXRoIHV2J3Mgb3duIGVycm9yIG1lc3NhZ2UgaW5zdGVhZCBvZiBwcm9kdWNpbmcgYSBicm9rZW4gdmVudiBhbmQgYSBjb25mdXNpbmcgZG93bnN0cmVhbSBmYWlsdXJlLgoKQSB0YXJnZXRlZCBgfHwgZXhpdCAkP2Agd2FzIGNob3NlbiBvdmVyIGBzZXQgLWV1byBwaXBlZmFpbGAgZGVsaWJlcmF0ZWx5OiB0aGVzZSBleGl0cyBvY2N1ciAqYmVmb3JlKiB0aGUgYHRyYXAgY2xlYW51cCBFUlIgRVhJVGAgaXMgcmVnaXN0ZXJlZCAoZnVydGhlciBkb3duIHRoZSBzY3JpcHQpLCBzbyB0aGUgZml4IGNhbm5vdCB0cmlnZ2VyIGBjbGVhbnVwYCdzIGBybSAtcmYgIiRWRU5WX1BBVEgiYCBvbiB0aGUgZmFpbHVyZSBwYXRoLgoKIyMgSW1wYWN0IG9uIGRvd25zdHJlYW0gY29waWVzCgpUaGlzIGZpbGUgaXMgYWxzbyB2ZW5kb3JlZCBieSBgY2xvdWQtaW4tYS1ib3hgLCBgbWV0YWxib3hgLCB0aGUgYGdlbmVyaWNzLWRyaWZ0LSpgIHJlcG9zLCBhbmQgdGJuZywgd2hpY2ggcGljayB1cCB0aGUgZml4IG9uIHRoZWlyIG5leHQgc3luYy4KCvCfpJYgR2VuZXJhdGVkIHdpdGggW0NsYXVkZSBDb2RlXShodHRwczovL2NsYXVkZS5jb20vY2xhdWRlLWNvZGUp
      patchset: 349b28a842f1c3f544d3a40cabdab48074e6a340
      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/check-shell-syntax/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/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: 03a411196e59185e6556c0e8ab3b707c6a776bf5
          name: osism/generics
          required: false
          short_name: generics
          src_dir: src/github.com/osism/generics
      ref: refs/pull/608/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
