all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fed2:50c
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 16a0e64c-0210-4daa-8803-da61bf538e3c
        host_id: df70f2a3f3d0c26428f22685cfc722ebc48099d99e7332c39e017195
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fed2:50c
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.7.241
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.193.53
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fed2:50c
        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 hadolint explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-jobs/.zuul.yaml@main#37>'
      - '<Job hadolint explicit: None implied: None source: osism/container-images/.zuul.yaml@main#2>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 9d3150dcc7f041528bbf71c349dd543a
      build_refs:
      - branch: main
        change: '945'
        change_message: "tempest: restore hosts disabled by affinity test\n\n## What\n\nAdd
          a patch step to the tempest image build (`files/patches/*.patch` applied\nafter
          the pip install, `patch --forward --dry-run` gated) and a first patch\nfixing
          an unfixed-upstream tempest bug.\n\n## Why\n\n`ServersAffinityTest.resource_setup()`
          disables all-but-two nova-compute\nservices to build a controlled scheduling
          environment, but never re-enables\nthem: there is no `resource_cleanup`/`addClassResourceCleanup`
          for the\nsetup-disabled hosts (the only re-enable is the per-test\n`_disable_compute_host`
          `addCleanup`). Every run of this class therefore leaks\na permanently-disabled
          compute service.\n\nOn a three-compute cloud it leaves exactly one host
          disabled after the class\nfinishes, which silently breaks workloads that
          need all hosts \u2014 notably\nOctavia `ACTIVE_STANDBY` + anti-affinity
          load balancer failover, which needs a\nthird enabled host for the replacement
          amphora and otherwise fails with\n`NoValidHost`.\n\nThe bug is present on
          tempest master as of 46.3.0; no upstream fix exists yet.\n\n## How\n\nThe
          patch registers each setup disable with `addClassResourceCleanup` so the\nhost
          is re-enabled at class teardown, preserving the test's coverage.\n\nThe
          patch step is **self-expiring**: applied with `patch --forward --dry-run`\nfirst,
          so when `requirements.txt` bumps tempest to a release that fixes this\nupstream
          the patch stops applying, the build fails, and the stale patch must be\ndeleted.\n\n##
          Validation\n\nBuilt the patched image and ran the full `ServersAffinityTest`
          class serially\nagainst it: **7/7 passed**, and **all three nova-compute
          hosts stayed enabled**\nafterward (baseline was three enabled; the unpatched
          class leaves one disabled).\n\n## Follow-up\n\n- [ ] File the upstream tempest
          bug (this patch is a local carry until then).\n\n\U0001F916 Generated with
          [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/container-images/pull/945
        commit_id: b9710b4c6b39decc895e63820da8b56c682e9183
        patchset: b9710b4c6b39decc895e63820da8b56c682e9183
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-images
          name: osism/container-images
          short_name: container-images
        src_dir: src/github.com/osism/container-images
        topic: null
      buildset: eb3daf8c2ae447c48a70d5d55185fb63
      buildset_refs:
      - branch: main
        change: '945'
        change_message: "tempest: restore hosts disabled by affinity test\n\n## What\n\nAdd
          a patch step to the tempest image build (`files/patches/*.patch` applied\nafter
          the pip install, `patch --forward --dry-run` gated) and a first patch\nfixing
          an unfixed-upstream tempest bug.\n\n## Why\n\n`ServersAffinityTest.resource_setup()`
          disables all-but-two nova-compute\nservices to build a controlled scheduling
          environment, but never re-enables\nthem: there is no `resource_cleanup`/`addClassResourceCleanup`
          for the\nsetup-disabled hosts (the only re-enable is the per-test\n`_disable_compute_host`
          `addCleanup`). Every run of this class therefore leaks\na permanently-disabled
          compute service.\n\nOn a three-compute cloud it leaves exactly one host
          disabled after the class\nfinishes, which silently breaks workloads that
          need all hosts \u2014 notably\nOctavia `ACTIVE_STANDBY` + anti-affinity
          load balancer failover, which needs a\nthird enabled host for the replacement
          amphora and otherwise fails with\n`NoValidHost`.\n\nThe bug is present on
          tempest master as of 46.3.0; no upstream fix exists yet.\n\n## How\n\nThe
          patch registers each setup disable with `addClassResourceCleanup` so the\nhost
          is re-enabled at class teardown, preserving the test's coverage.\n\nThe
          patch step is **self-expiring**: applied with `patch --forward --dry-run`\nfirst,
          so when `requirements.txt` bumps tempest to a release that fixes this\nupstream
          the patch stops applying, the build fails, and the stale patch must be\ndeleted.\n\n##
          Validation\n\nBuilt the patched image and ran the full `ServersAffinityTest`
          class serially\nagainst it: **7/7 passed**, and **all three nova-compute
          hosts stayed enabled**\nafterward (baseline was three enabled; the unpatched
          class leaves one disabled).\n\n## Follow-up\n\n- [ ] File the upstream tempest
          bug (this patch is a local carry until then).\n\n\U0001F916 Generated with
          [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/container-images/pull/945
        commit_id: b9710b4c6b39decc895e63820da8b56c682e9183
        patchset: b9710b4c6b39decc895e63820da8b56c682e9183
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-images
          name: osism/container-images
          short_name: container-images
        src_dir: src/github.com/osism/container-images
        topic: null
      change: '945'
      change_message: "tempest: restore hosts disabled by affinity test\n\n## What\n\nAdd
        a patch step to the tempest image build (`files/patches/*.patch` applied\nafter
        the pip install, `patch --forward --dry-run` gated) and a first patch\nfixing
        an unfixed-upstream tempest bug.\n\n## Why\n\n`ServersAffinityTest.resource_setup()`
        disables all-but-two nova-compute\nservices to build a controlled scheduling
        environment, but never re-enables\nthem: there is no `resource_cleanup`/`addClassResourceCleanup`
        for the\nsetup-disabled hosts (the only re-enable is the per-test\n`_disable_compute_host`
        `addCleanup`). Every run of this class therefore leaks\na permanently-disabled
        compute service.\n\nOn a three-compute cloud it leaves exactly one host disabled
        after the class\nfinishes, which silently breaks workloads that need all hosts
        \u2014 notably\nOctavia `ACTIVE_STANDBY` + anti-affinity load balancer failover,
        which needs a\nthird enabled host for the replacement amphora and otherwise
        fails with\n`NoValidHost`.\n\nThe bug is present on tempest master as of 46.3.0;
        no upstream fix exists yet.\n\n## How\n\nThe patch registers each setup disable
        with `addClassResourceCleanup` so the\nhost is re-enabled at class teardown,
        preserving the test's coverage.\n\nThe patch step is **self-expiring**: applied
        with `patch --forward --dry-run`\nfirst, so when `requirements.txt` bumps
        tempest to a release that fixes this\nupstream the patch stops applying, the
        build fails, and the stale patch must be\ndeleted.\n\n## Validation\n\nBuilt
        the patched image and ran the full `ServersAffinityTest` class serially\nagainst
        it: **7/7 passed**, and **all three nova-compute hosts stayed enabled**\nafterward
        (baseline was three enabled; the unpatched class leaves one disabled).\n\n##
        Follow-up\n\n- [ ] File the upstream tempest bug (this patch is a local carry
        until then).\n\n\U0001F916 Generated with [Claude Code](https://claude.com/claude-code)"
      change_url: https://github.com/osism/container-images/pull/945
      child_jobs: []
      commit_id: b9710b4c6b39decc895e63820da8b56c682e9183
      event_id: 63a8f520-7c6e-11f1-90ca-6d6d7344f273
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/9d3150dcc7f041528bbf71c349dd543a/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/9d3150dcc7f041528bbf71c349dd543a/work/logs
        result_data_file: /var/lib/zuul/builds/9d3150dcc7f041528bbf71c349dd543a/work/results.json
        src_root: /var/lib/zuul/builds/9d3150dcc7f041528bbf71c349dd543a/work/src
        work_root: /var/lib/zuul/builds/9d3150dcc7f041528bbf71c349dd543a/work
      include_vars: []
      items:
      - branch: main
        change: '945'
        change_message: "tempest: restore hosts disabled by affinity test\n\n## What\n\nAdd
          a patch step to the tempest image build (`files/patches/*.patch` applied\nafter
          the pip install, `patch --forward --dry-run` gated) and a first patch\nfixing
          an unfixed-upstream tempest bug.\n\n## Why\n\n`ServersAffinityTest.resource_setup()`
          disables all-but-two nova-compute\nservices to build a controlled scheduling
          environment, but never re-enables\nthem: there is no `resource_cleanup`/`addClassResourceCleanup`
          for the\nsetup-disabled hosts (the only re-enable is the per-test\n`_disable_compute_host`
          `addCleanup`). Every run of this class therefore leaks\na permanently-disabled
          compute service.\n\nOn a three-compute cloud it leaves exactly one host
          disabled after the class\nfinishes, which silently breaks workloads that
          need all hosts \u2014 notably\nOctavia `ACTIVE_STANDBY` + anti-affinity
          load balancer failover, which needs a\nthird enabled host for the replacement
          amphora and otherwise fails with\n`NoValidHost`.\n\nThe bug is present on
          tempest master as of 46.3.0; no upstream fix exists yet.\n\n## How\n\nThe
          patch registers each setup disable with `addClassResourceCleanup` so the\nhost
          is re-enabled at class teardown, preserving the test's coverage.\n\nThe
          patch step is **self-expiring**: applied with `patch --forward --dry-run`\nfirst,
          so when `requirements.txt` bumps tempest to a release that fixes this\nupstream
          the patch stops applying, the build fails, and the stale patch must be\ndeleted.\n\n##
          Validation\n\nBuilt the patched image and ran the full `ServersAffinityTest`
          class serially\nagainst it: **7/7 passed**, and **all three nova-compute
          hosts stayed enabled**\nafterward (baseline was three enabled; the unpatched
          class leaves one disabled).\n\n## Follow-up\n\n- [ ] File the upstream tempest
          bug (this patch is a local carry until then).\n\n\U0001F916 Generated with
          [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/container-images/pull/945
        commit_id: b9710b4c6b39decc895e63820da8b56c682e9183
        patchset: b9710b4c6b39decc895e63820da8b56c682e9183
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-images
          name: osism/container-images
          short_name: container-images
          src_dir: src/github.com/osism/container-images
        topic: null
      job: hadolint
      jobtags: []
      max_attempts: 3
      message: dGVtcGVzdDogcmVzdG9yZSBob3N0cyBkaXNhYmxlZCBieSBhZmZpbml0eSB0ZXN0CgojIyBXaGF0CgpBZGQgYSBwYXRjaCBzdGVwIHRvIHRoZSB0ZW1wZXN0IGltYWdlIGJ1aWxkIChgZmlsZXMvcGF0Y2hlcy8qLnBhdGNoYCBhcHBsaWVkCmFmdGVyIHRoZSBwaXAgaW5zdGFsbCwgYHBhdGNoIC0tZm9yd2FyZCAtLWRyeS1ydW5gIGdhdGVkKSBhbmQgYSBmaXJzdCBwYXRjaApmaXhpbmcgYW4gdW5maXhlZC11cHN0cmVhbSB0ZW1wZXN0IGJ1Zy4KCiMjIFdoeQoKYFNlcnZlcnNBZmZpbml0eVRlc3QucmVzb3VyY2Vfc2V0dXAoKWAgZGlzYWJsZXMgYWxsLWJ1dC10d28gbm92YS1jb21wdXRlCnNlcnZpY2VzIHRvIGJ1aWxkIGEgY29udHJvbGxlZCBzY2hlZHVsaW5nIGVudmlyb25tZW50LCBidXQgbmV2ZXIgcmUtZW5hYmxlcwp0aGVtOiB0aGVyZSBpcyBubyBgcmVzb3VyY2VfY2xlYW51cGAvYGFkZENsYXNzUmVzb3VyY2VDbGVhbnVwYCBmb3IgdGhlCnNldHVwLWRpc2FibGVkIGhvc3RzICh0aGUgb25seSByZS1lbmFibGUgaXMgdGhlIHBlci10ZXN0CmBfZGlzYWJsZV9jb21wdXRlX2hvc3RgIGBhZGRDbGVhbnVwYCkuIEV2ZXJ5IHJ1biBvZiB0aGlzIGNsYXNzIHRoZXJlZm9yZSBsZWFrcwphIHBlcm1hbmVudGx5LWRpc2FibGVkIGNvbXB1dGUgc2VydmljZS4KCk9uIGEgdGhyZWUtY29tcHV0ZSBjbG91ZCBpdCBsZWF2ZXMgZXhhY3RseSBvbmUgaG9zdCBkaXNhYmxlZCBhZnRlciB0aGUgY2xhc3MKZmluaXNoZXMsIHdoaWNoIHNpbGVudGx5IGJyZWFrcyB3b3JrbG9hZHMgdGhhdCBuZWVkIGFsbCBob3N0cyDigJQgbm90YWJseQpPY3RhdmlhIGBBQ1RJVkVfU1RBTkRCWWAgKyBhbnRpLWFmZmluaXR5IGxvYWQgYmFsYW5jZXIgZmFpbG92ZXIsIHdoaWNoIG5lZWRzIGEKdGhpcmQgZW5hYmxlZCBob3N0IGZvciB0aGUgcmVwbGFjZW1lbnQgYW1waG9yYSBhbmQgb3RoZXJ3aXNlIGZhaWxzIHdpdGgKYE5vVmFsaWRIb3N0YC4KClRoZSBidWcgaXMgcHJlc2VudCBvbiB0ZW1wZXN0IG1hc3RlciBhcyBvZiA0Ni4zLjA7IG5vIHVwc3RyZWFtIGZpeCBleGlzdHMgeWV0LgoKIyMgSG93CgpUaGUgcGF0Y2ggcmVnaXN0ZXJzIGVhY2ggc2V0dXAgZGlzYWJsZSB3aXRoIGBhZGRDbGFzc1Jlc291cmNlQ2xlYW51cGAgc28gdGhlCmhvc3QgaXMgcmUtZW5hYmxlZCBhdCBjbGFzcyB0ZWFyZG93biwgcHJlc2VydmluZyB0aGUgdGVzdCdzIGNvdmVyYWdlLgoKVGhlIHBhdGNoIHN0ZXAgaXMgKipzZWxmLWV4cGlyaW5nKio6IGFwcGxpZWQgd2l0aCBgcGF0Y2ggLS1mb3J3YXJkIC0tZHJ5LXJ1bmAKZmlyc3QsIHNvIHdoZW4gYHJlcXVpcmVtZW50cy50eHRgIGJ1bXBzIHRlbXBlc3QgdG8gYSByZWxlYXNlIHRoYXQgZml4ZXMgdGhpcwp1cHN0cmVhbSB0aGUgcGF0Y2ggc3RvcHMgYXBwbHlpbmcsIHRoZSBidWlsZCBmYWlscywgYW5kIHRoZSBzdGFsZSBwYXRjaCBtdXN0IGJlCmRlbGV0ZWQuCgojIyBWYWxpZGF0aW9uCgpCdWlsdCB0aGUgcGF0Y2hlZCBpbWFnZSBhbmQgcmFuIHRoZSBmdWxsIGBTZXJ2ZXJzQWZmaW5pdHlUZXN0YCBjbGFzcyBzZXJpYWxseQphZ2FpbnN0IGl0OiAqKjcvNyBwYXNzZWQqKiwgYW5kICoqYWxsIHRocmVlIG5vdmEtY29tcHV0ZSBob3N0cyBzdGF5ZWQgZW5hYmxlZCoqCmFmdGVyd2FyZCAoYmFzZWxpbmUgd2FzIHRocmVlIGVuYWJsZWQ7IHRoZSB1bnBhdGNoZWQgY2xhc3MgbGVhdmVzIG9uZSBkaXNhYmxlZCkuCgojIyBGb2xsb3ctdXAKCi0gWyBdIEZpbGUgdGhlIHVwc3RyZWFtIHRlbXBlc3QgYnVnICh0aGlzIHBhdGNoIGlzIGEgbG9jYWwgY2FycnkgdW50aWwgdGhlbikuCgrwn6SWIEdlbmVyYXRlZCB3aXRoIFtDbGF1ZGUgQ29kZV0oaHR0cHM6Ly9jbGF1ZGUuY29tL2NsYXVkZS1jb2RlKQ==
      patchset: b9710b4c6b39decc895e63820da8b56c682e9183
      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/hadolint/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/container-images
        name: osism/container-images
        short_name: container-images
        src_dir: src/github.com/osism/container-images
      projects:
        github.com/osism/container-images:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-images
          checkout: main
          checkout_description: zuul branch
          commit: 614787e423e20892419d30474ee51b262a83d02f
          name: osism/container-images
          required: false
          short_name: container-images
          src_dir: src/github.com/osism/container-images
      ref: refs/pull/945/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
