all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fe55:d21d
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 1894be73-28a2-4e3e-a000-ddf8c6743554
        host_id: df70f2a3f3d0c26428f22685cfc722ebc48099d99e7332c39e017195
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fe55:d21d
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.7.6
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.192.62
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fe55:d21d
        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-services/.zuul.yaml@main#498>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 048163440c3147c7818fe059c918df6e
      build_refs:
      - branch: main
        change: '2112'
        change_message: "Add optional prometheus-frr-exporter service to the FRR role\n\nCloses
          #2111\n\n## Summary\n\nAdds an optional `prometheus-frr-exporter` service
          to the `frr` role.\nThe exporter exposes metrics from the local FRR instance
          (BGP/OSPF/BFD\nsession health and more). It is **off by default** and deployed
          only on\nDebian-family hosts when an operator explicitly enables it. The
          listen\nendpoint binds to `127.0.0.1:9342` by default, following how other\nroles
          expose local-only endpoints (e.g. `scaphandre_host`/`_port`).\n\nScope is
          the exporter endpoint itself \u2014 wiring the metrics into a\nPrometheus/monitoring
          stack is out of scope, per the issue.\n\n## Change set (in commit order)\n\n**1.
          `Add optional prometheus-frr-exporter service to frr role`**\n- `roles/frr/defaults/main.yml`
          \u2014 new variables: `frr_exporter_enable`\n  (`false`), `frr_exporter_package_name`,
          `frr_exporter_service_name`,\n  `frr_exporter_host` (`127.0.0.1`), `frr_exporter_port`
          (`9342`).\n- `roles/frr/tasks/exporter.yml` \u2014 installs the package
          (`apt`), renders\n  `/etc/default/prometheus-frr-exporter`, and manages
          the service.\n  Modeled on the in-repo `smartd` role.\n- `roles/frr/templates/prometheus-frr-exporter.j2`
          \u2014 renders\n  `ARGS=\"--web.listen-address={{ frr_exporter_host }}:{{
          frr_exporter_port }}\"`,\n  the `$ARGS` variable the packaged systemd unit
          sources.\n- `roles/frr/tasks/main.yml` \u2014 includes `exporter.yml` as
          the final\n  task, gated on `frr_exporter_enable | bool` and\n  `ansible_os_family
          == \"Debian\"`.\n- `roles/frr/handlers/main.yml` \u2014 new `Restart prometheus-frr-exporter\n
          \ service` handler.\n\n**2. `Add molecule coverage for prometheus-frr-exporter`**\n-
          `molecule/delegated/vars/frr.yml` \u2014 enables the exporter in the frr\n
          \ scenario so CI (debian-bookworm, ubuntu-noble) exercises it.\n- `molecule/delegated/tests/frr.py`
          \u2014 four testinfra checks (package\n  installed, defaults file rendered
          with the expected listen-address,\n  service running + enabled, endpoint
          listening), each skipping when\n  `frr_exporter_enable` is falsey \u2014
          mirroring the existing daemon-gated\n  tests.\n\n## Platform support\n\n-
          **Ubuntu / Debian**: the `prometheus-frr-exporter` package is present\n
          \ in Debian bookworm (`1.1.4-2`) and Ubuntu noble `universe` (`1.2.0`).\n
          \ The packaged systemd unit runs as `frr:frrvty`, so it already has the\n
          \ FRR socket access needed to populate metrics \u2014 no extra wiring.\n-
          **EL9**: intentionally skipped (no upstream package). Enabling\n  `frr_exporter_enable`
          on EL9 is a deliberate, documented no-op via the\n  `ansible_os_family ==
          \"Debian\"` guard, matching the issue's \"skipping\n  EL9 is acceptable.\"\n\n##
          Design notes\n\n- The new restart handler is intentionally **not** gated
          on\n  `frr_allow_service_restart`. That toggle exists to avoid bouncing
          the\n  routing daemon and dropping BGP/OSPF sessions; restarting the metrics\n
          \ exporter has no routing impact, and the config change must take\n  effect.
          If maintainers prefer it to honor the toggle, adding\n  `when: frr_allow_service_restart
          | bool` is a one-line change.\n\n## Verification\n\n- `yamllint` \u2014
          pass (role + molecule vars)\n- `ansible-lint roles/frr` \u2014 pass (0 failures,
          production profile)\n- `flake8 molecule/delegated/tests/frr.py` \u2014 pass\n-
          Full molecule integration (`delegated` scenario) runs in CI via\n  `ansible-collection-services-molecule-frr`;
          it requires a\n  Debian/Ubuntu host and cannot run on the macOS dev box.\n\n---\n\n_Drafted
          by [planwerk-review](https://github.com/planwerk/planwerk-review) with Claude:claude-opus-4-8_\n"
        change_url: https://github.com/osism/ansible-collection-services/pull/2112
        commit_id: 70fd7f57439f06388241e0b17ebe0d362510e471
        patchset: 70fd7f57439f06388241e0b17ebe0d362510e471
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/ansible-collection-services
          name: osism/ansible-collection-services
          short_name: ansible-collection-services
        src_dir: src/github.com/osism/ansible-collection-services
        topic: null
      buildset: e6099b9fe12a45cbaef8589ca017ade4
      buildset_refs:
      - branch: main
        change: '2112'
        change_message: "Add optional prometheus-frr-exporter service to the FRR role\n\nCloses
          #2111\n\n## Summary\n\nAdds an optional `prometheus-frr-exporter` service
          to the `frr` role.\nThe exporter exposes metrics from the local FRR instance
          (BGP/OSPF/BFD\nsession health and more). It is **off by default** and deployed
          only on\nDebian-family hosts when an operator explicitly enables it. The
          listen\nendpoint binds to `127.0.0.1:9342` by default, following how other\nroles
          expose local-only endpoints (e.g. `scaphandre_host`/`_port`).\n\nScope is
          the exporter endpoint itself \u2014 wiring the metrics into a\nPrometheus/monitoring
          stack is out of scope, per the issue.\n\n## Change set (in commit order)\n\n**1.
          `Add optional prometheus-frr-exporter service to frr role`**\n- `roles/frr/defaults/main.yml`
          \u2014 new variables: `frr_exporter_enable`\n  (`false`), `frr_exporter_package_name`,
          `frr_exporter_service_name`,\n  `frr_exporter_host` (`127.0.0.1`), `frr_exporter_port`
          (`9342`).\n- `roles/frr/tasks/exporter.yml` \u2014 installs the package
          (`apt`), renders\n  `/etc/default/prometheus-frr-exporter`, and manages
          the service.\n  Modeled on the in-repo `smartd` role.\n- `roles/frr/templates/prometheus-frr-exporter.j2`
          \u2014 renders\n  `ARGS=\"--web.listen-address={{ frr_exporter_host }}:{{
          frr_exporter_port }}\"`,\n  the `$ARGS` variable the packaged systemd unit
          sources.\n- `roles/frr/tasks/main.yml` \u2014 includes `exporter.yml` as
          the final\n  task, gated on `frr_exporter_enable | bool` and\n  `ansible_os_family
          == \"Debian\"`.\n- `roles/frr/handlers/main.yml` \u2014 new `Restart prometheus-frr-exporter\n
          \ service` handler.\n\n**2. `Add molecule coverage for prometheus-frr-exporter`**\n-
          `molecule/delegated/vars/frr.yml` \u2014 enables the exporter in the frr\n
          \ scenario so CI (debian-bookworm, ubuntu-noble) exercises it.\n- `molecule/delegated/tests/frr.py`
          \u2014 four testinfra checks (package\n  installed, defaults file rendered
          with the expected listen-address,\n  service running + enabled, endpoint
          listening), each skipping when\n  `frr_exporter_enable` is falsey \u2014
          mirroring the existing daemon-gated\n  tests.\n\n## Platform support\n\n-
          **Ubuntu / Debian**: the `prometheus-frr-exporter` package is present\n
          \ in Debian bookworm (`1.1.4-2`) and Ubuntu noble `universe` (`1.2.0`).\n
          \ The packaged systemd unit runs as `frr:frrvty`, so it already has the\n
          \ FRR socket access needed to populate metrics \u2014 no extra wiring.\n-
          **EL9**: intentionally skipped (no upstream package). Enabling\n  `frr_exporter_enable`
          on EL9 is a deliberate, documented no-op via the\n  `ansible_os_family ==
          \"Debian\"` guard, matching the issue's \"skipping\n  EL9 is acceptable.\"\n\n##
          Design notes\n\n- The new restart handler is intentionally **not** gated
          on\n  `frr_allow_service_restart`. That toggle exists to avoid bouncing
          the\n  routing daemon and dropping BGP/OSPF sessions; restarting the metrics\n
          \ exporter has no routing impact, and the config change must take\n  effect.
          If maintainers prefer it to honor the toggle, adding\n  `when: frr_allow_service_restart
          | bool` is a one-line change.\n\n## Verification\n\n- `yamllint` \u2014
          pass (role + molecule vars)\n- `ansible-lint roles/frr` \u2014 pass (0 failures,
          production profile)\n- `flake8 molecule/delegated/tests/frr.py` \u2014 pass\n-
          Full molecule integration (`delegated` scenario) runs in CI via\n  `ansible-collection-services-molecule-frr`;
          it requires a\n  Debian/Ubuntu host and cannot run on the macOS dev box.\n\n---\n\n_Drafted
          by [planwerk-review](https://github.com/planwerk/planwerk-review) with Claude:claude-opus-4-8_\n"
        change_url: https://github.com/osism/ansible-collection-services/pull/2112
        commit_id: 70fd7f57439f06388241e0b17ebe0d362510e471
        patchset: 70fd7f57439f06388241e0b17ebe0d362510e471
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/ansible-collection-services
          name: osism/ansible-collection-services
          short_name: ansible-collection-services
        src_dir: src/github.com/osism/ansible-collection-services
        topic: null
      change: '2112'
      change_message: "Add optional prometheus-frr-exporter service to the FRR role\n\nCloses
        #2111\n\n## Summary\n\nAdds an optional `prometheus-frr-exporter` service
        to the `frr` role.\nThe exporter exposes metrics from the local FRR instance
        (BGP/OSPF/BFD\nsession health and more). It is **off by default** and deployed
        only on\nDebian-family hosts when an operator explicitly enables it. The listen\nendpoint
        binds to `127.0.0.1:9342` by default, following how other\nroles expose local-only
        endpoints (e.g. `scaphandre_host`/`_port`).\n\nScope is the exporter endpoint
        itself \u2014 wiring the metrics into a\nPrometheus/monitoring stack is out
        of scope, per the issue.\n\n## Change set (in commit order)\n\n**1. `Add optional
        prometheus-frr-exporter service to frr role`**\n- `roles/frr/defaults/main.yml`
        \u2014 new variables: `frr_exporter_enable`\n  (`false`), `frr_exporter_package_name`,
        `frr_exporter_service_name`,\n  `frr_exporter_host` (`127.0.0.1`), `frr_exporter_port`
        (`9342`).\n- `roles/frr/tasks/exporter.yml` \u2014 installs the package (`apt`),
        renders\n  `/etc/default/prometheus-frr-exporter`, and manages the service.\n
        \ Modeled on the in-repo `smartd` role.\n- `roles/frr/templates/prometheus-frr-exporter.j2`
        \u2014 renders\n  `ARGS=\"--web.listen-address={{ frr_exporter_host }}:{{
        frr_exporter_port }}\"`,\n  the `$ARGS` variable the packaged systemd unit
        sources.\n- `roles/frr/tasks/main.yml` \u2014 includes `exporter.yml` as the
        final\n  task, gated on `frr_exporter_enable | bool` and\n  `ansible_os_family
        == \"Debian\"`.\n- `roles/frr/handlers/main.yml` \u2014 new `Restart prometheus-frr-exporter\n
        \ service` handler.\n\n**2. `Add molecule coverage for prometheus-frr-exporter`**\n-
        `molecule/delegated/vars/frr.yml` \u2014 enables the exporter in the frr\n
        \ scenario so CI (debian-bookworm, ubuntu-noble) exercises it.\n- `molecule/delegated/tests/frr.py`
        \u2014 four testinfra checks (package\n  installed, defaults file rendered
        with the expected listen-address,\n  service running + enabled, endpoint listening),
        each skipping when\n  `frr_exporter_enable` is falsey \u2014 mirroring the
        existing daemon-gated\n  tests.\n\n## Platform support\n\n- **Ubuntu / Debian**:
        the `prometheus-frr-exporter` package is present\n  in Debian bookworm (`1.1.4-2`)
        and Ubuntu noble `universe` (`1.2.0`).\n  The packaged systemd unit runs as
        `frr:frrvty`, so it already has the\n  FRR socket access needed to populate
        metrics \u2014 no extra wiring.\n- **EL9**: intentionally skipped (no upstream
        package). Enabling\n  `frr_exporter_enable` on EL9 is a deliberate, documented
        no-op via the\n  `ansible_os_family == \"Debian\"` guard, matching the issue's
        \"skipping\n  EL9 is acceptable.\"\n\n## Design notes\n\n- The new restart
        handler is intentionally **not** gated on\n  `frr_allow_service_restart`.
        That toggle exists to avoid bouncing the\n  routing daemon and dropping BGP/OSPF
        sessions; restarting the metrics\n  exporter has no routing impact, and the
        config change must take\n  effect. If maintainers prefer it to honor the toggle,
        adding\n  `when: frr_allow_service_restart | bool` is a one-line change.\n\n##
        Verification\n\n- `yamllint` \u2014 pass (role + molecule vars)\n- `ansible-lint
        roles/frr` \u2014 pass (0 failures, production profile)\n- `flake8 molecule/delegated/tests/frr.py`
        \u2014 pass\n- Full molecule integration (`delegated` scenario) runs in CI
        via\n  `ansible-collection-services-molecule-frr`; it requires a\n  Debian/Ubuntu
        host and cannot run on the macOS dev box.\n\n---\n\n_Drafted by [planwerk-review](https://github.com/planwerk/planwerk-review)
        with Claude:claude-opus-4-8_\n"
      change_url: https://github.com/osism/ansible-collection-services/pull/2112
      child_jobs: []
      commit_id: 70fd7f57439f06388241e0b17ebe0d362510e471
      event_id: 5e1d2cc0-6af8-11f1-8790-8fd4ef3409d3
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/048163440c3147c7818fe059c918df6e/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/048163440c3147c7818fe059c918df6e/work/logs
        result_data_file: /var/lib/zuul/builds/048163440c3147c7818fe059c918df6e/work/results.json
        src_root: /var/lib/zuul/builds/048163440c3147c7818fe059c918df6e/work/src
        work_root: /var/lib/zuul/builds/048163440c3147c7818fe059c918df6e/work
      include_vars: []
      items:
      - branch: main
        change: '2112'
        change_message: "Add optional prometheus-frr-exporter service to the FRR role\n\nCloses
          #2111\n\n## Summary\n\nAdds an optional `prometheus-frr-exporter` service
          to the `frr` role.\nThe exporter exposes metrics from the local FRR instance
          (BGP/OSPF/BFD\nsession health and more). It is **off by default** and deployed
          only on\nDebian-family hosts when an operator explicitly enables it. The
          listen\nendpoint binds to `127.0.0.1:9342` by default, following how other\nroles
          expose local-only endpoints (e.g. `scaphandre_host`/`_port`).\n\nScope is
          the exporter endpoint itself \u2014 wiring the metrics into a\nPrometheus/monitoring
          stack is out of scope, per the issue.\n\n## Change set (in commit order)\n\n**1.
          `Add optional prometheus-frr-exporter service to frr role`**\n- `roles/frr/defaults/main.yml`
          \u2014 new variables: `frr_exporter_enable`\n  (`false`), `frr_exporter_package_name`,
          `frr_exporter_service_name`,\n  `frr_exporter_host` (`127.0.0.1`), `frr_exporter_port`
          (`9342`).\n- `roles/frr/tasks/exporter.yml` \u2014 installs the package
          (`apt`), renders\n  `/etc/default/prometheus-frr-exporter`, and manages
          the service.\n  Modeled on the in-repo `smartd` role.\n- `roles/frr/templates/prometheus-frr-exporter.j2`
          \u2014 renders\n  `ARGS=\"--web.listen-address={{ frr_exporter_host }}:{{
          frr_exporter_port }}\"`,\n  the `$ARGS` variable the packaged systemd unit
          sources.\n- `roles/frr/tasks/main.yml` \u2014 includes `exporter.yml` as
          the final\n  task, gated on `frr_exporter_enable | bool` and\n  `ansible_os_family
          == \"Debian\"`.\n- `roles/frr/handlers/main.yml` \u2014 new `Restart prometheus-frr-exporter\n
          \ service` handler.\n\n**2. `Add molecule coverage for prometheus-frr-exporter`**\n-
          `molecule/delegated/vars/frr.yml` \u2014 enables the exporter in the frr\n
          \ scenario so CI (debian-bookworm, ubuntu-noble) exercises it.\n- `molecule/delegated/tests/frr.py`
          \u2014 four testinfra checks (package\n  installed, defaults file rendered
          with the expected listen-address,\n  service running + enabled, endpoint
          listening), each skipping when\n  `frr_exporter_enable` is falsey \u2014
          mirroring the existing daemon-gated\n  tests.\n\n## Platform support\n\n-
          **Ubuntu / Debian**: the `prometheus-frr-exporter` package is present\n
          \ in Debian bookworm (`1.1.4-2`) and Ubuntu noble `universe` (`1.2.0`).\n
          \ The packaged systemd unit runs as `frr:frrvty`, so it already has the\n
          \ FRR socket access needed to populate metrics \u2014 no extra wiring.\n-
          **EL9**: intentionally skipped (no upstream package). Enabling\n  `frr_exporter_enable`
          on EL9 is a deliberate, documented no-op via the\n  `ansible_os_family ==
          \"Debian\"` guard, matching the issue's \"skipping\n  EL9 is acceptable.\"\n\n##
          Design notes\n\n- The new restart handler is intentionally **not** gated
          on\n  `frr_allow_service_restart`. That toggle exists to avoid bouncing
          the\n  routing daemon and dropping BGP/OSPF sessions; restarting the metrics\n
          \ exporter has no routing impact, and the config change must take\n  effect.
          If maintainers prefer it to honor the toggle, adding\n  `when: frr_allow_service_restart
          | bool` is a one-line change.\n\n## Verification\n\n- `yamllint` \u2014
          pass (role + molecule vars)\n- `ansible-lint roles/frr` \u2014 pass (0 failures,
          production profile)\n- `flake8 molecule/delegated/tests/frr.py` \u2014 pass\n-
          Full molecule integration (`delegated` scenario) runs in CI via\n  `ansible-collection-services-molecule-frr`;
          it requires a\n  Debian/Ubuntu host and cannot run on the macOS dev box.\n\n---\n\n_Drafted
          by [planwerk-review](https://github.com/planwerk/planwerk-review) with Claude:claude-opus-4-8_\n"
        change_url: https://github.com/osism/ansible-collection-services/pull/2112
        commit_id: 70fd7f57439f06388241e0b17ebe0d362510e471
        patchset: 70fd7f57439f06388241e0b17ebe0d362510e471
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/ansible-collection-services
          name: osism/ansible-collection-services
          short_name: ansible-collection-services
          src_dir: src/github.com/osism/ansible-collection-services
        topic: null
      job: flake8
      jobtags: []
      max_attempts: 3
      message: QWRkIG9wdGlvbmFsIHByb21ldGhldXMtZnJyLWV4cG9ydGVyIHNlcnZpY2UgdG8gdGhlIEZSUiByb2xlCgpDbG9zZXMgIzIxMTEKCiMjIFN1bW1hcnkKCkFkZHMgYW4gb3B0aW9uYWwgYHByb21ldGhldXMtZnJyLWV4cG9ydGVyYCBzZXJ2aWNlIHRvIHRoZSBgZnJyYCByb2xlLgpUaGUgZXhwb3J0ZXIgZXhwb3NlcyBtZXRyaWNzIGZyb20gdGhlIGxvY2FsIEZSUiBpbnN0YW5jZSAoQkdQL09TUEYvQkZECnNlc3Npb24gaGVhbHRoIGFuZCBtb3JlKS4gSXQgaXMgKipvZmYgYnkgZGVmYXVsdCoqIGFuZCBkZXBsb3llZCBvbmx5IG9uCkRlYmlhbi1mYW1pbHkgaG9zdHMgd2hlbiBhbiBvcGVyYXRvciBleHBsaWNpdGx5IGVuYWJsZXMgaXQuIFRoZSBsaXN0ZW4KZW5kcG9pbnQgYmluZHMgdG8gYDEyNy4wLjAuMTo5MzQyYCBieSBkZWZhdWx0LCBmb2xsb3dpbmcgaG93IG90aGVyCnJvbGVzIGV4cG9zZSBsb2NhbC1vbmx5IGVuZHBvaW50cyAoZS5nLiBgc2NhcGhhbmRyZV9ob3N0YC9gX3BvcnRgKS4KClNjb3BlIGlzIHRoZSBleHBvcnRlciBlbmRwb2ludCBpdHNlbGYg4oCUIHdpcmluZyB0aGUgbWV0cmljcyBpbnRvIGEKUHJvbWV0aGV1cy9tb25pdG9yaW5nIHN0YWNrIGlzIG91dCBvZiBzY29wZSwgcGVyIHRoZSBpc3N1ZS4KCiMjIENoYW5nZSBzZXQgKGluIGNvbW1pdCBvcmRlcikKCioqMS4gYEFkZCBvcHRpb25hbCBwcm9tZXRoZXVzLWZyci1leHBvcnRlciBzZXJ2aWNlIHRvIGZyciByb2xlYCoqCi0gYHJvbGVzL2Zyci9kZWZhdWx0cy9tYWluLnltbGAg4oCUIG5ldyB2YXJpYWJsZXM6IGBmcnJfZXhwb3J0ZXJfZW5hYmxlYAogIChgZmFsc2VgKSwgYGZycl9leHBvcnRlcl9wYWNrYWdlX25hbWVgLCBgZnJyX2V4cG9ydGVyX3NlcnZpY2VfbmFtZWAsCiAgYGZycl9leHBvcnRlcl9ob3N0YCAoYDEyNy4wLjAuMWApLCBgZnJyX2V4cG9ydGVyX3BvcnRgIChgOTM0MmApLgotIGByb2xlcy9mcnIvdGFza3MvZXhwb3J0ZXIueW1sYCDigJQgaW5zdGFsbHMgdGhlIHBhY2thZ2UgKGBhcHRgKSwgcmVuZGVycwogIGAvZXRjL2RlZmF1bHQvcHJvbWV0aGV1cy1mcnItZXhwb3J0ZXJgLCBhbmQgbWFuYWdlcyB0aGUgc2VydmljZS4KICBNb2RlbGVkIG9uIHRoZSBpbi1yZXBvIGBzbWFydGRgIHJvbGUuCi0gYHJvbGVzL2Zyci90ZW1wbGF0ZXMvcHJvbWV0aGV1cy1mcnItZXhwb3J0ZXIuajJgIOKAlCByZW5kZXJzCiAgYEFSR1M9Ii0td2ViLmxpc3Rlbi1hZGRyZXNzPXt7IGZycl9leHBvcnRlcl9ob3N0IH19Ont7IGZycl9leHBvcnRlcl9wb3J0IH19ImAsCiAgdGhlIGAkQVJHU2AgdmFyaWFibGUgdGhlIHBhY2thZ2VkIHN5c3RlbWQgdW5pdCBzb3VyY2VzLgotIGByb2xlcy9mcnIvdGFza3MvbWFpbi55bWxgIOKAlCBpbmNsdWRlcyBgZXhwb3J0ZXIueW1sYCBhcyB0aGUgZmluYWwKICB0YXNrLCBnYXRlZCBvbiBgZnJyX2V4cG9ydGVyX2VuYWJsZSB8IGJvb2xgIGFuZAogIGBhbnNpYmxlX29zX2ZhbWlseSA9PSAiRGViaWFuImAuCi0gYHJvbGVzL2Zyci9oYW5kbGVycy9tYWluLnltbGAg4oCUIG5ldyBgUmVzdGFydCBwcm9tZXRoZXVzLWZyci1leHBvcnRlcgogIHNlcnZpY2VgIGhhbmRsZXIuCgoqKjIuIGBBZGQgbW9sZWN1bGUgY292ZXJhZ2UgZm9yIHByb21ldGhldXMtZnJyLWV4cG9ydGVyYCoqCi0gYG1vbGVjdWxlL2RlbGVnYXRlZC92YXJzL2Zyci55bWxgIOKAlCBlbmFibGVzIHRoZSBleHBvcnRlciBpbiB0aGUgZnJyCiAgc2NlbmFyaW8gc28gQ0kgKGRlYmlhbi1ib29rd29ybSwgdWJ1bnR1LW5vYmxlKSBleGVyY2lzZXMgaXQuCi0gYG1vbGVjdWxlL2RlbGVnYXRlZC90ZXN0cy9mcnIucHlgIOKAlCBmb3VyIHRlc3RpbmZyYSBjaGVja3MgKHBhY2thZ2UKICBpbnN0YWxsZWQsIGRlZmF1bHRzIGZpbGUgcmVuZGVyZWQgd2l0aCB0aGUgZXhwZWN0ZWQgbGlzdGVuLWFkZHJlc3MsCiAgc2VydmljZSBydW5uaW5nICsgZW5hYmxlZCwgZW5kcG9pbnQgbGlzdGVuaW5nKSwgZWFjaCBza2lwcGluZyB3aGVuCiAgYGZycl9leHBvcnRlcl9lbmFibGVgIGlzIGZhbHNleSDigJQgbWlycm9yaW5nIHRoZSBleGlzdGluZyBkYWVtb24tZ2F0ZWQKICB0ZXN0cy4KCiMjIFBsYXRmb3JtIHN1cHBvcnQKCi0gKipVYnVudHUgLyBEZWJpYW4qKjogdGhlIGBwcm9tZXRoZXVzLWZyci1leHBvcnRlcmAgcGFja2FnZSBpcyBwcmVzZW50CiAgaW4gRGViaWFuIGJvb2t3b3JtIChgMS4xLjQtMmApIGFuZCBVYnVudHUgbm9ibGUgYHVuaXZlcnNlYCAoYDEuMi4wYCkuCiAgVGhlIHBhY2thZ2VkIHN5c3RlbWQgdW5pdCBydW5zIGFzIGBmcnI6ZnJydnR5YCwgc28gaXQgYWxyZWFkeSBoYXMgdGhlCiAgRlJSIHNvY2tldCBhY2Nlc3MgbmVlZGVkIHRvIHBvcHVsYXRlIG1ldHJpY3Mg4oCUIG5vIGV4dHJhIHdpcmluZy4KLSAqKkVMOSoqOiBpbnRlbnRpb25hbGx5IHNraXBwZWQgKG5vIHVwc3RyZWFtIHBhY2thZ2UpLiBFbmFibGluZwogIGBmcnJfZXhwb3J0ZXJfZW5hYmxlYCBvbiBFTDkgaXMgYSBkZWxpYmVyYXRlLCBkb2N1bWVudGVkIG5vLW9wIHZpYSB0aGUKICBgYW5zaWJsZV9vc19mYW1pbHkgPT0gIkRlYmlhbiJgIGd1YXJkLCBtYXRjaGluZyB0aGUgaXNzdWUncyAic2tpcHBpbmcKICBFTDkgaXMgYWNjZXB0YWJsZS4iCgojIyBEZXNpZ24gbm90ZXMKCi0gVGhlIG5ldyByZXN0YXJ0IGhhbmRsZXIgaXMgaW50ZW50aW9uYWxseSAqKm5vdCoqIGdhdGVkIG9uCiAgYGZycl9hbGxvd19zZXJ2aWNlX3Jlc3RhcnRgLiBUaGF0IHRvZ2dsZSBleGlzdHMgdG8gYXZvaWQgYm91bmNpbmcgdGhlCiAgcm91dGluZyBkYWVtb24gYW5kIGRyb3BwaW5nIEJHUC9PU1BGIHNlc3Npb25zOyByZXN0YXJ0aW5nIHRoZSBtZXRyaWNzCiAgZXhwb3J0ZXIgaGFzIG5vIHJvdXRpbmcgaW1wYWN0LCBhbmQgdGhlIGNvbmZpZyBjaGFuZ2UgbXVzdCB0YWtlCiAgZWZmZWN0LiBJZiBtYWludGFpbmVycyBwcmVmZXIgaXQgdG8gaG9ub3IgdGhlIHRvZ2dsZSwgYWRkaW5nCiAgYHdoZW46IGZycl9hbGxvd19zZXJ2aWNlX3Jlc3RhcnQgfCBib29sYCBpcyBhIG9uZS1saW5lIGNoYW5nZS4KCiMjIFZlcmlmaWNhdGlvbgoKLSBgeWFtbGxpbnRgIOKAlCBwYXNzIChyb2xlICsgbW9sZWN1bGUgdmFycykKLSBgYW5zaWJsZS1saW50IHJvbGVzL2ZycmAg4oCUIHBhc3MgKDAgZmFpbHVyZXMsIHByb2R1Y3Rpb24gcHJvZmlsZSkKLSBgZmxha2U4IG1vbGVjdWxlL2RlbGVnYXRlZC90ZXN0cy9mcnIucHlgIOKAlCBwYXNzCi0gRnVsbCBtb2xlY3VsZSBpbnRlZ3JhdGlvbiAoYGRlbGVnYXRlZGAgc2NlbmFyaW8pIHJ1bnMgaW4gQ0kgdmlhCiAgYGFuc2libGUtY29sbGVjdGlvbi1zZXJ2aWNlcy1tb2xlY3VsZS1mcnJgOyBpdCByZXF1aXJlcyBhCiAgRGViaWFuL1VidW50dSBob3N0IGFuZCBjYW5ub3QgcnVuIG9uIHRoZSBtYWNPUyBkZXYgYm94LgoKLS0tCgpfRHJhZnRlZCBieSBbcGxhbndlcmstcmV2aWV3XShodHRwczovL2dpdGh1Yi5jb20vcGxhbndlcmsvcGxhbndlcmstcmV2aWV3KSB3aXRoIENsYXVkZTpjbGF1ZGUtb3B1cy00LThfCg==
      patchset: 70fd7f57439f06388241e0b17ebe0d362510e471
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 3d5c7b5973754999f7005857a00ce9168944f0f1
          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: 3d5c7b5973754999f7005857a00ce9168944f0f1
          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: 1800
      pre_timeout: null
      project:
        canonical_hostname: github.com
        canonical_name: github.com/osism/ansible-collection-services
        name: osism/ansible-collection-services
        short_name: ansible-collection-services
        src_dir: src/github.com/osism/ansible-collection-services
      projects:
        github.com/osism/ansible-collection-services:
          canonical_hostname: github.com
          canonical_name: github.com/osism/ansible-collection-services
          checkout: main
          checkout_description: zuul branch
          commit: b6d289474f8ab98c115fc0c036f4a77c40d6b0ce
          name: osism/ansible-collection-services
          required: false
          short_name: ansible-collection-services
          src_dir: src/github.com/osism/ansible-collection-services
      ref: refs/pull/2112/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
