all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fec7:43d1
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: c8df6243-adc4-4a9c-9fd0-615f3492ca7a
        host_id: 4667d18e0398acd2fb730ad41ba32e35789c4ac8cd4c0875d25b316b
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fec7:43d1
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.7.145
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.193.184
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fec7:43d1
        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 flake8 explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-jobs/.zuul.yaml@main#32>'
      - '<Job flake8 explicit: None implied: None source: osism/container-image-inventory-reconciler/.zuul.yaml@main#108>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 469b6a20548a4d4da9ba6fb94fc874de
      build_refs:
      - branch: main
        change: '542'
        change_message: "Generate Netplan bond interfaces from NetBox LAGs\n\n## Summary\n\nAuto-generate
          a `network_bonds` section in the Netplan parameters when a device has a
          **port channel / LAG configured in NetBox**. This mirrors the NetBox modelling
          that SONiC port channel detection relies on (`osism/python-osism`, `detect_port_channels()`):
          a LAG is an interface of `type == \"lag\"` and member interfaces carry a
          `lag` back-reference to it. Only the **host side** is handled here \u2014
          the SONiC counterpart is unaffected.\n\n## Behaviour\n\n- **LAG interface**
          (`type=lag`, `managed-by-osism` tag) \u2192 `network_bonds` entry. The bond
          carries the IP addresses and MTU of the LAG interface itself.\n- **Member
          interfaces** (their `lag` field points at a managed LAG) are still rendered
          as `network_ethernets` entries (MAC `match` + `set-name`), but **without**
          addresses, DHCP or leaf link-local settings \u2014 the bond holds the IP
          configuration.\n- **Default = LACP (802.3ad)**: `lacp-rate: fast`, `mii-monitor-interval:
          100`, `transmit-hash-policy: layer3+4`.\n- **Per-LAG override** via the
          `netplan_parameters` custom field on the LAG interface (shallow update,
          consistent with other interface types). Providing a `parameters` dict replaces
          the auto-generated defaults entirely \u2014 e.g. the `active-backup` case
          from the issue.\n- VRF assignment of the LAG interface is reflected in `network_vrfs`.\n\nThe
          output key `network_bonds` is already rendered to `network.bonds:` by the
          consuming role template in `osism/ansible-collection-commons` (`roles/network/templates/netplan/01-osism.yaml.j2`),
          so no change on the consumer side is needed.\n\n### Example output (auto-generated,
          LACP default)\n\n```yaml\nnetwork_ethernets:\n  eno8303: {match: {macaddress:
          \"aa:bb:cc:00:00:01\"}, set-name: eno8303, mtu: 9100}\n  eno8403: {match:
          {macaddress: \"aa:bb:cc:00:00:02\"}, set-name: eno8403, mtu: 9100}\nnetwork_bonds:\n
          \ bond0:\n    interfaces: [eno8303, eno8403]\n    parameters: {mode: 802.3ad,
          lacp-rate: fast, mii-monitor-interval: 100, transmit-hash-policy: layer3+4}\n
          \   mtu: 9100\n    addresses: [10.0.0.5/24]\n```\n\n### active-backup case
          (issue example) \u2014 set on the LAG interface's `netplan_parameters` custom
          field\n\n```json\n{\"parameters\": {\"mode\": \"active-backup\", \"primary\":
          \"eno8303\", \"mii-monitor-interval\": 100, \"fail-over-mac-policy\": \"active\"}}\n```\n\n##
          Tests\n\nNew `tests/unit/netbox/test_netplan_extractor.py` covering the
          LACP default, the active-backup custom-field override, and the fallback
          when the LAG parent is not managed. Full unit suite passes (176 tests).\n\nCloses
          osism/issues#1369\n\n\U0001F916 Generated with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/container-image-inventory-reconciler/pull/542
        commit_id: 82d7348864cd80c42f11548592b287c89093bbce
        patchset: 82d7348864cd80c42f11548592b287c89093bbce
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-image-inventory-reconciler
          name: osism/container-image-inventory-reconciler
          short_name: container-image-inventory-reconciler
        src_dir: src/github.com/osism/container-image-inventory-reconciler
        topic: null
      buildset: 6a60a1685b794aa684c494fd6d59a6e3
      buildset_refs:
      - branch: main
        change: '542'
        change_message: "Generate Netplan bond interfaces from NetBox LAGs\n\n## Summary\n\nAuto-generate
          a `network_bonds` section in the Netplan parameters when a device has a
          **port channel / LAG configured in NetBox**. This mirrors the NetBox modelling
          that SONiC port channel detection relies on (`osism/python-osism`, `detect_port_channels()`):
          a LAG is an interface of `type == \"lag\"` and member interfaces carry a
          `lag` back-reference to it. Only the **host side** is handled here \u2014
          the SONiC counterpart is unaffected.\n\n## Behaviour\n\n- **LAG interface**
          (`type=lag`, `managed-by-osism` tag) \u2192 `network_bonds` entry. The bond
          carries the IP addresses and MTU of the LAG interface itself.\n- **Member
          interfaces** (their `lag` field points at a managed LAG) are still rendered
          as `network_ethernets` entries (MAC `match` + `set-name`), but **without**
          addresses, DHCP or leaf link-local settings \u2014 the bond holds the IP
          configuration.\n- **Default = LACP (802.3ad)**: `lacp-rate: fast`, `mii-monitor-interval:
          100`, `transmit-hash-policy: layer3+4`.\n- **Per-LAG override** via the
          `netplan_parameters` custom field on the LAG interface (shallow update,
          consistent with other interface types). Providing a `parameters` dict replaces
          the auto-generated defaults entirely \u2014 e.g. the `active-backup` case
          from the issue.\n- VRF assignment of the LAG interface is reflected in `network_vrfs`.\n\nThe
          output key `network_bonds` is already rendered to `network.bonds:` by the
          consuming role template in `osism/ansible-collection-commons` (`roles/network/templates/netplan/01-osism.yaml.j2`),
          so no change on the consumer side is needed.\n\n### Example output (auto-generated,
          LACP default)\n\n```yaml\nnetwork_ethernets:\n  eno8303: {match: {macaddress:
          \"aa:bb:cc:00:00:01\"}, set-name: eno8303, mtu: 9100}\n  eno8403: {match:
          {macaddress: \"aa:bb:cc:00:00:02\"}, set-name: eno8403, mtu: 9100}\nnetwork_bonds:\n
          \ bond0:\n    interfaces: [eno8303, eno8403]\n    parameters: {mode: 802.3ad,
          lacp-rate: fast, mii-monitor-interval: 100, transmit-hash-policy: layer3+4}\n
          \   mtu: 9100\n    addresses: [10.0.0.5/24]\n```\n\n### active-backup case
          (issue example) \u2014 set on the LAG interface's `netplan_parameters` custom
          field\n\n```json\n{\"parameters\": {\"mode\": \"active-backup\", \"primary\":
          \"eno8303\", \"mii-monitor-interval\": 100, \"fail-over-mac-policy\": \"active\"}}\n```\n\n##
          Tests\n\nNew `tests/unit/netbox/test_netplan_extractor.py` covering the
          LACP default, the active-backup custom-field override, and the fallback
          when the LAG parent is not managed. Full unit suite passes (176 tests).\n\nCloses
          osism/issues#1369\n\n\U0001F916 Generated with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/container-image-inventory-reconciler/pull/542
        commit_id: 82d7348864cd80c42f11548592b287c89093bbce
        patchset: 82d7348864cd80c42f11548592b287c89093bbce
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-image-inventory-reconciler
          name: osism/container-image-inventory-reconciler
          short_name: container-image-inventory-reconciler
        src_dir: src/github.com/osism/container-image-inventory-reconciler
        topic: null
      change: '542'
      change_message: "Generate Netplan bond interfaces from NetBox LAGs\n\n## Summary\n\nAuto-generate
        a `network_bonds` section in the Netplan parameters when a device has a **port
        channel / LAG configured in NetBox**. This mirrors the NetBox modelling that
        SONiC port channel detection relies on (`osism/python-osism`, `detect_port_channels()`):
        a LAG is an interface of `type == \"lag\"` and member interfaces carry a `lag`
        back-reference to it. Only the **host side** is handled here \u2014 the SONiC
        counterpart is unaffected.\n\n## Behaviour\n\n- **LAG interface** (`type=lag`,
        `managed-by-osism` tag) \u2192 `network_bonds` entry. The bond carries the
        IP addresses and MTU of the LAG interface itself.\n- **Member interfaces**
        (their `lag` field points at a managed LAG) are still rendered as `network_ethernets`
        entries (MAC `match` + `set-name`), but **without** addresses, DHCP or leaf
        link-local settings \u2014 the bond holds the IP configuration.\n- **Default
        = LACP (802.3ad)**: `lacp-rate: fast`, `mii-monitor-interval: 100`, `transmit-hash-policy:
        layer3+4`.\n- **Per-LAG override** via the `netplan_parameters` custom field
        on the LAG interface (shallow update, consistent with other interface types).
        Providing a `parameters` dict replaces the auto-generated defaults entirely
        \u2014 e.g. the `active-backup` case from the issue.\n- VRF assignment of
        the LAG interface is reflected in `network_vrfs`.\n\nThe output key `network_bonds`
        is already rendered to `network.bonds:` by the consuming role template in
        `osism/ansible-collection-commons` (`roles/network/templates/netplan/01-osism.yaml.j2`),
        so no change on the consumer side is needed.\n\n### Example output (auto-generated,
        LACP default)\n\n```yaml\nnetwork_ethernets:\n  eno8303: {match: {macaddress:
        \"aa:bb:cc:00:00:01\"}, set-name: eno8303, mtu: 9100}\n  eno8403: {match:
        {macaddress: \"aa:bb:cc:00:00:02\"}, set-name: eno8403, mtu: 9100}\nnetwork_bonds:\n
        \ bond0:\n    interfaces: [eno8303, eno8403]\n    parameters: {mode: 802.3ad,
        lacp-rate: fast, mii-monitor-interval: 100, transmit-hash-policy: layer3+4}\n
        \   mtu: 9100\n    addresses: [10.0.0.5/24]\n```\n\n### active-backup case
        (issue example) \u2014 set on the LAG interface's `netplan_parameters` custom
        field\n\n```json\n{\"parameters\": {\"mode\": \"active-backup\", \"primary\":
        \"eno8303\", \"mii-monitor-interval\": 100, \"fail-over-mac-policy\": \"active\"}}\n```\n\n##
        Tests\n\nNew `tests/unit/netbox/test_netplan_extractor.py` covering the LACP
        default, the active-backup custom-field override, and the fallback when the
        LAG parent is not managed. Full unit suite passes (176 tests).\n\nCloses osism/issues#1369\n\n\U0001F916
        Generated with [Claude Code](https://claude.com/claude-code)"
      change_url: https://github.com/osism/container-image-inventory-reconciler/pull/542
      child_jobs: []
      commit_id: 82d7348864cd80c42f11548592b287c89093bbce
      event_id: 383540b0-5f81-11f1-9ae4-ede13f3f5ebf
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/469b6a20548a4d4da9ba6fb94fc874de/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/469b6a20548a4d4da9ba6fb94fc874de/work/logs
        result_data_file: /var/lib/zuul/builds/469b6a20548a4d4da9ba6fb94fc874de/work/results.json
        src_root: /var/lib/zuul/builds/469b6a20548a4d4da9ba6fb94fc874de/work/src
        work_root: /var/lib/zuul/builds/469b6a20548a4d4da9ba6fb94fc874de/work
      include_vars: []
      items:
      - branch: main
        change: '542'
        change_message: "Generate Netplan bond interfaces from NetBox LAGs\n\n## Summary\n\nAuto-generate
          a `network_bonds` section in the Netplan parameters when a device has a
          **port channel / LAG configured in NetBox**. This mirrors the NetBox modelling
          that SONiC port channel detection relies on (`osism/python-osism`, `detect_port_channels()`):
          a LAG is an interface of `type == \"lag\"` and member interfaces carry a
          `lag` back-reference to it. Only the **host side** is handled here \u2014
          the SONiC counterpart is unaffected.\n\n## Behaviour\n\n- **LAG interface**
          (`type=lag`, `managed-by-osism` tag) \u2192 `network_bonds` entry. The bond
          carries the IP addresses and MTU of the LAG interface itself.\n- **Member
          interfaces** (their `lag` field points at a managed LAG) are still rendered
          as `network_ethernets` entries (MAC `match` + `set-name`), but **without**
          addresses, DHCP or leaf link-local settings \u2014 the bond holds the IP
          configuration.\n- **Default = LACP (802.3ad)**: `lacp-rate: fast`, `mii-monitor-interval:
          100`, `transmit-hash-policy: layer3+4`.\n- **Per-LAG override** via the
          `netplan_parameters` custom field on the LAG interface (shallow update,
          consistent with other interface types). Providing a `parameters` dict replaces
          the auto-generated defaults entirely \u2014 e.g. the `active-backup` case
          from the issue.\n- VRF assignment of the LAG interface is reflected in `network_vrfs`.\n\nThe
          output key `network_bonds` is already rendered to `network.bonds:` by the
          consuming role template in `osism/ansible-collection-commons` (`roles/network/templates/netplan/01-osism.yaml.j2`),
          so no change on the consumer side is needed.\n\n### Example output (auto-generated,
          LACP default)\n\n```yaml\nnetwork_ethernets:\n  eno8303: {match: {macaddress:
          \"aa:bb:cc:00:00:01\"}, set-name: eno8303, mtu: 9100}\n  eno8403: {match:
          {macaddress: \"aa:bb:cc:00:00:02\"}, set-name: eno8403, mtu: 9100}\nnetwork_bonds:\n
          \ bond0:\n    interfaces: [eno8303, eno8403]\n    parameters: {mode: 802.3ad,
          lacp-rate: fast, mii-monitor-interval: 100, transmit-hash-policy: layer3+4}\n
          \   mtu: 9100\n    addresses: [10.0.0.5/24]\n```\n\n### active-backup case
          (issue example) \u2014 set on the LAG interface's `netplan_parameters` custom
          field\n\n```json\n{\"parameters\": {\"mode\": \"active-backup\", \"primary\":
          \"eno8303\", \"mii-monitor-interval\": 100, \"fail-over-mac-policy\": \"active\"}}\n```\n\n##
          Tests\n\nNew `tests/unit/netbox/test_netplan_extractor.py` covering the
          LACP default, the active-backup custom-field override, and the fallback
          when the LAG parent is not managed. Full unit suite passes (176 tests).\n\nCloses
          osism/issues#1369\n\n\U0001F916 Generated with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/container-image-inventory-reconciler/pull/542
        commit_id: 82d7348864cd80c42f11548592b287c89093bbce
        patchset: 82d7348864cd80c42f11548592b287c89093bbce
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-image-inventory-reconciler
          name: osism/container-image-inventory-reconciler
          short_name: container-image-inventory-reconciler
          src_dir: src/github.com/osism/container-image-inventory-reconciler
        topic: null
      job: flake8
      jobtags: []
      max_attempts: 3
      message: R2VuZXJhdGUgTmV0cGxhbiBib25kIGludGVyZmFjZXMgZnJvbSBOZXRCb3ggTEFHcwoKIyMgU3VtbWFyeQoKQXV0by1nZW5lcmF0ZSBhIGBuZXR3b3JrX2JvbmRzYCBzZWN0aW9uIGluIHRoZSBOZXRwbGFuIHBhcmFtZXRlcnMgd2hlbiBhIGRldmljZSBoYXMgYSAqKnBvcnQgY2hhbm5lbCAvIExBRyBjb25maWd1cmVkIGluIE5ldEJveCoqLiBUaGlzIG1pcnJvcnMgdGhlIE5ldEJveCBtb2RlbGxpbmcgdGhhdCBTT05pQyBwb3J0IGNoYW5uZWwgZGV0ZWN0aW9uIHJlbGllcyBvbiAoYG9zaXNtL3B5dGhvbi1vc2lzbWAsIGBkZXRlY3RfcG9ydF9jaGFubmVscygpYCk6IGEgTEFHIGlzIGFuIGludGVyZmFjZSBvZiBgdHlwZSA9PSAibGFnImAgYW5kIG1lbWJlciBpbnRlcmZhY2VzIGNhcnJ5IGEgYGxhZ2AgYmFjay1yZWZlcmVuY2UgdG8gaXQuIE9ubHkgdGhlICoqaG9zdCBzaWRlKiogaXMgaGFuZGxlZCBoZXJlIOKAlCB0aGUgU09OaUMgY291bnRlcnBhcnQgaXMgdW5hZmZlY3RlZC4KCiMjIEJlaGF2aW91cgoKLSAqKkxBRyBpbnRlcmZhY2UqKiAoYHR5cGU9bGFnYCwgYG1hbmFnZWQtYnktb3Npc21gIHRhZykg4oaSIGBuZXR3b3JrX2JvbmRzYCBlbnRyeS4gVGhlIGJvbmQgY2FycmllcyB0aGUgSVAgYWRkcmVzc2VzIGFuZCBNVFUgb2YgdGhlIExBRyBpbnRlcmZhY2UgaXRzZWxmLgotICoqTWVtYmVyIGludGVyZmFjZXMqKiAodGhlaXIgYGxhZ2AgZmllbGQgcG9pbnRzIGF0IGEgbWFuYWdlZCBMQUcpIGFyZSBzdGlsbCByZW5kZXJlZCBhcyBgbmV0d29ya19ldGhlcm5ldHNgIGVudHJpZXMgKE1BQyBgbWF0Y2hgICsgYHNldC1uYW1lYCksIGJ1dCAqKndpdGhvdXQqKiBhZGRyZXNzZXMsIERIQ1Agb3IgbGVhZiBsaW5rLWxvY2FsIHNldHRpbmdzIOKAlCB0aGUgYm9uZCBob2xkcyB0aGUgSVAgY29uZmlndXJhdGlvbi4KLSAqKkRlZmF1bHQgPSBMQUNQICg4MDIuM2FkKSoqOiBgbGFjcC1yYXRlOiBmYXN0YCwgYG1paS1tb25pdG9yLWludGVydmFsOiAxMDBgLCBgdHJhbnNtaXQtaGFzaC1wb2xpY3k6IGxheWVyMys0YC4KLSAqKlBlci1MQUcgb3ZlcnJpZGUqKiB2aWEgdGhlIGBuZXRwbGFuX3BhcmFtZXRlcnNgIGN1c3RvbSBmaWVsZCBvbiB0aGUgTEFHIGludGVyZmFjZSAoc2hhbGxvdyB1cGRhdGUsIGNvbnNpc3RlbnQgd2l0aCBvdGhlciBpbnRlcmZhY2UgdHlwZXMpLiBQcm92aWRpbmcgYSBgcGFyYW1ldGVyc2AgZGljdCByZXBsYWNlcyB0aGUgYXV0by1nZW5lcmF0ZWQgZGVmYXVsdHMgZW50aXJlbHkg4oCUIGUuZy4gdGhlIGBhY3RpdmUtYmFja3VwYCBjYXNlIGZyb20gdGhlIGlzc3VlLgotIFZSRiBhc3NpZ25tZW50IG9mIHRoZSBMQUcgaW50ZXJmYWNlIGlzIHJlZmxlY3RlZCBpbiBgbmV0d29ya192cmZzYC4KClRoZSBvdXRwdXQga2V5IGBuZXR3b3JrX2JvbmRzYCBpcyBhbHJlYWR5IHJlbmRlcmVkIHRvIGBuZXR3b3JrLmJvbmRzOmAgYnkgdGhlIGNvbnN1bWluZyByb2xlIHRlbXBsYXRlIGluIGBvc2lzbS9hbnNpYmxlLWNvbGxlY3Rpb24tY29tbW9uc2AgKGByb2xlcy9uZXR3b3JrL3RlbXBsYXRlcy9uZXRwbGFuLzAxLW9zaXNtLnlhbWwuajJgKSwgc28gbm8gY2hhbmdlIG9uIHRoZSBjb25zdW1lciBzaWRlIGlzIG5lZWRlZC4KCiMjIyBFeGFtcGxlIG91dHB1dCAoYXV0by1nZW5lcmF0ZWQsIExBQ1AgZGVmYXVsdCkKCmBgYHlhbWwKbmV0d29ya19ldGhlcm5ldHM6CiAgZW5vODMwMzoge21hdGNoOiB7bWFjYWRkcmVzczogImFhOmJiOmNjOjAwOjAwOjAxIn0sIHNldC1uYW1lOiBlbm84MzAzLCBtdHU6IDkxMDB9CiAgZW5vODQwMzoge21hdGNoOiB7bWFjYWRkcmVzczogImFhOmJiOmNjOjAwOjAwOjAyIn0sIHNldC1uYW1lOiBlbm84NDAzLCBtdHU6IDkxMDB9Cm5ldHdvcmtfYm9uZHM6CiAgYm9uZDA6CiAgICBpbnRlcmZhY2VzOiBbZW5vODMwMywgZW5vODQwM10KICAgIHBhcmFtZXRlcnM6IHttb2RlOiA4MDIuM2FkLCBsYWNwLXJhdGU6IGZhc3QsIG1paS1tb25pdG9yLWludGVydmFsOiAxMDAsIHRyYW5zbWl0LWhhc2gtcG9saWN5OiBsYXllcjMrNH0KICAgIG10dTogOTEwMAogICAgYWRkcmVzc2VzOiBbMTAuMC4wLjUvMjRdCmBgYAoKIyMjIGFjdGl2ZS1iYWNrdXAgY2FzZSAoaXNzdWUgZXhhbXBsZSkg4oCUIHNldCBvbiB0aGUgTEFHIGludGVyZmFjZSdzIGBuZXRwbGFuX3BhcmFtZXRlcnNgIGN1c3RvbSBmaWVsZAoKYGBganNvbgp7InBhcmFtZXRlcnMiOiB7Im1vZGUiOiAiYWN0aXZlLWJhY2t1cCIsICJwcmltYXJ5IjogImVubzgzMDMiLCAibWlpLW1vbml0b3ItaW50ZXJ2YWwiOiAxMDAsICJmYWlsLW92ZXItbWFjLXBvbGljeSI6ICJhY3RpdmUifX0KYGBgCgojIyBUZXN0cwoKTmV3IGB0ZXN0cy91bml0L25ldGJveC90ZXN0X25ldHBsYW5fZXh0cmFjdG9yLnB5YCBjb3ZlcmluZyB0aGUgTEFDUCBkZWZhdWx0LCB0aGUgYWN0aXZlLWJhY2t1cCBjdXN0b20tZmllbGQgb3ZlcnJpZGUsIGFuZCB0aGUgZmFsbGJhY2sgd2hlbiB0aGUgTEFHIHBhcmVudCBpcyBub3QgbWFuYWdlZC4gRnVsbCB1bml0IHN1aXRlIHBhc3NlcyAoMTc2IHRlc3RzKS4KCkNsb3NlcyBvc2lzbS9pc3N1ZXMjMTM2OQoK8J+kliBHZW5lcmF0ZWQgd2l0aCBbQ2xhdWRlIENvZGVdKGh0dHBzOi8vY2xhdWRlLmNvbS9jbGF1ZGUtY29kZSk=
      patchset: 82d7348864cd80c42f11548592b287c89093bbce
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 019f0261a526db7d8989ff1abefc2299a8c0ffbc
          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: 019f0261a526db7d8989ff1abefc2299a8c0ffbc
          untrusted/project_2/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 038dd8b856c62af4433c8477c5cb3d0480847059
        playbooks:
        - path: untrusted/project_0/github.com/osism/zuul-jobs/playbooks/flake8/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: null
      pre_timeout: null
      project:
        canonical_hostname: github.com
        canonical_name: github.com/osism/container-image-inventory-reconciler
        name: osism/container-image-inventory-reconciler
        short_name: container-image-inventory-reconciler
        src_dir: src/github.com/osism/container-image-inventory-reconciler
      projects:
        github.com/osism/container-image-inventory-reconciler:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-image-inventory-reconciler
          checkout: main
          checkout_description: zuul branch
          commit: 34a8ad9d137744f1cadbad5132fbb25a3e3fe8b4
          name: osism/container-image-inventory-reconciler
          required: false
          short_name: container-image-inventory-reconciler
          src_dir: src/github.com/osism/container-image-inventory-reconciler
      ref: refs/pull/542/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
