all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fe86:7f2d
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: c8b260e2-ecc7-46f3-b7a4-8e767e1bc4c7
        host_id: 82101243836454d7401d5893feae9e2c5df7cc291646d8a99b33b53b
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fe86:7f2d
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.7.16
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.192.232
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fe86:7f2d
        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: 89e9195ae29b40f9a5bea975b986495c
      build_refs:
      - branch: main
        change: '2941'
        change_message: "deploy: add script to deploy Ceph with cephadm\n\nceph-ansible
          is deprecated as of OSISM 10 and will not be supported in upcoming\nreleases.
          This adds `scripts/deploy/100-ceph-with-cephadm.sh` as an alternative\nto
          `100-ceph-with-ansible.sh` that deploys the same cluster layout with cephadm,\nusing
          the OSISM Ceph container image (`registry.osism.tech/osism/ceph-daemon`).\n\nThe
          script is wired up as `deploy-ceph-with-cephadm` in `deploy-manager.sh`,\nanalogous
          to `deploy-ceph-with-ansible`. `scripts/deploy-ceph.sh` is unchanged\nand
          still calls the ceph-ansible variant, so nothing switches over implicitly.\n\n##
          What it does\n\n1. **Preparation** \u2014 `scripts/prepare-ceph-configuration.sh`
          is used unchanged\n   (wipe-partitions, facts, `ceph-configure-lvm-volumes`,\n
          \  `ceph-create-lvm-devices`).\n2. **Install cephadm** \u2014 extracted
          from `/usr/sbin/cephadm` of the OSISM Ceph\n   image on all `ceph` hosts.
          That way the cephadm version always matches the\n   deployed release, no
          UCA package source is required on the nodes, and the\n   image is already
          present everywhere when the daemons are deployed. Followed\n   by `cephadm
          prepare-host`.\n3. **Bootstrap** on the first MON node with the `fsid` from\n
          \  `environments/ceph/configuration.yml`, `--ssh-user dragon` and\n   `--skip-monitoring-stack`
          (OSISM does not mirror the Prometheus/Grafana\n   images).\n4. **cephclient**
          \u2014 the admin keyring is fetched and `osism apply cephclient`\n   is
          run, everything after that goes through the `ceph` command on the manager.\n5.
          **Orchestrator** \u2014 `ceph cephadm set-user dragon` plus import of\n
          \  `/opt/ansible/secrets/id_rsa.operator`. That key is already present on
          all\n   nodes, so no key distribution is needed.\n6. **Hosts** are registered,
          the MON nodes get the `_admin` label, then\n   `mon`/`mgr`/`crash` are applied.\n7.
          **OSDs** \u2014 for every entry in `inventory/host_vars/<node>/ceph-lvm-configuration.yml`\n
          \  a `ceph orch daemon add osd <host>:data_devices=/dev/<vg>/<lv>[,db_devices=\u2026][,encrypted=true]`\n
          \  is issued. So the volumes prepared in step 1 are used as-is, cephadm
          neither\n   discovers nor partitions the block devices itself. Encryption
          follows the\n   `dmcrypt` parameter.\n8. **Pools** \u2014 `backups`/`volumes`/`images`/`metrics`/`vms`,
          the CephFS pools\n   plus `ceph fs new`, and the RGW pools. PG counts, size,
          rule and autoscale\n   mode are taken from the Ceph environment configuration
          and otherwise fall\n   back to the osism/defaults values.\n9. **Keys** \u2014
          `client.cinder`, `client.cinder-backup`, `client.glance`,\n   `client.gnocchi`,
          `client.nova` and `client.manila` with the capabilities\n   from `openstack_keys`.
          They are written to `/etc/ceph` on the MON nodes,\n   which allows `osism
          apply copy-ceph-keys` to be used unchanged.\n10. **MDS/RGW** are applied
          (RGW with service ID `default.default` and\n    `radosgw_frontend_port`),
          followed by `copy-ceph-keys` and a summary.\n\nThe remaining configuration
          is derived from the existing ceph-ansible\nconfiguration in `environments/ceph`
          so that both deployment paths stay in\nsync. `ceph_conf_overrides` is assimilated
          into the central configuration\nstore, with the per-daemon RGW sections
          merged into a single `client.rgw`\nsection.\n\n## Ceph release\n\nBy default
          the same image ceph-ansible would pull is used, i.e.\n`ceph_image_version`
          from the `ceph-ansible` container. For a newer release\neither set `ceph_version`
          (`scripts/set-ceph-version.sh squid`) so that\n`cephclient` follows along,
          or override `CEPH_IMAGE`.\n\n## Testing\n\nBash syntax, the three embedded
          Python helpers (against the real files in\n`environments/ceph`) and the
          host/pool list handling were verified locally. A\nfull deployment run against
          real nodes has not been done yet.\n\nAssisted-by: Claude:claude-opus-4-8"
        change_url: https://github.com/osism/testbed/pull/2941
        commit_id: d459f5149e1c0b807a7d1321c2281828644d21e5
        patchset: d459f5149e1c0b807a7d1321c2281828644d21e5
        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: c531bc04c22e46f6817100039e0ea196
      buildset_refs:
      - branch: main
        change: '2941'
        change_message: "deploy: add script to deploy Ceph with cephadm\n\nceph-ansible
          is deprecated as of OSISM 10 and will not be supported in upcoming\nreleases.
          This adds `scripts/deploy/100-ceph-with-cephadm.sh` as an alternative\nto
          `100-ceph-with-ansible.sh` that deploys the same cluster layout with cephadm,\nusing
          the OSISM Ceph container image (`registry.osism.tech/osism/ceph-daemon`).\n\nThe
          script is wired up as `deploy-ceph-with-cephadm` in `deploy-manager.sh`,\nanalogous
          to `deploy-ceph-with-ansible`. `scripts/deploy-ceph.sh` is unchanged\nand
          still calls the ceph-ansible variant, so nothing switches over implicitly.\n\n##
          What it does\n\n1. **Preparation** \u2014 `scripts/prepare-ceph-configuration.sh`
          is used unchanged\n   (wipe-partitions, facts, `ceph-configure-lvm-volumes`,\n
          \  `ceph-create-lvm-devices`).\n2. **Install cephadm** \u2014 extracted
          from `/usr/sbin/cephadm` of the OSISM Ceph\n   image on all `ceph` hosts.
          That way the cephadm version always matches the\n   deployed release, no
          UCA package source is required on the nodes, and the\n   image is already
          present everywhere when the daemons are deployed. Followed\n   by `cephadm
          prepare-host`.\n3. **Bootstrap** on the first MON node with the `fsid` from\n
          \  `environments/ceph/configuration.yml`, `--ssh-user dragon` and\n   `--skip-monitoring-stack`
          (OSISM does not mirror the Prometheus/Grafana\n   images).\n4. **cephclient**
          \u2014 the admin keyring is fetched and `osism apply cephclient`\n   is
          run, everything after that goes through the `ceph` command on the manager.\n5.
          **Orchestrator** \u2014 `ceph cephadm set-user dragon` plus import of\n
          \  `/opt/ansible/secrets/id_rsa.operator`. That key is already present on
          all\n   nodes, so no key distribution is needed.\n6. **Hosts** are registered,
          the MON nodes get the `_admin` label, then\n   `mon`/`mgr`/`crash` are applied.\n7.
          **OSDs** \u2014 for every entry in `inventory/host_vars/<node>/ceph-lvm-configuration.yml`\n
          \  a `ceph orch daemon add osd <host>:data_devices=/dev/<vg>/<lv>[,db_devices=\u2026][,encrypted=true]`\n
          \  is issued. So the volumes prepared in step 1 are used as-is, cephadm
          neither\n   discovers nor partitions the block devices itself. Encryption
          follows the\n   `dmcrypt` parameter.\n8. **Pools** \u2014 `backups`/`volumes`/`images`/`metrics`/`vms`,
          the CephFS pools\n   plus `ceph fs new`, and the RGW pools. PG counts, size,
          rule and autoscale\n   mode are taken from the Ceph environment configuration
          and otherwise fall\n   back to the osism/defaults values.\n9. **Keys** \u2014
          `client.cinder`, `client.cinder-backup`, `client.glance`,\n   `client.gnocchi`,
          `client.nova` and `client.manila` with the capabilities\n   from `openstack_keys`.
          They are written to `/etc/ceph` on the MON nodes,\n   which allows `osism
          apply copy-ceph-keys` to be used unchanged.\n10. **MDS/RGW** are applied
          (RGW with service ID `default.default` and\n    `radosgw_frontend_port`),
          followed by `copy-ceph-keys` and a summary.\n\nThe remaining configuration
          is derived from the existing ceph-ansible\nconfiguration in `environments/ceph`
          so that both deployment paths stay in\nsync. `ceph_conf_overrides` is assimilated
          into the central configuration\nstore, with the per-daemon RGW sections
          merged into a single `client.rgw`\nsection.\n\n## Ceph release\n\nBy default
          the same image ceph-ansible would pull is used, i.e.\n`ceph_image_version`
          from the `ceph-ansible` container. For a newer release\neither set `ceph_version`
          (`scripts/set-ceph-version.sh squid`) so that\n`cephclient` follows along,
          or override `CEPH_IMAGE`.\n\n## Testing\n\nBash syntax, the three embedded
          Python helpers (against the real files in\n`environments/ceph`) and the
          host/pool list handling were verified locally. A\nfull deployment run against
          real nodes has not been done yet.\n\nAssisted-by: Claude:claude-opus-4-8"
        change_url: https://github.com/osism/testbed/pull/2941
        commit_id: d459f5149e1c0b807a7d1321c2281828644d21e5
        patchset: d459f5149e1c0b807a7d1321c2281828644d21e5
        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: '2941'
      change_message: "deploy: add script to deploy Ceph with cephadm\n\nceph-ansible
        is deprecated as of OSISM 10 and will not be supported in upcoming\nreleases.
        This adds `scripts/deploy/100-ceph-with-cephadm.sh` as an alternative\nto
        `100-ceph-with-ansible.sh` that deploys the same cluster layout with cephadm,\nusing
        the OSISM Ceph container image (`registry.osism.tech/osism/ceph-daemon`).\n\nThe
        script is wired up as `deploy-ceph-with-cephadm` in `deploy-manager.sh`,\nanalogous
        to `deploy-ceph-with-ansible`. `scripts/deploy-ceph.sh` is unchanged\nand
        still calls the ceph-ansible variant, so nothing switches over implicitly.\n\n##
        What it does\n\n1. **Preparation** \u2014 `scripts/prepare-ceph-configuration.sh`
        is used unchanged\n   (wipe-partitions, facts, `ceph-configure-lvm-volumes`,\n
        \  `ceph-create-lvm-devices`).\n2. **Install cephadm** \u2014 extracted from
        `/usr/sbin/cephadm` of the OSISM Ceph\n   image on all `ceph` hosts. That
        way the cephadm version always matches the\n   deployed release, no UCA package
        source is required on the nodes, and the\n   image is already present everywhere
        when the daemons are deployed. Followed\n   by `cephadm prepare-host`.\n3.
        **Bootstrap** on the first MON node with the `fsid` from\n   `environments/ceph/configuration.yml`,
        `--ssh-user dragon` and\n   `--skip-monitoring-stack` (OSISM does not mirror
        the Prometheus/Grafana\n   images).\n4. **cephclient** \u2014 the admin keyring
        is fetched and `osism apply cephclient`\n   is run, everything after that
        goes through the `ceph` command on the manager.\n5. **Orchestrator** \u2014
        `ceph cephadm set-user dragon` plus import of\n   `/opt/ansible/secrets/id_rsa.operator`.
        That key is already present on all\n   nodes, so no key distribution is needed.\n6.
        **Hosts** are registered, the MON nodes get the `_admin` label, then\n   `mon`/`mgr`/`crash`
        are applied.\n7. **OSDs** \u2014 for every entry in `inventory/host_vars/<node>/ceph-lvm-configuration.yml`\n
        \  a `ceph orch daemon add osd <host>:data_devices=/dev/<vg>/<lv>[,db_devices=\u2026][,encrypted=true]`\n
        \  is issued. So the volumes prepared in step 1 are used as-is, cephadm neither\n
        \  discovers nor partitions the block devices itself. Encryption follows the\n
        \  `dmcrypt` parameter.\n8. **Pools** \u2014 `backups`/`volumes`/`images`/`metrics`/`vms`,
        the CephFS pools\n   plus `ceph fs new`, and the RGW pools. PG counts, size,
        rule and autoscale\n   mode are taken from the Ceph environment configuration
        and otherwise fall\n   back to the osism/defaults values.\n9. **Keys** \u2014
        `client.cinder`, `client.cinder-backup`, `client.glance`,\n   `client.gnocchi`,
        `client.nova` and `client.manila` with the capabilities\n   from `openstack_keys`.
        They are written to `/etc/ceph` on the MON nodes,\n   which allows `osism
        apply copy-ceph-keys` to be used unchanged.\n10. **MDS/RGW** are applied (RGW
        with service ID `default.default` and\n    `radosgw_frontend_port`), followed
        by `copy-ceph-keys` and a summary.\n\nThe remaining configuration is derived
        from the existing ceph-ansible\nconfiguration in `environments/ceph` so that
        both deployment paths stay in\nsync. `ceph_conf_overrides` is assimilated
        into the central configuration\nstore, with the per-daemon RGW sections merged
        into a single `client.rgw`\nsection.\n\n## Ceph release\n\nBy default the
        same image ceph-ansible would pull is used, i.e.\n`ceph_image_version` from
        the `ceph-ansible` container. For a newer release\neither set `ceph_version`
        (`scripts/set-ceph-version.sh squid`) so that\n`cephclient` follows along,
        or override `CEPH_IMAGE`.\n\n## Testing\n\nBash syntax, the three embedded
        Python helpers (against the real files in\n`environments/ceph`) and the host/pool
        list handling were verified locally. A\nfull deployment run against real nodes
        has not been done yet.\n\nAssisted-by: Claude:claude-opus-4-8"
      change_url: https://github.com/osism/testbed/pull/2941
      child_jobs: []
      commit_id: d459f5149e1c0b807a7d1321c2281828644d21e5
      event_id: 44d01ca0-877c-11f1-88cb-432f1a5a1358
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/89e9195ae29b40f9a5bea975b986495c/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/89e9195ae29b40f9a5bea975b986495c/work/logs
        result_data_file: /var/lib/zuul/builds/89e9195ae29b40f9a5bea975b986495c/work/results.json
        src_root: /var/lib/zuul/builds/89e9195ae29b40f9a5bea975b986495c/work/src
        work_root: /var/lib/zuul/builds/89e9195ae29b40f9a5bea975b986495c/work
      include_vars: []
      items:
      - branch: main
        change: '2941'
        change_message: "deploy: add script to deploy Ceph with cephadm\n\nceph-ansible
          is deprecated as of OSISM 10 and will not be supported in upcoming\nreleases.
          This adds `scripts/deploy/100-ceph-with-cephadm.sh` as an alternative\nto
          `100-ceph-with-ansible.sh` that deploys the same cluster layout with cephadm,\nusing
          the OSISM Ceph container image (`registry.osism.tech/osism/ceph-daemon`).\n\nThe
          script is wired up as `deploy-ceph-with-cephadm` in `deploy-manager.sh`,\nanalogous
          to `deploy-ceph-with-ansible`. `scripts/deploy-ceph.sh` is unchanged\nand
          still calls the ceph-ansible variant, so nothing switches over implicitly.\n\n##
          What it does\n\n1. **Preparation** \u2014 `scripts/prepare-ceph-configuration.sh`
          is used unchanged\n   (wipe-partitions, facts, `ceph-configure-lvm-volumes`,\n
          \  `ceph-create-lvm-devices`).\n2. **Install cephadm** \u2014 extracted
          from `/usr/sbin/cephadm` of the OSISM Ceph\n   image on all `ceph` hosts.
          That way the cephadm version always matches the\n   deployed release, no
          UCA package source is required on the nodes, and the\n   image is already
          present everywhere when the daemons are deployed. Followed\n   by `cephadm
          prepare-host`.\n3. **Bootstrap** on the first MON node with the `fsid` from\n
          \  `environments/ceph/configuration.yml`, `--ssh-user dragon` and\n   `--skip-monitoring-stack`
          (OSISM does not mirror the Prometheus/Grafana\n   images).\n4. **cephclient**
          \u2014 the admin keyring is fetched and `osism apply cephclient`\n   is
          run, everything after that goes through the `ceph` command on the manager.\n5.
          **Orchestrator** \u2014 `ceph cephadm set-user dragon` plus import of\n
          \  `/opt/ansible/secrets/id_rsa.operator`. That key is already present on
          all\n   nodes, so no key distribution is needed.\n6. **Hosts** are registered,
          the MON nodes get the `_admin` label, then\n   `mon`/`mgr`/`crash` are applied.\n7.
          **OSDs** \u2014 for every entry in `inventory/host_vars/<node>/ceph-lvm-configuration.yml`\n
          \  a `ceph orch daemon add osd <host>:data_devices=/dev/<vg>/<lv>[,db_devices=\u2026][,encrypted=true]`\n
          \  is issued. So the volumes prepared in step 1 are used as-is, cephadm
          neither\n   discovers nor partitions the block devices itself. Encryption
          follows the\n   `dmcrypt` parameter.\n8. **Pools** \u2014 `backups`/`volumes`/`images`/`metrics`/`vms`,
          the CephFS pools\n   plus `ceph fs new`, and the RGW pools. PG counts, size,
          rule and autoscale\n   mode are taken from the Ceph environment configuration
          and otherwise fall\n   back to the osism/defaults values.\n9. **Keys** \u2014
          `client.cinder`, `client.cinder-backup`, `client.glance`,\n   `client.gnocchi`,
          `client.nova` and `client.manila` with the capabilities\n   from `openstack_keys`.
          They are written to `/etc/ceph` on the MON nodes,\n   which allows `osism
          apply copy-ceph-keys` to be used unchanged.\n10. **MDS/RGW** are applied
          (RGW with service ID `default.default` and\n    `radosgw_frontend_port`),
          followed by `copy-ceph-keys` and a summary.\n\nThe remaining configuration
          is derived from the existing ceph-ansible\nconfiguration in `environments/ceph`
          so that both deployment paths stay in\nsync. `ceph_conf_overrides` is assimilated
          into the central configuration\nstore, with the per-daemon RGW sections
          merged into a single `client.rgw`\nsection.\n\n## Ceph release\n\nBy default
          the same image ceph-ansible would pull is used, i.e.\n`ceph_image_version`
          from the `ceph-ansible` container. For a newer release\neither set `ceph_version`
          (`scripts/set-ceph-version.sh squid`) so that\n`cephclient` follows along,
          or override `CEPH_IMAGE`.\n\n## Testing\n\nBash syntax, the three embedded
          Python helpers (against the real files in\n`environments/ceph`) and the
          host/pool list handling were verified locally. A\nfull deployment run against
          real nodes has not been done yet.\n\nAssisted-by: Claude:claude-opus-4-8"
        change_url: https://github.com/osism/testbed/pull/2941
        commit_id: d459f5149e1c0b807a7d1321c2281828644d21e5
        patchset: d459f5149e1c0b807a7d1321c2281828644d21e5
        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: ZGVwbG95OiBhZGQgc2NyaXB0IHRvIGRlcGxveSBDZXBoIHdpdGggY2VwaGFkbQoKY2VwaC1hbnNpYmxlIGlzIGRlcHJlY2F0ZWQgYXMgb2YgT1NJU00gMTAgYW5kIHdpbGwgbm90IGJlIHN1cHBvcnRlZCBpbiB1cGNvbWluZwpyZWxlYXNlcy4gVGhpcyBhZGRzIGBzY3JpcHRzL2RlcGxveS8xMDAtY2VwaC13aXRoLWNlcGhhZG0uc2hgIGFzIGFuIGFsdGVybmF0aXZlCnRvIGAxMDAtY2VwaC13aXRoLWFuc2libGUuc2hgIHRoYXQgZGVwbG95cyB0aGUgc2FtZSBjbHVzdGVyIGxheW91dCB3aXRoIGNlcGhhZG0sCnVzaW5nIHRoZSBPU0lTTSBDZXBoIGNvbnRhaW5lciBpbWFnZSAoYHJlZ2lzdHJ5Lm9zaXNtLnRlY2gvb3Npc20vY2VwaC1kYWVtb25gKS4KClRoZSBzY3JpcHQgaXMgd2lyZWQgdXAgYXMgYGRlcGxveS1jZXBoLXdpdGgtY2VwaGFkbWAgaW4gYGRlcGxveS1tYW5hZ2VyLnNoYCwKYW5hbG9nb3VzIHRvIGBkZXBsb3ktY2VwaC13aXRoLWFuc2libGVgLiBgc2NyaXB0cy9kZXBsb3ktY2VwaC5zaGAgaXMgdW5jaGFuZ2VkCmFuZCBzdGlsbCBjYWxscyB0aGUgY2VwaC1hbnNpYmxlIHZhcmlhbnQsIHNvIG5vdGhpbmcgc3dpdGNoZXMgb3ZlciBpbXBsaWNpdGx5LgoKIyMgV2hhdCBpdCBkb2VzCgoxLiAqKlByZXBhcmF0aW9uKiog4oCUIGBzY3JpcHRzL3ByZXBhcmUtY2VwaC1jb25maWd1cmF0aW9uLnNoYCBpcyB1c2VkIHVuY2hhbmdlZAogICAod2lwZS1wYXJ0aXRpb25zLCBmYWN0cywgYGNlcGgtY29uZmlndXJlLWx2bS12b2x1bWVzYCwKICAgYGNlcGgtY3JlYXRlLWx2bS1kZXZpY2VzYCkuCjIuICoqSW5zdGFsbCBjZXBoYWRtKiog4oCUIGV4dHJhY3RlZCBmcm9tIGAvdXNyL3NiaW4vY2VwaGFkbWAgb2YgdGhlIE9TSVNNIENlcGgKICAgaW1hZ2Ugb24gYWxsIGBjZXBoYCBob3N0cy4gVGhhdCB3YXkgdGhlIGNlcGhhZG0gdmVyc2lvbiBhbHdheXMgbWF0Y2hlcyB0aGUKICAgZGVwbG95ZWQgcmVsZWFzZSwgbm8gVUNBIHBhY2thZ2Ugc291cmNlIGlzIHJlcXVpcmVkIG9uIHRoZSBub2RlcywgYW5kIHRoZQogICBpbWFnZSBpcyBhbHJlYWR5IHByZXNlbnQgZXZlcnl3aGVyZSB3aGVuIHRoZSBkYWVtb25zIGFyZSBkZXBsb3llZC4gRm9sbG93ZWQKICAgYnkgYGNlcGhhZG0gcHJlcGFyZS1ob3N0YC4KMy4gKipCb290c3RyYXAqKiBvbiB0aGUgZmlyc3QgTU9OIG5vZGUgd2l0aCB0aGUgYGZzaWRgIGZyb20KICAgYGVudmlyb25tZW50cy9jZXBoL2NvbmZpZ3VyYXRpb24ueW1sYCwgYC0tc3NoLXVzZXIgZHJhZ29uYCBhbmQKICAgYC0tc2tpcC1tb25pdG9yaW5nLXN0YWNrYCAoT1NJU00gZG9lcyBub3QgbWlycm9yIHRoZSBQcm9tZXRoZXVzL0dyYWZhbmEKICAgaW1hZ2VzKS4KNC4gKipjZXBoY2xpZW50Kiog4oCUIHRoZSBhZG1pbiBrZXlyaW5nIGlzIGZldGNoZWQgYW5kIGBvc2lzbSBhcHBseSBjZXBoY2xpZW50YAogICBpcyBydW4sIGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhhdCBnb2VzIHRocm91Z2ggdGhlIGBjZXBoYCBjb21tYW5kIG9uIHRoZSBtYW5hZ2VyLgo1LiAqKk9yY2hlc3RyYXRvcioqIOKAlCBgY2VwaCBjZXBoYWRtIHNldC11c2VyIGRyYWdvbmAgcGx1cyBpbXBvcnQgb2YKICAgYC9vcHQvYW5zaWJsZS9zZWNyZXRzL2lkX3JzYS5vcGVyYXRvcmAuIFRoYXQga2V5IGlzIGFscmVhZHkgcHJlc2VudCBvbiBhbGwKICAgbm9kZXMsIHNvIG5vIGtleSBkaXN0cmlidXRpb24gaXMgbmVlZGVkLgo2LiAqKkhvc3RzKiogYXJlIHJlZ2lzdGVyZWQsIHRoZSBNT04gbm9kZXMgZ2V0IHRoZSBgX2FkbWluYCBsYWJlbCwgdGhlbgogICBgbW9uYC9gbWdyYC9gY3Jhc2hgIGFyZSBhcHBsaWVkLgo3LiAqKk9TRHMqKiDigJQgZm9yIGV2ZXJ5IGVudHJ5IGluIGBpbnZlbnRvcnkvaG9zdF92YXJzLzxub2RlPi9jZXBoLWx2bS1jb25maWd1cmF0aW9uLnltbGAKICAgYSBgY2VwaCBvcmNoIGRhZW1vbiBhZGQgb3NkIDxob3N0PjpkYXRhX2RldmljZXM9L2Rldi88dmc+Lzxsdj5bLGRiX2RldmljZXM94oCmXVssZW5jcnlwdGVkPXRydWVdYAogICBpcyBpc3N1ZWQuIFNvIHRoZSB2b2x1bWVzIHByZXBhcmVkIGluIHN0ZXAgMSBhcmUgdXNlZCBhcy1pcywgY2VwaGFkbSBuZWl0aGVyCiAgIGRpc2NvdmVycyBub3IgcGFydGl0aW9ucyB0aGUgYmxvY2sgZGV2aWNlcyBpdHNlbGYuIEVuY3J5cHRpb24gZm9sbG93cyB0aGUKICAgYGRtY3J5cHRgIHBhcmFtZXRlci4KOC4gKipQb29scyoqIOKAlCBgYmFja3Vwc2AvYHZvbHVtZXNgL2BpbWFnZXNgL2BtZXRyaWNzYC9gdm1zYCwgdGhlIENlcGhGUyBwb29scwogICBwbHVzIGBjZXBoIGZzIG5ld2AsIGFuZCB0aGUgUkdXIHBvb2xzLiBQRyBjb3VudHMsIHNpemUsIHJ1bGUgYW5kIGF1dG9zY2FsZQogICBtb2RlIGFyZSB0YWtlbiBmcm9tIHRoZSBDZXBoIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb24gYW5kIG90aGVyd2lzZSBmYWxsCiAgIGJhY2sgdG8gdGhlIG9zaXNtL2RlZmF1bHRzIHZhbHVlcy4KOS4gKipLZXlzKiog4oCUIGBjbGllbnQuY2luZGVyYCwgYGNsaWVudC5jaW5kZXItYmFja3VwYCwgYGNsaWVudC5nbGFuY2VgLAogICBgY2xpZW50Lmdub2NjaGlgLCBgY2xpZW50Lm5vdmFgIGFuZCBgY2xpZW50Lm1hbmlsYWAgd2l0aCB0aGUgY2FwYWJpbGl0aWVzCiAgIGZyb20gYG9wZW5zdGFja19rZXlzYC4gVGhleSBhcmUgd3JpdHRlbiB0byBgL2V0Yy9jZXBoYCBvbiB0aGUgTU9OIG5vZGVzLAogICB3aGljaCBhbGxvd3MgYG9zaXNtIGFwcGx5IGNvcHktY2VwaC1rZXlzYCB0byBiZSB1c2VkIHVuY2hhbmdlZC4KMTAuICoqTURTL1JHVyoqIGFyZSBhcHBsaWVkIChSR1cgd2l0aCBzZXJ2aWNlIElEIGBkZWZhdWx0LmRlZmF1bHRgIGFuZAogICAgYHJhZG9zZ3dfZnJvbnRlbmRfcG9ydGApLCBmb2xsb3dlZCBieSBgY29weS1jZXBoLWtleXNgIGFuZCBhIHN1bW1hcnkuCgpUaGUgcmVtYWluaW5nIGNvbmZpZ3VyYXRpb24gaXMgZGVyaXZlZCBmcm9tIHRoZSBleGlzdGluZyBjZXBoLWFuc2libGUKY29uZmlndXJhdGlvbiBpbiBgZW52aXJvbm1lbnRzL2NlcGhgIHNvIHRoYXQgYm90aCBkZXBsb3ltZW50IHBhdGhzIHN0YXkgaW4Kc3luYy4gYGNlcGhfY29uZl9vdmVycmlkZXNgIGlzIGFzc2ltaWxhdGVkIGludG8gdGhlIGNlbnRyYWwgY29uZmlndXJhdGlvbgpzdG9yZSwgd2l0aCB0aGUgcGVyLWRhZW1vbiBSR1cgc2VjdGlvbnMgbWVyZ2VkIGludG8gYSBzaW5nbGUgYGNsaWVudC5yZ3dgCnNlY3Rpb24uCgojIyBDZXBoIHJlbGVhc2UKCkJ5IGRlZmF1bHQgdGhlIHNhbWUgaW1hZ2UgY2VwaC1hbnNpYmxlIHdvdWxkIHB1bGwgaXMgdXNlZCwgaS5lLgpgY2VwaF9pbWFnZV92ZXJzaW9uYCBmcm9tIHRoZSBgY2VwaC1hbnNpYmxlYCBjb250YWluZXIuIEZvciBhIG5ld2VyIHJlbGVhc2UKZWl0aGVyIHNldCBgY2VwaF92ZXJzaW9uYCAoYHNjcmlwdHMvc2V0LWNlcGgtdmVyc2lvbi5zaCBzcXVpZGApIHNvIHRoYXQKYGNlcGhjbGllbnRgIGZvbGxvd3MgYWxvbmcsIG9yIG92ZXJyaWRlIGBDRVBIX0lNQUdFYC4KCiMjIFRlc3RpbmcKCkJhc2ggc3ludGF4LCB0aGUgdGhyZWUgZW1iZWRkZWQgUHl0aG9uIGhlbHBlcnMgKGFnYWluc3QgdGhlIHJlYWwgZmlsZXMgaW4KYGVudmlyb25tZW50cy9jZXBoYCkgYW5kIHRoZSBob3N0L3Bvb2wgbGlzdCBoYW5kbGluZyB3ZXJlIHZlcmlmaWVkIGxvY2FsbHkuIEEKZnVsbCBkZXBsb3ltZW50IHJ1biBhZ2FpbnN0IHJlYWwgbm9kZXMgaGFzIG5vdCBiZWVuIGRvbmUgeWV0LgoKQXNzaXN0ZWQtYnk6IENsYXVkZTpjbGF1ZGUtb3B1cy00LTg=
      patchset: d459f5149e1c0b807a7d1321c2281828644d21e5
      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/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: dcb06ea8a3ad422cc9d98b376216617b2daa6a02
          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: 1a3e596478773a5fd4f689baa2b48a55fe095666
          name: osism/testbed
          required: false
          short_name: testbed
          src_dir: src/github.com/osism/testbed
      ref: refs/pull/2941/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
