all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fee3:f040
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: cd191fb4-962c-4ef0-81aa-78d36e99098f
        host_id: d2c528664e1bd332192bb574345deb0c6c7158061222e4a6c036b5ef
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fee3:f040
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.7.242
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.193.62
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fee3:f040
        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-black explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-jobs/.zuul.yaml@main#54>'
      - '<Job python-black explicit: None implied: None source: osism/testbed/.zuul.yaml@main#325>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 533c7646fe8f431cb1d4bdd6eb063ef1
      build_refs:
      - branch: main
        change: '2945'
        change_message: "upgrade: pick manager update by target release\n\n`testbed-upgrade-stable-ubuntu-24.04`
          has been failing since the manager\nupdate was switched to `run.sh` unconditionally.
          This picks the entry point\nthe *target* release actually ships.\n\n## What
          broke\n\nThe first nightly after that change failed at the new call\n([build
          `f3984b01`](https://logs.services.osism.tech/f39/osism/f3984b01019d4425af673b1c3bcbadce/),\nFAILURE
          after 2h31m against ~6h green):\n\n```\n+ /opt/configuration/environments/manager/run.sh
          manager\n...\nERROR: Configured branch '' and current checkout-branch 'main'
          are not the same!\n(see /opt/configuration/environments/manager/configuration.yml,
          configuration_git_version)\n```\n\n## Why\n\n`run.sh` does select the `osism/seed`
          container by itself \u2014 but only from\n`osism/generics` v0.20260627.0
          on. `generics/src/set-versions.py` runs as a\ngilt `post_command` and rewrites
          `gilt.yml`'s `version:` to the\n`generics_version` of the release named
          in `manager_version`, so the `run.sh`\na manager receives is the one **its
          target release pins**:\n\n| release | `osism.services` | wrapper | `generics_version`
          | seed path |\n|---|---|---|---|---|\n| 9.5.0 | 0.20251130.0 | present |
          v0.20251130.0 | no |\n| 10.0.0 | 0.20260319.0 | present | v0.20260319.0
          | no |\n| 10.1.0 | 0.20260615.0 | present | v0.20260615.0 | no |\n| latest
          | 0.20260730.0 | present | v0.20260721.0 | yes |\n\n10.1.0 pins v0.20260615.0,
          tagged three days before the seed-container\ndispatch landed, so `run.sh`
          fell back to building a local Ansible venv \u2014 and\nthat path enforces
          `configuration_git_version`, which this configuration\nrepository does not
          set.\n\nEvery release with such a `run.sh` still ships the `osism-update-manager`\nwrapper:
          the removal is first in collection v0.20260806.0, and no release pins\nthat
          yet. `testbed-upgrade-stable-next` and `testbed-update-stable-current`\nstayed
          green because both target `latest`, which re-pins generics to\nv0.20260721.0
          and does take the container path.\n\n## The change\n\n`update_manager()`
          in `scripts/include.sh`, beside `sync_inventory()` and\ngating the same
          way, used by both call sites so the upgrade and ceph-upgrade\npaths stay
          in step. Checked against `contrib/semver2.sh`: 9.5.0 / 10.0.0 /\n10.1.0
          take the wrapper, 10.1.1 / 10.2.0 / `latest` take `run.sh`.\n\n## Assumption
          worth reviewing\n\nThe gate gives releases above 10.1.0 the `run.sh` path,
          assuming they pin a\ngenerics carrying the seed-container dispatch. That
          holds while\n`generics_version` and `osism.services` are cut together \u2014
          but a release\npinning `osism.services` >= v0.20260806.0 (no wrapper) alongside
          a generics\n< v0.20260627.0 (no seed path) would have neither entry point.\n\n##
          Context\n\n- osism/testbed#2944\n- osism/ansible-collection-services#2154\n-
          osism/osism.github.io#1056 \u2014 documents the same premise and needs a
          release gate too\n- osism/issues#1429\n\n\U0001F916 Generated with [Claude
          Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/testbed/pull/2945
        commit_id: ab594589b8a5718de3a67abc3c8a43e4efcfed25
        patchset: ab594589b8a5718de3a67abc3c8a43e4efcfed25
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/testbed
          name: osism/testbed
          short_name: testbed
        src_dir: src/github.com/osism/testbed
        topic: null
      buildset: 30ee17322d2d4d1a92c5b15a29b26ea7
      buildset_refs:
      - branch: main
        change: '2945'
        change_message: "upgrade: pick manager update by target release\n\n`testbed-upgrade-stable-ubuntu-24.04`
          has been failing since the manager\nupdate was switched to `run.sh` unconditionally.
          This picks the entry point\nthe *target* release actually ships.\n\n## What
          broke\n\nThe first nightly after that change failed at the new call\n([build
          `f3984b01`](https://logs.services.osism.tech/f39/osism/f3984b01019d4425af673b1c3bcbadce/),\nFAILURE
          after 2h31m against ~6h green):\n\n```\n+ /opt/configuration/environments/manager/run.sh
          manager\n...\nERROR: Configured branch '' and current checkout-branch 'main'
          are not the same!\n(see /opt/configuration/environments/manager/configuration.yml,
          configuration_git_version)\n```\n\n## Why\n\n`run.sh` does select the `osism/seed`
          container by itself \u2014 but only from\n`osism/generics` v0.20260627.0
          on. `generics/src/set-versions.py` runs as a\ngilt `post_command` and rewrites
          `gilt.yml`'s `version:` to the\n`generics_version` of the release named
          in `manager_version`, so the `run.sh`\na manager receives is the one **its
          target release pins**:\n\n| release | `osism.services` | wrapper | `generics_version`
          | seed path |\n|---|---|---|---|---|\n| 9.5.0 | 0.20251130.0 | present |
          v0.20251130.0 | no |\n| 10.0.0 | 0.20260319.0 | present | v0.20260319.0
          | no |\n| 10.1.0 | 0.20260615.0 | present | v0.20260615.0 | no |\n| latest
          | 0.20260730.0 | present | v0.20260721.0 | yes |\n\n10.1.0 pins v0.20260615.0,
          tagged three days before the seed-container\ndispatch landed, so `run.sh`
          fell back to building a local Ansible venv \u2014 and\nthat path enforces
          `configuration_git_version`, which this configuration\nrepository does not
          set.\n\nEvery release with such a `run.sh` still ships the `osism-update-manager`\nwrapper:
          the removal is first in collection v0.20260806.0, and no release pins\nthat
          yet. `testbed-upgrade-stable-next` and `testbed-update-stable-current`\nstayed
          green because both target `latest`, which re-pins generics to\nv0.20260721.0
          and does take the container path.\n\n## The change\n\n`update_manager()`
          in `scripts/include.sh`, beside `sync_inventory()` and\ngating the same
          way, used by both call sites so the upgrade and ceph-upgrade\npaths stay
          in step. Checked against `contrib/semver2.sh`: 9.5.0 / 10.0.0 /\n10.1.0
          take the wrapper, 10.1.1 / 10.2.0 / `latest` take `run.sh`.\n\n## Assumption
          worth reviewing\n\nThe gate gives releases above 10.1.0 the `run.sh` path,
          assuming they pin a\ngenerics carrying the seed-container dispatch. That
          holds while\n`generics_version` and `osism.services` are cut together \u2014
          but a release\npinning `osism.services` >= v0.20260806.0 (no wrapper) alongside
          a generics\n< v0.20260627.0 (no seed path) would have neither entry point.\n\n##
          Context\n\n- osism/testbed#2944\n- osism/ansible-collection-services#2154\n-
          osism/osism.github.io#1056 \u2014 documents the same premise and needs a
          release gate too\n- osism/issues#1429\n\n\U0001F916 Generated with [Claude
          Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/testbed/pull/2945
        commit_id: ab594589b8a5718de3a67abc3c8a43e4efcfed25
        patchset: ab594589b8a5718de3a67abc3c8a43e4efcfed25
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/testbed
          name: osism/testbed
          short_name: testbed
        src_dir: src/github.com/osism/testbed
        topic: null
      change: '2945'
      change_message: "upgrade: pick manager update by target release\n\n`testbed-upgrade-stable-ubuntu-24.04`
        has been failing since the manager\nupdate was switched to `run.sh` unconditionally.
        This picks the entry point\nthe *target* release actually ships.\n\n## What
        broke\n\nThe first nightly after that change failed at the new call\n([build
        `f3984b01`](https://logs.services.osism.tech/f39/osism/f3984b01019d4425af673b1c3bcbadce/),\nFAILURE
        after 2h31m against ~6h green):\n\n```\n+ /opt/configuration/environments/manager/run.sh
        manager\n...\nERROR: Configured branch '' and current checkout-branch 'main'
        are not the same!\n(see /opt/configuration/environments/manager/configuration.yml,
        configuration_git_version)\n```\n\n## Why\n\n`run.sh` does select the `osism/seed`
        container by itself \u2014 but only from\n`osism/generics` v0.20260627.0 on.
        `generics/src/set-versions.py` runs as a\ngilt `post_command` and rewrites
        `gilt.yml`'s `version:` to the\n`generics_version` of the release named in
        `manager_version`, so the `run.sh`\na manager receives is the one **its target
        release pins**:\n\n| release | `osism.services` | wrapper | `generics_version`
        | seed path |\n|---|---|---|---|---|\n| 9.5.0 | 0.20251130.0 | present | v0.20251130.0
        | no |\n| 10.0.0 | 0.20260319.0 | present | v0.20260319.0 | no |\n| 10.1.0
        | 0.20260615.0 | present | v0.20260615.0 | no |\n| latest | 0.20260730.0 |
        present | v0.20260721.0 | yes |\n\n10.1.0 pins v0.20260615.0, tagged three
        days before the seed-container\ndispatch landed, so `run.sh` fell back to
        building a local Ansible venv \u2014 and\nthat path enforces `configuration_git_version`,
        which this configuration\nrepository does not set.\n\nEvery release with such
        a `run.sh` still ships the `osism-update-manager`\nwrapper: the removal is
        first in collection v0.20260806.0, and no release pins\nthat yet. `testbed-upgrade-stable-next`
        and `testbed-update-stable-current`\nstayed green because both target `latest`,
        which re-pins generics to\nv0.20260721.0 and does take the container path.\n\n##
        The change\n\n`update_manager()` in `scripts/include.sh`, beside `sync_inventory()`
        and\ngating the same way, used by both call sites so the upgrade and ceph-upgrade\npaths
        stay in step. Checked against `contrib/semver2.sh`: 9.5.0 / 10.0.0 /\n10.1.0
        take the wrapper, 10.1.1 / 10.2.0 / `latest` take `run.sh`.\n\n## Assumption
        worth reviewing\n\nThe gate gives releases above 10.1.0 the `run.sh` path,
        assuming they pin a\ngenerics carrying the seed-container dispatch. That holds
        while\n`generics_version` and `osism.services` are cut together \u2014 but
        a release\npinning `osism.services` >= v0.20260806.0 (no wrapper) alongside
        a generics\n< v0.20260627.0 (no seed path) would have neither entry point.\n\n##
        Context\n\n- osism/testbed#2944\n- osism/ansible-collection-services#2154\n-
        osism/osism.github.io#1056 \u2014 documents the same premise and needs a release
        gate too\n- osism/issues#1429\n\n\U0001F916 Generated with [Claude Code](https://claude.com/claude-code)"
      change_url: https://github.com/osism/testbed/pull/2945
      child_jobs: []
      commit_id: ab594589b8a5718de3a67abc3c8a43e4efcfed25
      event_id: c5fbb710-9246-11f1-88cd-d929b086038a
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/533c7646fe8f431cb1d4bdd6eb063ef1/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/533c7646fe8f431cb1d4bdd6eb063ef1/work/logs
        result_data_file: /var/lib/zuul/builds/533c7646fe8f431cb1d4bdd6eb063ef1/work/results.json
        src_root: /var/lib/zuul/builds/533c7646fe8f431cb1d4bdd6eb063ef1/work/src
        work_root: /var/lib/zuul/builds/533c7646fe8f431cb1d4bdd6eb063ef1/work
      include_vars: []
      items:
      - branch: main
        change: '2945'
        change_message: "upgrade: pick manager update by target release\n\n`testbed-upgrade-stable-ubuntu-24.04`
          has been failing since the manager\nupdate was switched to `run.sh` unconditionally.
          This picks the entry point\nthe *target* release actually ships.\n\n## What
          broke\n\nThe first nightly after that change failed at the new call\n([build
          `f3984b01`](https://logs.services.osism.tech/f39/osism/f3984b01019d4425af673b1c3bcbadce/),\nFAILURE
          after 2h31m against ~6h green):\n\n```\n+ /opt/configuration/environments/manager/run.sh
          manager\n...\nERROR: Configured branch '' and current checkout-branch 'main'
          are not the same!\n(see /opt/configuration/environments/manager/configuration.yml,
          configuration_git_version)\n```\n\n## Why\n\n`run.sh` does select the `osism/seed`
          container by itself \u2014 but only from\n`osism/generics` v0.20260627.0
          on. `generics/src/set-versions.py` runs as a\ngilt `post_command` and rewrites
          `gilt.yml`'s `version:` to the\n`generics_version` of the release named
          in `manager_version`, so the `run.sh`\na manager receives is the one **its
          target release pins**:\n\n| release | `osism.services` | wrapper | `generics_version`
          | seed path |\n|---|---|---|---|---|\n| 9.5.0 | 0.20251130.0 | present |
          v0.20251130.0 | no |\n| 10.0.0 | 0.20260319.0 | present | v0.20260319.0
          | no |\n| 10.1.0 | 0.20260615.0 | present | v0.20260615.0 | no |\n| latest
          | 0.20260730.0 | present | v0.20260721.0 | yes |\n\n10.1.0 pins v0.20260615.0,
          tagged three days before the seed-container\ndispatch landed, so `run.sh`
          fell back to building a local Ansible venv \u2014 and\nthat path enforces
          `configuration_git_version`, which this configuration\nrepository does not
          set.\n\nEvery release with such a `run.sh` still ships the `osism-update-manager`\nwrapper:
          the removal is first in collection v0.20260806.0, and no release pins\nthat
          yet. `testbed-upgrade-stable-next` and `testbed-update-stable-current`\nstayed
          green because both target `latest`, which re-pins generics to\nv0.20260721.0
          and does take the container path.\n\n## The change\n\n`update_manager()`
          in `scripts/include.sh`, beside `sync_inventory()` and\ngating the same
          way, used by both call sites so the upgrade and ceph-upgrade\npaths stay
          in step. Checked against `contrib/semver2.sh`: 9.5.0 / 10.0.0 /\n10.1.0
          take the wrapper, 10.1.1 / 10.2.0 / `latest` take `run.sh`.\n\n## Assumption
          worth reviewing\n\nThe gate gives releases above 10.1.0 the `run.sh` path,
          assuming they pin a\ngenerics carrying the seed-container dispatch. That
          holds while\n`generics_version` and `osism.services` are cut together \u2014
          but a release\npinning `osism.services` >= v0.20260806.0 (no wrapper) alongside
          a generics\n< v0.20260627.0 (no seed path) would have neither entry point.\n\n##
          Context\n\n- osism/testbed#2944\n- osism/ansible-collection-services#2154\n-
          osism/osism.github.io#1056 \u2014 documents the same premise and needs a
          release gate too\n- osism/issues#1429\n\n\U0001F916 Generated with [Claude
          Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/testbed/pull/2945
        commit_id: ab594589b8a5718de3a67abc3c8a43e4efcfed25
        patchset: ab594589b8a5718de3a67abc3c8a43e4efcfed25
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/testbed
          name: osism/testbed
          short_name: testbed
          src_dir: src/github.com/osism/testbed
        topic: null
      job: python-black
      jobtags: []
      max_attempts: 3
      message: dXBncmFkZTogcGljayBtYW5hZ2VyIHVwZGF0ZSBieSB0YXJnZXQgcmVsZWFzZQoKYHRlc3RiZWQtdXBncmFkZS1zdGFibGUtdWJ1bnR1LTI0LjA0YCBoYXMgYmVlbiBmYWlsaW5nIHNpbmNlIHRoZSBtYW5hZ2VyCnVwZGF0ZSB3YXMgc3dpdGNoZWQgdG8gYHJ1bi5zaGAgdW5jb25kaXRpb25hbGx5LiBUaGlzIHBpY2tzIHRoZSBlbnRyeSBwb2ludAp0aGUgKnRhcmdldCogcmVsZWFzZSBhY3R1YWxseSBzaGlwcy4KCiMjIFdoYXQgYnJva2UKClRoZSBmaXJzdCBuaWdodGx5IGFmdGVyIHRoYXQgY2hhbmdlIGZhaWxlZCBhdCB0aGUgbmV3IGNhbGwKKFtidWlsZCBgZjM5ODRiMDFgXShodHRwczovL2xvZ3Muc2VydmljZXMub3Npc20udGVjaC9mMzkvb3Npc20vZjM5ODRiMDEwMTlkNDQyNWFmNjczYjFjM2JjYmFkY2UvKSwKRkFJTFVSRSBhZnRlciAyaDMxbSBhZ2FpbnN0IH42aCBncmVlbik6CgpgYGAKKyAvb3B0L2NvbmZpZ3VyYXRpb24vZW52aXJvbm1lbnRzL21hbmFnZXIvcnVuLnNoIG1hbmFnZXIKLi4uCkVSUk9SOiBDb25maWd1cmVkIGJyYW5jaCAnJyBhbmQgY3VycmVudCBjaGVja291dC1icmFuY2ggJ21haW4nIGFyZSBub3QgdGhlIHNhbWUhCihzZWUgL29wdC9jb25maWd1cmF0aW9uL2Vudmlyb25tZW50cy9tYW5hZ2VyL2NvbmZpZ3VyYXRpb24ueW1sLCBjb25maWd1cmF0aW9uX2dpdF92ZXJzaW9uKQpgYGAKCiMjIFdoeQoKYHJ1bi5zaGAgZG9lcyBzZWxlY3QgdGhlIGBvc2lzbS9zZWVkYCBjb250YWluZXIgYnkgaXRzZWxmIOKAlCBidXQgb25seSBmcm9tCmBvc2lzbS9nZW5lcmljc2AgdjAuMjAyNjA2MjcuMCBvbi4gYGdlbmVyaWNzL3NyYy9zZXQtdmVyc2lvbnMucHlgIHJ1bnMgYXMgYQpnaWx0IGBwb3N0X2NvbW1hbmRgIGFuZCByZXdyaXRlcyBgZ2lsdC55bWxgJ3MgYHZlcnNpb246YCB0byB0aGUKYGdlbmVyaWNzX3ZlcnNpb25gIG9mIHRoZSByZWxlYXNlIG5hbWVkIGluIGBtYW5hZ2VyX3ZlcnNpb25gLCBzbyB0aGUgYHJ1bi5zaGAKYSBtYW5hZ2VyIHJlY2VpdmVzIGlzIHRoZSBvbmUgKippdHMgdGFyZ2V0IHJlbGVhc2UgcGlucyoqOgoKfCByZWxlYXNlIHwgYG9zaXNtLnNlcnZpY2VzYCB8IHdyYXBwZXIgfCBgZ2VuZXJpY3NfdmVyc2lvbmAgfCBzZWVkIHBhdGggfAp8LS0tfC0tLXwtLS18LS0tfC0tLXwKfCA5LjUuMCB8IDAuMjAyNTExMzAuMCB8IHByZXNlbnQgfCB2MC4yMDI1MTEzMC4wIHwgbm8gfAp8IDEwLjAuMCB8IDAuMjAyNjAzMTkuMCB8IHByZXNlbnQgfCB2MC4yMDI2MDMxOS4wIHwgbm8gfAp8IDEwLjEuMCB8IDAuMjAyNjA2MTUuMCB8IHByZXNlbnQgfCB2MC4yMDI2MDYxNS4wIHwgbm8gfAp8IGxhdGVzdCB8IDAuMjAyNjA3MzAuMCB8IHByZXNlbnQgfCB2MC4yMDI2MDcyMS4wIHwgeWVzIHwKCjEwLjEuMCBwaW5zIHYwLjIwMjYwNjE1LjAsIHRhZ2dlZCB0aHJlZSBkYXlzIGJlZm9yZSB0aGUgc2VlZC1jb250YWluZXIKZGlzcGF0Y2ggbGFuZGVkLCBzbyBgcnVuLnNoYCBmZWxsIGJhY2sgdG8gYnVpbGRpbmcgYSBsb2NhbCBBbnNpYmxlIHZlbnYg4oCUIGFuZAp0aGF0IHBhdGggZW5mb3JjZXMgYGNvbmZpZ3VyYXRpb25fZ2l0X3ZlcnNpb25gLCB3aGljaCB0aGlzIGNvbmZpZ3VyYXRpb24KcmVwb3NpdG9yeSBkb2VzIG5vdCBzZXQuCgpFdmVyeSByZWxlYXNlIHdpdGggc3VjaCBhIGBydW4uc2hgIHN0aWxsIHNoaXBzIHRoZSBgb3Npc20tdXBkYXRlLW1hbmFnZXJgCndyYXBwZXI6IHRoZSByZW1vdmFsIGlzIGZpcnN0IGluIGNvbGxlY3Rpb24gdjAuMjAyNjA4MDYuMCwgYW5kIG5vIHJlbGVhc2UgcGlucwp0aGF0IHlldC4gYHRlc3RiZWQtdXBncmFkZS1zdGFibGUtbmV4dGAgYW5kIGB0ZXN0YmVkLXVwZGF0ZS1zdGFibGUtY3VycmVudGAKc3RheWVkIGdyZWVuIGJlY2F1c2UgYm90aCB0YXJnZXQgYGxhdGVzdGAsIHdoaWNoIHJlLXBpbnMgZ2VuZXJpY3MgdG8KdjAuMjAyNjA3MjEuMCBhbmQgZG9lcyB0YWtlIHRoZSBjb250YWluZXIgcGF0aC4KCiMjIFRoZSBjaGFuZ2UKCmB1cGRhdGVfbWFuYWdlcigpYCBpbiBgc2NyaXB0cy9pbmNsdWRlLnNoYCwgYmVzaWRlIGBzeW5jX2ludmVudG9yeSgpYCBhbmQKZ2F0aW5nIHRoZSBzYW1lIHdheSwgdXNlZCBieSBib3RoIGNhbGwgc2l0ZXMgc28gdGhlIHVwZ3JhZGUgYW5kIGNlcGgtdXBncmFkZQpwYXRocyBzdGF5IGluIHN0ZXAuIENoZWNrZWQgYWdhaW5zdCBgY29udHJpYi9zZW12ZXIyLnNoYDogOS41LjAgLyAxMC4wLjAgLwoxMC4xLjAgdGFrZSB0aGUgd3JhcHBlciwgMTAuMS4xIC8gMTAuMi4wIC8gYGxhdGVzdGAgdGFrZSBgcnVuLnNoYC4KCiMjIEFzc3VtcHRpb24gd29ydGggcmV2aWV3aW5nCgpUaGUgZ2F0ZSBnaXZlcyByZWxlYXNlcyBhYm92ZSAxMC4xLjAgdGhlIGBydW4uc2hgIHBhdGgsIGFzc3VtaW5nIHRoZXkgcGluIGEKZ2VuZXJpY3MgY2FycnlpbmcgdGhlIHNlZWQtY29udGFpbmVyIGRpc3BhdGNoLiBUaGF0IGhvbGRzIHdoaWxlCmBnZW5lcmljc192ZXJzaW9uYCBhbmQgYG9zaXNtLnNlcnZpY2VzYCBhcmUgY3V0IHRvZ2V0aGVyIOKAlCBidXQgYSByZWxlYXNlCnBpbm5pbmcgYG9zaXNtLnNlcnZpY2VzYCA+PSB2MC4yMDI2MDgwNi4wIChubyB3cmFwcGVyKSBhbG9uZ3NpZGUgYSBnZW5lcmljcwo8IHYwLjIwMjYwNjI3LjAgKG5vIHNlZWQgcGF0aCkgd291bGQgaGF2ZSBuZWl0aGVyIGVudHJ5IHBvaW50LgoKIyMgQ29udGV4dAoKLSBvc2lzbS90ZXN0YmVkIzI5NDQKLSBvc2lzbS9hbnNpYmxlLWNvbGxlY3Rpb24tc2VydmljZXMjMjE1NAotIG9zaXNtL29zaXNtLmdpdGh1Yi5pbyMxMDU2IOKAlCBkb2N1bWVudHMgdGhlIHNhbWUgcHJlbWlzZSBhbmQgbmVlZHMgYSByZWxlYXNlIGdhdGUgdG9vCi0gb3Npc20vaXNzdWVzIzE0MjkKCvCfpJYgR2VuZXJhdGVkIHdpdGggW0NsYXVkZSBDb2RlXShodHRwczovL2NsYXVkZS5jb20vY2xhdWRlLWNvZGUp
      patchset: ab594589b8a5718de3a67abc3c8a43e4efcfed25
      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/python-black/run.yml
          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/testbed
        name: osism/testbed
        short_name: testbed
        src_dir: src/github.com/osism/testbed
      projects:
        github.com/osism/testbed:
          canonical_hostname: github.com
          canonical_name: github.com/osism/testbed
          checkout: main
          checkout_description: zuul branch
          commit: 6b696a6538948ec1da7883f10c50880c178cbb47
          name: osism/testbed
          required: false
          short_name: testbed
          src_dir: src/github.com/osism/testbed
      ref: refs/pull/2945/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
