all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fea2:bd11
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: d5a3c48d-2aa1-4eda-9243-3f87abcb98e8
        host_id: df70f2a3f3d0c26428f22685cfc722ebc48099d99e7332c39e017195
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fea2:bd11
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.7.213
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.192.221
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fea2:bd11
        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/ansible-collection-validations/.zuul.yaml@main#150>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 56c70ffbba06470f906cb652cd19daf8
      build_refs:
      - branch: main
        change: '274'
        change_message: "tempest: derive octavia providers from API\n\n## Problem\n\n`octavia_tempest_plugin`'s
          `ProviderAPITest.test_provider_list` iterates the\nproviders the deployed
          Octavia API returns and looks each up, by name, in the\n`enabled_provider_drivers`
          dict from `tempest.conf`. On an OVN deployment\nOctavia serves **both**
          `amphora` and `ovn`, but the role hardcoded an\namphora-only list, so the
          test hit a `KeyError` on the `ovn` provider and\nfailed. It surfaced only
          after the amphora description string was fixed and the\ntest loop could
          advance past `amphora`:\n\n- osism/ansible-collection-validations#271\n\n##
          Why not just mirror kolla's condition\n\nThe correct list is deployment-dependent:
          kolla-ansible builds\n`octavia_provider_drivers` as `amphora:Amphora provider`
          plus, when\n`neutron_plugin_agent` is `ovn`, `, ovn:OVN provider`. That
          condition is\nevaluated in kolla-ansible's variable scope, which is **not
          reachable** when\nthis role renders `tempest.conf`:\n\n- `octavia_provider_drivers`
          is a kolla-ansible role default \u2014 undefined in this\n  role's run scope.\n-
          The tempest playbook runs in the `openstack` environment, but octavia/neutron\n
          \ operator settings live in the `kolla` environment config, which is not
          loaded\n  there. `neutron_plugin_agent` therefore resolves to the `osism/defaults`\n
          \ default rather than the operator's deploy value, so mirroring it would\n
          \ silently diverge from the actual deployment on a non-OVN cloud.\n\n##
          Fix\n\nDerive `tempest_loadbalancer_enabled_provider_drivers` at runtime
          from the\nproviders the live Octavia API actually serves. A new task GETs\n`{load-balancer
          endpoint}/v2.0/lbaas/providers` \u2014 reusing the auth token,\nendpoint
          catalog and service catalog the role already discovers for image and\nnetwork
          setup \u2014 and a `set_fact` builds one `name:description` entry per served\nprovider.
          This mirrors the existing `tempest_api_extensions` derivation and\nkeeps
          the expected list correct for any deployment (amphora alone, or amphora\nplus
          ovn) by construction.\n\nThe default is now undefined (with an explanatory
          comment) rather than a\nhardcoded list, so it is derived when octavia is
          enabled and can still be\noverridden by setting the variable explicitly.\n\n##
          Verification\n\nVerified end to end against a live deployment: the derived
          value renders as\n`amphora:Amphora provider,ovn:OVN provider` and `test_provider_list`
          no longer\nKeyErrors. `ansible-lint` (production profile) and `yamllint`
          pass.\n\n\U0001F916 Generated with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/ansible-collection-validations/pull/274
        commit_id: 8b2c8992322bca866fc68fb104127cdce55d6c86
        patchset: 8b2c8992322bca866fc68fb104127cdce55d6c86
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/ansible-collection-validations
          name: osism/ansible-collection-validations
          short_name: ansible-collection-validations
        src_dir: src/github.com/osism/ansible-collection-validations
        topic: null
      buildset: fd28472782c14c7f86e9898ca401126f
      buildset_refs:
      - branch: main
        change: '274'
        change_message: "tempest: derive octavia providers from API\n\n## Problem\n\n`octavia_tempest_plugin`'s
          `ProviderAPITest.test_provider_list` iterates the\nproviders the deployed
          Octavia API returns and looks each up, by name, in the\n`enabled_provider_drivers`
          dict from `tempest.conf`. On an OVN deployment\nOctavia serves **both**
          `amphora` and `ovn`, but the role hardcoded an\namphora-only list, so the
          test hit a `KeyError` on the `ovn` provider and\nfailed. It surfaced only
          after the amphora description string was fixed and the\ntest loop could
          advance past `amphora`:\n\n- osism/ansible-collection-validations#271\n\n##
          Why not just mirror kolla's condition\n\nThe correct list is deployment-dependent:
          kolla-ansible builds\n`octavia_provider_drivers` as `amphora:Amphora provider`
          plus, when\n`neutron_plugin_agent` is `ovn`, `, ovn:OVN provider`. That
          condition is\nevaluated in kolla-ansible's variable scope, which is **not
          reachable** when\nthis role renders `tempest.conf`:\n\n- `octavia_provider_drivers`
          is a kolla-ansible role default \u2014 undefined in this\n  role's run scope.\n-
          The tempest playbook runs in the `openstack` environment, but octavia/neutron\n
          \ operator settings live in the `kolla` environment config, which is not
          loaded\n  there. `neutron_plugin_agent` therefore resolves to the `osism/defaults`\n
          \ default rather than the operator's deploy value, so mirroring it would\n
          \ silently diverge from the actual deployment on a non-OVN cloud.\n\n##
          Fix\n\nDerive `tempest_loadbalancer_enabled_provider_drivers` at runtime
          from the\nproviders the live Octavia API actually serves. A new task GETs\n`{load-balancer
          endpoint}/v2.0/lbaas/providers` \u2014 reusing the auth token,\nendpoint
          catalog and service catalog the role already discovers for image and\nnetwork
          setup \u2014 and a `set_fact` builds one `name:description` entry per served\nprovider.
          This mirrors the existing `tempest_api_extensions` derivation and\nkeeps
          the expected list correct for any deployment (amphora alone, or amphora\nplus
          ovn) by construction.\n\nThe default is now undefined (with an explanatory
          comment) rather than a\nhardcoded list, so it is derived when octavia is
          enabled and can still be\noverridden by setting the variable explicitly.\n\n##
          Verification\n\nVerified end to end against a live deployment: the derived
          value renders as\n`amphora:Amphora provider,ovn:OVN provider` and `test_provider_list`
          no longer\nKeyErrors. `ansible-lint` (production profile) and `yamllint`
          pass.\n\n\U0001F916 Generated with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/ansible-collection-validations/pull/274
        commit_id: 8b2c8992322bca866fc68fb104127cdce55d6c86
        patchset: 8b2c8992322bca866fc68fb104127cdce55d6c86
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/ansible-collection-validations
          name: osism/ansible-collection-validations
          short_name: ansible-collection-validations
        src_dir: src/github.com/osism/ansible-collection-validations
        topic: null
      change: '274'
      change_message: "tempest: derive octavia providers from API\n\n## Problem\n\n`octavia_tempest_plugin`'s
        `ProviderAPITest.test_provider_list` iterates the\nproviders the deployed
        Octavia API returns and looks each up, by name, in the\n`enabled_provider_drivers`
        dict from `tempest.conf`. On an OVN deployment\nOctavia serves **both** `amphora`
        and `ovn`, but the role hardcoded an\namphora-only list, so the test hit a
        `KeyError` on the `ovn` provider and\nfailed. It surfaced only after the amphora
        description string was fixed and the\ntest loop could advance past `amphora`:\n\n-
        osism/ansible-collection-validations#271\n\n## Why not just mirror kolla's
        condition\n\nThe correct list is deployment-dependent: kolla-ansible builds\n`octavia_provider_drivers`
        as `amphora:Amphora provider` plus, when\n`neutron_plugin_agent` is `ovn`,
        `, ovn:OVN provider`. That condition is\nevaluated in kolla-ansible's variable
        scope, which is **not reachable** when\nthis role renders `tempest.conf`:\n\n-
        `octavia_provider_drivers` is a kolla-ansible role default \u2014 undefined
        in this\n  role's run scope.\n- The tempest playbook runs in the `openstack`
        environment, but octavia/neutron\n  operator settings live in the `kolla`
        environment config, which is not loaded\n  there. `neutron_plugin_agent` therefore
        resolves to the `osism/defaults`\n  default rather than the operator's deploy
        value, so mirroring it would\n  silently diverge from the actual deployment
        on a non-OVN cloud.\n\n## Fix\n\nDerive `tempest_loadbalancer_enabled_provider_drivers`
        at runtime from the\nproviders the live Octavia API actually serves. A new
        task GETs\n`{load-balancer endpoint}/v2.0/lbaas/providers` \u2014 reusing
        the auth token,\nendpoint catalog and service catalog the role already discovers
        for image and\nnetwork setup \u2014 and a `set_fact` builds one `name:description`
        entry per served\nprovider. This mirrors the existing `tempest_api_extensions`
        derivation and\nkeeps the expected list correct for any deployment (amphora
        alone, or amphora\nplus ovn) by construction.\n\nThe default is now undefined
        (with an explanatory comment) rather than a\nhardcoded list, so it is derived
        when octavia is enabled and can still be\noverridden by setting the variable
        explicitly.\n\n## Verification\n\nVerified end to end against a live deployment:
        the derived value renders as\n`amphora:Amphora provider,ovn:OVN provider`
        and `test_provider_list` no longer\nKeyErrors. `ansible-lint` (production
        profile) and `yamllint` pass.\n\n\U0001F916 Generated with [Claude Code](https://claude.com/claude-code)"
      change_url: https://github.com/osism/ansible-collection-validations/pull/274
      child_jobs: []
      commit_id: 8b2c8992322bca866fc68fb104127cdce55d6c86
      event_id: ac7e2ed0-82dd-11f1-956e-6fdf9448417e
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/56c70ffbba06470f906cb652cd19daf8/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/56c70ffbba06470f906cb652cd19daf8/work/logs
        result_data_file: /var/lib/zuul/builds/56c70ffbba06470f906cb652cd19daf8/work/results.json
        src_root: /var/lib/zuul/builds/56c70ffbba06470f906cb652cd19daf8/work/src
        work_root: /var/lib/zuul/builds/56c70ffbba06470f906cb652cd19daf8/work
      include_vars: []
      items:
      - branch: main
        change: '274'
        change_message: "tempest: derive octavia providers from API\n\n## Problem\n\n`octavia_tempest_plugin`'s
          `ProviderAPITest.test_provider_list` iterates the\nproviders the deployed
          Octavia API returns and looks each up, by name, in the\n`enabled_provider_drivers`
          dict from `tempest.conf`. On an OVN deployment\nOctavia serves **both**
          `amphora` and `ovn`, but the role hardcoded an\namphora-only list, so the
          test hit a `KeyError` on the `ovn` provider and\nfailed. It surfaced only
          after the amphora description string was fixed and the\ntest loop could
          advance past `amphora`:\n\n- osism/ansible-collection-validations#271\n\n##
          Why not just mirror kolla's condition\n\nThe correct list is deployment-dependent:
          kolla-ansible builds\n`octavia_provider_drivers` as `amphora:Amphora provider`
          plus, when\n`neutron_plugin_agent` is `ovn`, `, ovn:OVN provider`. That
          condition is\nevaluated in kolla-ansible's variable scope, which is **not
          reachable** when\nthis role renders `tempest.conf`:\n\n- `octavia_provider_drivers`
          is a kolla-ansible role default \u2014 undefined in this\n  role's run scope.\n-
          The tempest playbook runs in the `openstack` environment, but octavia/neutron\n
          \ operator settings live in the `kolla` environment config, which is not
          loaded\n  there. `neutron_plugin_agent` therefore resolves to the `osism/defaults`\n
          \ default rather than the operator's deploy value, so mirroring it would\n
          \ silently diverge from the actual deployment on a non-OVN cloud.\n\n##
          Fix\n\nDerive `tempest_loadbalancer_enabled_provider_drivers` at runtime
          from the\nproviders the live Octavia API actually serves. A new task GETs\n`{load-balancer
          endpoint}/v2.0/lbaas/providers` \u2014 reusing the auth token,\nendpoint
          catalog and service catalog the role already discovers for image and\nnetwork
          setup \u2014 and a `set_fact` builds one `name:description` entry per served\nprovider.
          This mirrors the existing `tempest_api_extensions` derivation and\nkeeps
          the expected list correct for any deployment (amphora alone, or amphora\nplus
          ovn) by construction.\n\nThe default is now undefined (with an explanatory
          comment) rather than a\nhardcoded list, so it is derived when octavia is
          enabled and can still be\noverridden by setting the variable explicitly.\n\n##
          Verification\n\nVerified end to end against a live deployment: the derived
          value renders as\n`amphora:Amphora provider,ovn:OVN provider` and `test_provider_list`
          no longer\nKeyErrors. `ansible-lint` (production profile) and `yamllint`
          pass.\n\n\U0001F916 Generated with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/ansible-collection-validations/pull/274
        commit_id: 8b2c8992322bca866fc68fb104127cdce55d6c86
        patchset: 8b2c8992322bca866fc68fb104127cdce55d6c86
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/ansible-collection-validations
          name: osism/ansible-collection-validations
          short_name: ansible-collection-validations
          src_dir: src/github.com/osism/ansible-collection-validations
        topic: null
      job: flake8
      jobtags: []
      max_attempts: 3
      message: dGVtcGVzdDogZGVyaXZlIG9jdGF2aWEgcHJvdmlkZXJzIGZyb20gQVBJCgojIyBQcm9ibGVtCgpgb2N0YXZpYV90ZW1wZXN0X3BsdWdpbmAncyBgUHJvdmlkZXJBUElUZXN0LnRlc3RfcHJvdmlkZXJfbGlzdGAgaXRlcmF0ZXMgdGhlCnByb3ZpZGVycyB0aGUgZGVwbG95ZWQgT2N0YXZpYSBBUEkgcmV0dXJucyBhbmQgbG9va3MgZWFjaCB1cCwgYnkgbmFtZSwgaW4gdGhlCmBlbmFibGVkX3Byb3ZpZGVyX2RyaXZlcnNgIGRpY3QgZnJvbSBgdGVtcGVzdC5jb25mYC4gT24gYW4gT1ZOIGRlcGxveW1lbnQKT2N0YXZpYSBzZXJ2ZXMgKipib3RoKiogYGFtcGhvcmFgIGFuZCBgb3ZuYCwgYnV0IHRoZSByb2xlIGhhcmRjb2RlZCBhbgphbXBob3JhLW9ubHkgbGlzdCwgc28gdGhlIHRlc3QgaGl0IGEgYEtleUVycm9yYCBvbiB0aGUgYG92bmAgcHJvdmlkZXIgYW5kCmZhaWxlZC4gSXQgc3VyZmFjZWQgb25seSBhZnRlciB0aGUgYW1waG9yYSBkZXNjcmlwdGlvbiBzdHJpbmcgd2FzIGZpeGVkIGFuZCB0aGUKdGVzdCBsb29wIGNvdWxkIGFkdmFuY2UgcGFzdCBgYW1waG9yYWA6CgotIG9zaXNtL2Fuc2libGUtY29sbGVjdGlvbi12YWxpZGF0aW9ucyMyNzEKCiMjIFdoeSBub3QganVzdCBtaXJyb3Iga29sbGEncyBjb25kaXRpb24KClRoZSBjb3JyZWN0IGxpc3QgaXMgZGVwbG95bWVudC1kZXBlbmRlbnQ6IGtvbGxhLWFuc2libGUgYnVpbGRzCmBvY3RhdmlhX3Byb3ZpZGVyX2RyaXZlcnNgIGFzIGBhbXBob3JhOkFtcGhvcmEgcHJvdmlkZXJgIHBsdXMsIHdoZW4KYG5ldXRyb25fcGx1Z2luX2FnZW50YCBpcyBgb3ZuYCwgYCwgb3ZuOk9WTiBwcm92aWRlcmAuIFRoYXQgY29uZGl0aW9uIGlzCmV2YWx1YXRlZCBpbiBrb2xsYS1hbnNpYmxlJ3MgdmFyaWFibGUgc2NvcGUsIHdoaWNoIGlzICoqbm90IHJlYWNoYWJsZSoqIHdoZW4KdGhpcyByb2xlIHJlbmRlcnMgYHRlbXBlc3QuY29uZmA6CgotIGBvY3RhdmlhX3Byb3ZpZGVyX2RyaXZlcnNgIGlzIGEga29sbGEtYW5zaWJsZSByb2xlIGRlZmF1bHQg4oCUIHVuZGVmaW5lZCBpbiB0aGlzCiAgcm9sZSdzIHJ1biBzY29wZS4KLSBUaGUgdGVtcGVzdCBwbGF5Ym9vayBydW5zIGluIHRoZSBgb3BlbnN0YWNrYCBlbnZpcm9ubWVudCwgYnV0IG9jdGF2aWEvbmV1dHJvbgogIG9wZXJhdG9yIHNldHRpbmdzIGxpdmUgaW4gdGhlIGBrb2xsYWAgZW52aXJvbm1lbnQgY29uZmlnLCB3aGljaCBpcyBub3QgbG9hZGVkCiAgdGhlcmUuIGBuZXV0cm9uX3BsdWdpbl9hZ2VudGAgdGhlcmVmb3JlIHJlc29sdmVzIHRvIHRoZSBgb3Npc20vZGVmYXVsdHNgCiAgZGVmYXVsdCByYXRoZXIgdGhhbiB0aGUgb3BlcmF0b3IncyBkZXBsb3kgdmFsdWUsIHNvIG1pcnJvcmluZyBpdCB3b3VsZAogIHNpbGVudGx5IGRpdmVyZ2UgZnJvbSB0aGUgYWN0dWFsIGRlcGxveW1lbnQgb24gYSBub24tT1ZOIGNsb3VkLgoKIyMgRml4CgpEZXJpdmUgYHRlbXBlc3RfbG9hZGJhbGFuY2VyX2VuYWJsZWRfcHJvdmlkZXJfZHJpdmVyc2AgYXQgcnVudGltZSBmcm9tIHRoZQpwcm92aWRlcnMgdGhlIGxpdmUgT2N0YXZpYSBBUEkgYWN0dWFsbHkgc2VydmVzLiBBIG5ldyB0YXNrIEdFVHMKYHtsb2FkLWJhbGFuY2VyIGVuZHBvaW50fS92Mi4wL2xiYWFzL3Byb3ZpZGVyc2Ag4oCUIHJldXNpbmcgdGhlIGF1dGggdG9rZW4sCmVuZHBvaW50IGNhdGFsb2cgYW5kIHNlcnZpY2UgY2F0YWxvZyB0aGUgcm9sZSBhbHJlYWR5IGRpc2NvdmVycyBmb3IgaW1hZ2UgYW5kCm5ldHdvcmsgc2V0dXAg4oCUIGFuZCBhIGBzZXRfZmFjdGAgYnVpbGRzIG9uZSBgbmFtZTpkZXNjcmlwdGlvbmAgZW50cnkgcGVyIHNlcnZlZApwcm92aWRlci4gVGhpcyBtaXJyb3JzIHRoZSBleGlzdGluZyBgdGVtcGVzdF9hcGlfZXh0ZW5zaW9uc2AgZGVyaXZhdGlvbiBhbmQKa2VlcHMgdGhlIGV4cGVjdGVkIGxpc3QgY29ycmVjdCBmb3IgYW55IGRlcGxveW1lbnQgKGFtcGhvcmEgYWxvbmUsIG9yIGFtcGhvcmEKcGx1cyBvdm4pIGJ5IGNvbnN0cnVjdGlvbi4KClRoZSBkZWZhdWx0IGlzIG5vdyB1bmRlZmluZWQgKHdpdGggYW4gZXhwbGFuYXRvcnkgY29tbWVudCkgcmF0aGVyIHRoYW4gYQpoYXJkY29kZWQgbGlzdCwgc28gaXQgaXMgZGVyaXZlZCB3aGVuIG9jdGF2aWEgaXMgZW5hYmxlZCBhbmQgY2FuIHN0aWxsIGJlCm92ZXJyaWRkZW4gYnkgc2V0dGluZyB0aGUgdmFyaWFibGUgZXhwbGljaXRseS4KCiMjIFZlcmlmaWNhdGlvbgoKVmVyaWZpZWQgZW5kIHRvIGVuZCBhZ2FpbnN0IGEgbGl2ZSBkZXBsb3ltZW50OiB0aGUgZGVyaXZlZCB2YWx1ZSByZW5kZXJzIGFzCmBhbXBob3JhOkFtcGhvcmEgcHJvdmlkZXIsb3ZuOk9WTiBwcm92aWRlcmAgYW5kIGB0ZXN0X3Byb3ZpZGVyX2xpc3RgIG5vIGxvbmdlcgpLZXlFcnJvcnMuIGBhbnNpYmxlLWxpbnRgIChwcm9kdWN0aW9uIHByb2ZpbGUpIGFuZCBgeWFtbGxpbnRgIHBhc3MuCgrwn6SWIEdlbmVyYXRlZCB3aXRoIFtDbGF1ZGUgQ29kZV0oaHR0cHM6Ly9jbGF1ZGUuY29tL2NsYXVkZS1jb2RlKQ==
      patchset: 8b2c8992322bca866fc68fb104127cdce55d6c86
      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/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: 1800
      pre_timeout: null
      project:
        canonical_hostname: github.com
        canonical_name: github.com/osism/ansible-collection-validations
        name: osism/ansible-collection-validations
        short_name: ansible-collection-validations
        src_dir: src/github.com/osism/ansible-collection-validations
      projects:
        github.com/osism/ansible-collection-validations:
          canonical_hostname: github.com
          canonical_name: github.com/osism/ansible-collection-validations
          checkout: main
          checkout_description: zuul branch
          commit: 6650246dc7631735534258498b079be42835cb09
          name: osism/ansible-collection-validations
          required: false
          short_name: ansible-collection-validations
          src_dir: src/github.com/osism/ansible-collection-validations
      ref: refs/pull/274/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
