all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fe7d:f4a8
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: c97297ae-e443-423d-8a5e-2dc32c4180bf
        host_id: 5afd8fc909abddfe2ce3a956a91bbe56629648b7209fd0acfa541862
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fe7d:f4a8
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.0.106
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.192.65
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fe7d:f4a8
        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 mypy explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-jobs/.zuul.yaml@main#42>'
      - '<Job mypy explicit: None implied: None source: osism/openstack-image-manager/.zuul.yaml@main#16>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 0eba30975c6f4628b89df284d16cdb21
      build_refs:
      - branch: main
        change: '1256'
        change_message: "Add detect-and-flag job for pending image-catalog updates\n\n##
          What\n\nA scheduled, read-only job that compares the image catalog against
          endoflife.date and flags \u2014 in a single auto-maintained GitHub issue
          \u2014 supported upstream majors the catalog does not define yet, and enabled
          images that are past end of life.\n\n- `contrib/check_updates.py` \u2014
          reads `etc/images/*.yml`, queries endoflife.date per distribution, and reports
          new majors + end-of-life images. Pure evaluation logic with a three-state
          exit contract (`0` clean / `1` findings / `2` operational failure) and a
          `status.txt` completion sentinel written last, so a crash or fetch error
          can never be mistaken for \"clean\" (which would wrongly close the issue).\n-
          `.github/workflows/check-updates.yml` \u2014 runs weekly, reconciles one
          issue (label `pending-image-updates`) off the sentinel: create/update on
          findings, close when clean, and leave the issue untouched on operational
          failure.\n- Per-distribution EOL semantics: Debian is evaluated on `extendedSupport`
          (its free community LTS), everyone else on `eol` (Ubuntu's `extendedSupport`
          is paid ESM), so LTS-active Debian releases are not wrongly flagged.\n\n##
          Testing\n\n- `tox -e test -- test/unit test_check_updates.py` \u2014 19
          tests: Ubuntu LTS filter, openSUSE both-signals, clean distro, disabled-not-EOL,
          future-release, boolean `eol`, data-integrity validation \u2192 exit 2,
          completion sentinel, markdown render.\n- Verified live against endoflife.date:
          reports the expected new majors plus EOL openSUSE Leap 15.6; the operational-failure
          path exits 2 and writes no sentinel.\n- flake8 / black / mypy / yamllint
          clean.\n\n## Notes\n\nIndependent of the `update.py` cleanup/refactor work.
          The `gh`-issue reconciliation is only fully exercised on a real scheduled
          run.\n\nSurfaces the kind of drift tracked in:\n\n- osism/issues#1417\n\n\U0001F916
          Generated with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/openstack-image-manager/pull/1256
        commit_id: a7240b2d07d1a2ad9aa5baab0d688fd8c3752df9
        patchset: a7240b2d07d1a2ad9aa5baab0d688fd8c3752df9
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/openstack-image-manager
          name: osism/openstack-image-manager
          short_name: openstack-image-manager
        src_dir: src/github.com/osism/openstack-image-manager
        topic: null
      buildset: a426752a0c924b0ba488ba3808aa15ec
      buildset_refs:
      - branch: main
        change: '1256'
        change_message: "Add detect-and-flag job for pending image-catalog updates\n\n##
          What\n\nA scheduled, read-only job that compares the image catalog against
          endoflife.date and flags \u2014 in a single auto-maintained GitHub issue
          \u2014 supported upstream majors the catalog does not define yet, and enabled
          images that are past end of life.\n\n- `contrib/check_updates.py` \u2014
          reads `etc/images/*.yml`, queries endoflife.date per distribution, and reports
          new majors + end-of-life images. Pure evaluation logic with a three-state
          exit contract (`0` clean / `1` findings / `2` operational failure) and a
          `status.txt` completion sentinel written last, so a crash or fetch error
          can never be mistaken for \"clean\" (which would wrongly close the issue).\n-
          `.github/workflows/check-updates.yml` \u2014 runs weekly, reconciles one
          issue (label `pending-image-updates`) off the sentinel: create/update on
          findings, close when clean, and leave the issue untouched on operational
          failure.\n- Per-distribution EOL semantics: Debian is evaluated on `extendedSupport`
          (its free community LTS), everyone else on `eol` (Ubuntu's `extendedSupport`
          is paid ESM), so LTS-active Debian releases are not wrongly flagged.\n\n##
          Testing\n\n- `tox -e test -- test/unit test_check_updates.py` \u2014 19
          tests: Ubuntu LTS filter, openSUSE both-signals, clean distro, disabled-not-EOL,
          future-release, boolean `eol`, data-integrity validation \u2192 exit 2,
          completion sentinel, markdown render.\n- Verified live against endoflife.date:
          reports the expected new majors plus EOL openSUSE Leap 15.6; the operational-failure
          path exits 2 and writes no sentinel.\n- flake8 / black / mypy / yamllint
          clean.\n\n## Notes\n\nIndependent of the `update.py` cleanup/refactor work.
          The `gh`-issue reconciliation is only fully exercised on a real scheduled
          run.\n\nSurfaces the kind of drift tracked in:\n\n- osism/issues#1417\n\n\U0001F916
          Generated with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/openstack-image-manager/pull/1256
        commit_id: a7240b2d07d1a2ad9aa5baab0d688fd8c3752df9
        patchset: a7240b2d07d1a2ad9aa5baab0d688fd8c3752df9
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/openstack-image-manager
          name: osism/openstack-image-manager
          short_name: openstack-image-manager
        src_dir: src/github.com/osism/openstack-image-manager
        topic: null
      change: '1256'
      change_message: "Add detect-and-flag job for pending image-catalog updates\n\n##
        What\n\nA scheduled, read-only job that compares the image catalog against
        endoflife.date and flags \u2014 in a single auto-maintained GitHub issue \u2014
        supported upstream majors the catalog does not define yet, and enabled images
        that are past end of life.\n\n- `contrib/check_updates.py` \u2014 reads `etc/images/*.yml`,
        queries endoflife.date per distribution, and reports new majors + end-of-life
        images. Pure evaluation logic with a three-state exit contract (`0` clean
        / `1` findings / `2` operational failure) and a `status.txt` completion sentinel
        written last, so a crash or fetch error can never be mistaken for \"clean\"
        (which would wrongly close the issue).\n- `.github/workflows/check-updates.yml`
        \u2014 runs weekly, reconciles one issue (label `pending-image-updates`) off
        the sentinel: create/update on findings, close when clean, and leave the issue
        untouched on operational failure.\n- Per-distribution EOL semantics: Debian
        is evaluated on `extendedSupport` (its free community LTS), everyone else
        on `eol` (Ubuntu's `extendedSupport` is paid ESM), so LTS-active Debian releases
        are not wrongly flagged.\n\n## Testing\n\n- `tox -e test -- test/unit test_check_updates.py`
        \u2014 19 tests: Ubuntu LTS filter, openSUSE both-signals, clean distro, disabled-not-EOL,
        future-release, boolean `eol`, data-integrity validation \u2192 exit 2, completion
        sentinel, markdown render.\n- Verified live against endoflife.date: reports
        the expected new majors plus EOL openSUSE Leap 15.6; the operational-failure
        path exits 2 and writes no sentinel.\n- flake8 / black / mypy / yamllint clean.\n\n##
        Notes\n\nIndependent of the `update.py` cleanup/refactor work. The `gh`-issue
        reconciliation is only fully exercised on a real scheduled run.\n\nSurfaces
        the kind of drift tracked in:\n\n- osism/issues#1417\n\n\U0001F916 Generated
        with [Claude Code](https://claude.com/claude-code)"
      change_url: https://github.com/osism/openstack-image-manager/pull/1256
      child_jobs: []
      commit_id: a7240b2d07d1a2ad9aa5baab0d688fd8c3752df9
      event_id: ff44dd90-841c-11f1-885c-0e8ae01d4a0c
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/0eba30975c6f4628b89df284d16cdb21/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/0eba30975c6f4628b89df284d16cdb21/work/logs
        result_data_file: /var/lib/zuul/builds/0eba30975c6f4628b89df284d16cdb21/work/results.json
        src_root: /var/lib/zuul/builds/0eba30975c6f4628b89df284d16cdb21/work/src
        work_root: /var/lib/zuul/builds/0eba30975c6f4628b89df284d16cdb21/work
      include_vars: []
      items:
      - branch: main
        change: '1256'
        change_message: "Add detect-and-flag job for pending image-catalog updates\n\n##
          What\n\nA scheduled, read-only job that compares the image catalog against
          endoflife.date and flags \u2014 in a single auto-maintained GitHub issue
          \u2014 supported upstream majors the catalog does not define yet, and enabled
          images that are past end of life.\n\n- `contrib/check_updates.py` \u2014
          reads `etc/images/*.yml`, queries endoflife.date per distribution, and reports
          new majors + end-of-life images. Pure evaluation logic with a three-state
          exit contract (`0` clean / `1` findings / `2` operational failure) and a
          `status.txt` completion sentinel written last, so a crash or fetch error
          can never be mistaken for \"clean\" (which would wrongly close the issue).\n-
          `.github/workflows/check-updates.yml` \u2014 runs weekly, reconciles one
          issue (label `pending-image-updates`) off the sentinel: create/update on
          findings, close when clean, and leave the issue untouched on operational
          failure.\n- Per-distribution EOL semantics: Debian is evaluated on `extendedSupport`
          (its free community LTS), everyone else on `eol` (Ubuntu's `extendedSupport`
          is paid ESM), so LTS-active Debian releases are not wrongly flagged.\n\n##
          Testing\n\n- `tox -e test -- test/unit test_check_updates.py` \u2014 19
          tests: Ubuntu LTS filter, openSUSE both-signals, clean distro, disabled-not-EOL,
          future-release, boolean `eol`, data-integrity validation \u2192 exit 2,
          completion sentinel, markdown render.\n- Verified live against endoflife.date:
          reports the expected new majors plus EOL openSUSE Leap 15.6; the operational-failure
          path exits 2 and writes no sentinel.\n- flake8 / black / mypy / yamllint
          clean.\n\n## Notes\n\nIndependent of the `update.py` cleanup/refactor work.
          The `gh`-issue reconciliation is only fully exercised on a real scheduled
          run.\n\nSurfaces the kind of drift tracked in:\n\n- osism/issues#1417\n\n\U0001F916
          Generated with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/openstack-image-manager/pull/1256
        commit_id: a7240b2d07d1a2ad9aa5baab0d688fd8c3752df9
        patchset: a7240b2d07d1a2ad9aa5baab0d688fd8c3752df9
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/openstack-image-manager
          name: osism/openstack-image-manager
          short_name: openstack-image-manager
          src_dir: src/github.com/osism/openstack-image-manager
        topic: null
      job: mypy
      jobtags: []
      max_attempts: 3
      message: QWRkIGRldGVjdC1hbmQtZmxhZyBqb2IgZm9yIHBlbmRpbmcgaW1hZ2UtY2F0YWxvZyB1cGRhdGVzCgojIyBXaGF0CgpBIHNjaGVkdWxlZCwgcmVhZC1vbmx5IGpvYiB0aGF0IGNvbXBhcmVzIHRoZSBpbWFnZSBjYXRhbG9nIGFnYWluc3QgZW5kb2ZsaWZlLmRhdGUgYW5kIGZsYWdzIOKAlCBpbiBhIHNpbmdsZSBhdXRvLW1haW50YWluZWQgR2l0SHViIGlzc3VlIOKAlCBzdXBwb3J0ZWQgdXBzdHJlYW0gbWFqb3JzIHRoZSBjYXRhbG9nIGRvZXMgbm90IGRlZmluZSB5ZXQsIGFuZCBlbmFibGVkIGltYWdlcyB0aGF0IGFyZSBwYXN0IGVuZCBvZiBsaWZlLgoKLSBgY29udHJpYi9jaGVja191cGRhdGVzLnB5YCDigJQgcmVhZHMgYGV0Yy9pbWFnZXMvKi55bWxgLCBxdWVyaWVzIGVuZG9mbGlmZS5kYXRlIHBlciBkaXN0cmlidXRpb24sIGFuZCByZXBvcnRzIG5ldyBtYWpvcnMgKyBlbmQtb2YtbGlmZSBpbWFnZXMuIFB1cmUgZXZhbHVhdGlvbiBsb2dpYyB3aXRoIGEgdGhyZWUtc3RhdGUgZXhpdCBjb250cmFjdCAoYDBgIGNsZWFuIC8gYDFgIGZpbmRpbmdzIC8gYDJgIG9wZXJhdGlvbmFsIGZhaWx1cmUpIGFuZCBhIGBzdGF0dXMudHh0YCBjb21wbGV0aW9uIHNlbnRpbmVsIHdyaXR0ZW4gbGFzdCwgc28gYSBjcmFzaCBvciBmZXRjaCBlcnJvciBjYW4gbmV2ZXIgYmUgbWlzdGFrZW4gZm9yICJjbGVhbiIgKHdoaWNoIHdvdWxkIHdyb25nbHkgY2xvc2UgdGhlIGlzc3VlKS4KLSBgLmdpdGh1Yi93b3JrZmxvd3MvY2hlY2stdXBkYXRlcy55bWxgIOKAlCBydW5zIHdlZWtseSwgcmVjb25jaWxlcyBvbmUgaXNzdWUgKGxhYmVsIGBwZW5kaW5nLWltYWdlLXVwZGF0ZXNgKSBvZmYgdGhlIHNlbnRpbmVsOiBjcmVhdGUvdXBkYXRlIG9uIGZpbmRpbmdzLCBjbG9zZSB3aGVuIGNsZWFuLCBhbmQgbGVhdmUgdGhlIGlzc3VlIHVudG91Y2hlZCBvbiBvcGVyYXRpb25hbCBmYWlsdXJlLgotIFBlci1kaXN0cmlidXRpb24gRU9MIHNlbWFudGljczogRGViaWFuIGlzIGV2YWx1YXRlZCBvbiBgZXh0ZW5kZWRTdXBwb3J0YCAoaXRzIGZyZWUgY29tbXVuaXR5IExUUyksIGV2ZXJ5b25lIGVsc2Ugb24gYGVvbGAgKFVidW50dSdzIGBleHRlbmRlZFN1cHBvcnRgIGlzIHBhaWQgRVNNKSwgc28gTFRTLWFjdGl2ZSBEZWJpYW4gcmVsZWFzZXMgYXJlIG5vdCB3cm9uZ2x5IGZsYWdnZWQuCgojIyBUZXN0aW5nCgotIGB0b3ggLWUgdGVzdCAtLSB0ZXN0L3VuaXQgdGVzdF9jaGVja191cGRhdGVzLnB5YCDigJQgMTkgdGVzdHM6IFVidW50dSBMVFMgZmlsdGVyLCBvcGVuU1VTRSBib3RoLXNpZ25hbHMsIGNsZWFuIGRpc3RybywgZGlzYWJsZWQtbm90LUVPTCwgZnV0dXJlLXJlbGVhc2UsIGJvb2xlYW4gYGVvbGAsIGRhdGEtaW50ZWdyaXR5IHZhbGlkYXRpb24g4oaSIGV4aXQgMiwgY29tcGxldGlvbiBzZW50aW5lbCwgbWFya2Rvd24gcmVuZGVyLgotIFZlcmlmaWVkIGxpdmUgYWdhaW5zdCBlbmRvZmxpZmUuZGF0ZTogcmVwb3J0cyB0aGUgZXhwZWN0ZWQgbmV3IG1ham9ycyBwbHVzIEVPTCBvcGVuU1VTRSBMZWFwIDE1LjY7IHRoZSBvcGVyYXRpb25hbC1mYWlsdXJlIHBhdGggZXhpdHMgMiBhbmQgd3JpdGVzIG5vIHNlbnRpbmVsLgotIGZsYWtlOCAvIGJsYWNrIC8gbXlweSAvIHlhbWxsaW50IGNsZWFuLgoKIyMgTm90ZXMKCkluZGVwZW5kZW50IG9mIHRoZSBgdXBkYXRlLnB5YCBjbGVhbnVwL3JlZmFjdG9yIHdvcmsuIFRoZSBgZ2hgLWlzc3VlIHJlY29uY2lsaWF0aW9uIGlzIG9ubHkgZnVsbHkgZXhlcmNpc2VkIG9uIGEgcmVhbCBzY2hlZHVsZWQgcnVuLgoKU3VyZmFjZXMgdGhlIGtpbmQgb2YgZHJpZnQgdHJhY2tlZCBpbjoKCi0gb3Npc20vaXNzdWVzIzE0MTcKCvCfpJYgR2VuZXJhdGVkIHdpdGggW0NsYXVkZSBDb2RlXShodHRwczovL2NsYXVkZS5jb20vY2xhdWRlLWNvZGUp
      patchset: a7240b2d07d1a2ad9aa5baab0d688fd8c3752df9
      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/mypy/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/openstack-image-manager
        name: osism/openstack-image-manager
        short_name: openstack-image-manager
        src_dir: src/github.com/osism/openstack-image-manager
      projects:
        github.com/osism/openstack-image-manager:
          canonical_hostname: github.com
          canonical_name: github.com/osism/openstack-image-manager
          checkout: main
          checkout_description: zuul branch
          commit: 7fc27d9df47f3b18788a1d60517611378f21d902
          name: osism/openstack-image-manager
          required: false
          short_name: openstack-image-manager
          src_dir: src/github.com/osism/openstack-image-manager
      ref: refs/pull/1256/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
