)]}'
{"id":"openstack%2Foctavia~983869","triplet_id":"openstack%2Foctavia~master~Icc851038605899b45331759be635d4005f544ef7","project":"openstack/octavia","branch":"master","attention_set":{"27140":{"account":{"_account_id":27140,"name":"Chris Breu","display_name":"Chris Breu","email":"chris.breu@rackspace.com","username":"rackerchris"},"last_update":"2026-05-28 22:44:09.000000000","reason":"A robot voted negatively on a label"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"Icc851038605899b45331759be635d4005f544ef7","subject":"Add MAINT load balancer maintenance mode behavior","status":"NEW","created":"2026-04-09 13:50:16.000000000","updated":"2026-05-29 02:33:47.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"f4cf6a1bbec96d0c60c50ed33567aab03236e6b4","_number":983869,"virtual_id_number":983869,"owner":{"_account_id":27140,"name":"Chris Breu","display_name":"Chris Breu","email":"chris.breu@rackspace.com","username":"rackerchris"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-05-29 02:33:47.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Backport-Candidate":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do Not Backport","-1":"Not A Backport Candidate"," 0":"Backport Review Needed","+1":"Proposed Backport","+2":"Should Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"CC":[{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-04-09 17:24:53.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-05-27 06:43:27.000000000","updated_by":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"reviewer":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"state":"CC"}],"messages":[{"id":"37b96d6ddc9465947926f4e7667acf85b009696b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":27140,"name":"Chris Breu","display_name":"Chris Breu","email":"chris.breu@rackspace.com","username":"rackerchris"},"date":"2026-04-09 13:50:16.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"a9186dbf23ceef690369516751073387691e5f69","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":27140,"name":"Chris Breu","display_name":"Chris Breu","email":"chris.breu@rackspace.com","username":"rackerchris"},"date":"2026-04-09 13:51:49.000000000","message":"Uploaded patch set 2: Commit message was updated.","accounts_in_message":[],"_revision_number":2},{"id":"b7b25061be896b5cd495286369b05af354e68e85","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":27140,"name":"Chris Breu","display_name":"Chris Breu","email":"chris.breu@rackspace.com","username":"rackerchris"},"date":"2026-04-09 14:47:46.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"94330ccd3bcf7a18a191c37bd096844a0a520203","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-09 17:24:53.000000000","message":"Patch Set 3: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/cbacd14dbb554b87898fac02b68ac41d\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/60942c42a2f04f039ea15a8fa5524888 : SUCCESS in 10m 24s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c80f5ad732394f1ea86ababf0a5bf690 : FAILURE in 4m 44s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/10c269744862414bb3e455a44bf52d27 : SUCCESS in 6m 17s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/b751d401561440908de7e809e80c7ac6 : SUCCESS in 7m 10s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/4ee26194fff14d62986822d18f1d13e8 : SUCCESS in 4m 32s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3862b46f49684b13b6ebf767b308743e : FAILURE in 4m 43s\n- octavia-tox-py313-tips https://zuul.opendev.org/t/openstack/build/01824f405be842848e0c68127b15ede9 : SUCCESS in 5m 54s\n- octavia-tox-functional-py313-tips https://zuul.opendev.org/t/openstack/build/61ac59d0933e48699ce6eb7d2d083c16 : SUCCESS in 8m 13s\n- openstack-tox-pip-check-reqs https://zuul.opendev.org/t/openstack/build/8d722468f44c485fb70ff657b9c389be : SUCCESS in 3m 28s\n- openstack-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/29159dfa09704b50b3b7a135b80d406f : SUCCESS in 4m 07s\n- openstack-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/b43735c9c4ef4422b916fb3552565173 : SUCCESS in 9m 25s\n- octavia-v2-dsvm-noop-api https://zuul.opendev.org/t/openstack/build/a44311fa590b4e3f859e54f9f0d55486 : FAILURE in 1h 26m 11s\n- octavia-v2-dsvm-scenario-traffic-ops https://zuul.opendev.org/t/openstack/build/9340341a22634ddf8ee546192e899bec : SUCCESS in 1h 34m 45s\n- octavia-v2-dsvm-scenario-non-traffic-ops https://zuul.opendev.org/t/openstack/build/d2cec0cd72424cd5b430417d0b8f34ea : SUCCESS in 1h 12m 03s\n- octavia-v2-dsvm-scenario-traffic-ops-jobboard https://zuul.opendev.org/t/openstack/build/a91de9f4b87142cead876107867dbccb : SUCCESS in 1h 38m 47s\n- octavia-v2-dsvm-scenario-non-traffic-ops-jobboard https://zuul.opendev.org/t/openstack/build/7786e104477e42e2ae9f34370df5cda2 : SUCCESS in 1h 04m 09s\n- octavia-v2-dsvm-tls-barbican https://zuul.opendev.org/t/openstack/build/c77fad16f25c4c438d356eb8b7d21de4 : SUCCESS in 43m 41s\n- octavia-grenade https://zuul.opendev.org/t/openstack/build/cd1c086743bb4cdab579a3c14487da6d : SUCCESS in 41m 36s\n- octavia-grenade-skip-level https://zuul.opendev.org/t/openstack/build/d8ee8f2f30e047f9ba04b1ae8b4bcb2f : SUCCESS in 49m 50s\n- octavia-v2-act-stdby-dsvm-scenario https://zuul.opendev.org/t/openstack/build/cc98e17ec82e41d387d6481ebc47a576 : SUCCESS in 33m 20s (non-voting)\n- octavia-v2-dsvm-cinder-amphora https://zuul.opendev.org/t/openstack/build/42fc349a4e8b43a7b32ea27f2e5d6f5e : SUCCESS in 36m 42s (non-voting)\n- octavia-v2-dsvm-scenario-two-node https://zuul.opendev.org/t/openstack/build/f28b3f846514483a815ea931ba24030e : SUCCESS in 2h 35m 33s (non-voting)\n- octavia-v2-dsvm-scenario-ipv6-only https://zuul.opendev.org/t/openstack/build/d22e05b5ea7947158adb7e8fd5b35446 : SUCCESS in 1h 32m 42s (non-voting)\n- octavia-v2-dsvm-scenario-centos-10-stream-traffic-ops https://zuul.opendev.org/t/openstack/build/f8b02586df7b494e8b91156e316935a5 : SUCCESS in 1h 28m 34s (non-voting)\n- octavia-v2-dsvm-scenario-centos-10-stream-non-traffic-ops https://zuul.opendev.org/t/openstack/build/9a02d78d0e3b49c6af62e62641364db9 : SUCCESS in 1h 01m 03s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"d5094e731e363eb440454bba20bb860a56826821","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":27140,"name":"Chris Breu","display_name":"Chris Breu","email":"chris.breu@rackspace.com","username":"rackerchris"},"date":"2026-04-09 20:00:23.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":4},{"id":"05c5ace2bf5077673b8e07fec4c50263480dc622","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-09 23:04:48.000000000","message":"Patch Set 4: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/74660f47c23c4aea9e247a858df603c5\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/0d1a24fb19f64d94aca3e9002855f4c9 : SUCCESS in 13m 43s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/52c79712a28e41daa5486740dea70ad0 : SUCCESS in 3m 44s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/91717eda321147de91d68559b1635c7b : SUCCESS in 5m 34s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/42cb4397497c4010ae978a7f8275b3c0 : SUCCESS in 3m 53s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/c7afd0ee3a2a435d970ca60f6ef8e7ed : SUCCESS in 5m 54s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a2a274acbd3d4fc5a32fc6c716e0430a : SUCCESS in 12m 41s\n- octavia-tox-py313-tips https://zuul.opendev.org/t/openstack/build/828fbfe883f54af4a8debe889f91f244 : SUCCESS in 5m 19s\n- octavia-tox-functional-py313-tips https://zuul.opendev.org/t/openstack/build/cd871af145f1479db783ba46f115d5f8 : SUCCESS in 7m 04s\n- openstack-tox-pip-check-reqs https://zuul.opendev.org/t/openstack/build/4cda554029e1435db7a0730c7618e1ff : SUCCESS in 3m 37s\n- openstack-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/8c8d7a9518824c4aa3b7586caa60da4d : SUCCESS in 7m 41s\n- openstack-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/fed0f8b8883c43e2b0be5b3740ca1819 : SUCCESS in 9m 35s\n- octavia-v2-dsvm-noop-api https://zuul.opendev.org/t/openstack/build/f995a177246349ee91c5ccbc958068d1 : SUCCESS in 1h 22m 21s\n- octavia-v2-dsvm-scenario-traffic-ops https://zuul.opendev.org/t/openstack/build/800ae4f2c7554affbdfd1b7a26d2624d : SUCCESS in 1h 37m 06s\n- octavia-v2-dsvm-scenario-non-traffic-ops https://zuul.opendev.org/t/openstack/build/9f8d311fa59f47ba8bfdce2dfbb9a8b3 : SUCCESS in 1h 09m 16s\n- octavia-v2-dsvm-scenario-traffic-ops-jobboard https://zuul.opendev.org/t/openstack/build/14dbb99a1a3449a4b050206dc87cbf50 : SUCCESS in 1h 43m 53s\n- octavia-v2-dsvm-scenario-non-traffic-ops-jobboard https://zuul.opendev.org/t/openstack/build/ac8943ab4f234eb0ad5a1195cc613def : SUCCESS in 1h 08m 46s\n- octavia-v2-dsvm-tls-barbican https://zuul.opendev.org/t/openstack/build/044f5de85a144b33941723719b96124e : SUCCESS in 39m 26s\n- octavia-grenade https://zuul.opendev.org/t/openstack/build/caf07fed8f6f415880c3ec96f3d0b00b : TIMED_OUT in 3h 03m 03s\n- octavia-grenade-skip-level https://zuul.opendev.org/t/openstack/build/f6bee21dfb3d4e7ab0c4338b2e793979 : SUCCESS in 45m 16s\n- octavia-v2-act-stdby-dsvm-scenario https://zuul.opendev.org/t/openstack/build/0766f16f3d7c43bb89aa830ddb2150c6 : SUCCESS in 37m 33s (non-voting)\n- octavia-v2-dsvm-cinder-amphora https://zuul.opendev.org/t/openstack/build/1043ee7ad5c4483bb10b26edda4f1243 : SUCCESS in 38m 41s (non-voting)\n- octavia-v2-dsvm-scenario-two-node https://zuul.opendev.org/t/openstack/build/708770afdb584897aec682f403bf5905 : SUCCESS in 2h 28m 45s (non-voting)\n- octavia-v2-dsvm-scenario-ipv6-only https://zuul.opendev.org/t/openstack/build/458986bd7a9a4471b5a8ed8a7c87f247 : SUCCESS in 1h 36m 50s (non-voting)\n- octavia-v2-dsvm-scenario-centos-10-stream-traffic-ops https://zuul.opendev.org/t/openstack/build/01e62f26344949458e97755830d2c987 : SUCCESS in 1h 28m 11s (non-voting)\n- octavia-v2-dsvm-scenario-centos-10-stream-non-traffic-ops https://zuul.opendev.org/t/openstack/build/015b94f908064ed28261dac9db4e0aa9 : SUCCESS in 1h 07m 11s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"e2bdc0f86004c1085c77443762e580ce227048a9","author":{"_account_id":27140,"name":"Chris Breu","display_name":"Chris Breu","email":"chris.breu@rackspace.com","username":"rackerchris"},"date":"2026-04-10 15:15:48.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"e8a3f1f032d061c27089e16b5b096ec46ef521c8","tag":"autogenerated:claude-review","author":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"date":"2026-05-27 06:43:27.000000000","message":"Patch Set 4:\n\n*DevStack integration tests by claude-sonnet-4-6*\n\n**Tested:** change #983869 PS4\n\n## Tests Run\n\n| Test | Result |\n|------|--------|\n| Set Load Balancer to MAINT State | ✅ PASS |\n| Verify LB Shows MAINT in CLI/API | ✅ PASS |\n| Reject MAINT Combined with Other Attributes | ✅ PASS |\n| Reject Invalid provisioning_status Values | ✅ PASS |\n| Normal Updates Blocked While LB in MAINT | ✅ PASS |\n| Restore LB from MAINT to ACTIVE | ✅ PASS |\n| Full ACTIVE → MAINT → ACTIVE Cycle | ✅ PASS |\n| MAINT with Listener — Listener Updates Blocked | ✅ PASS |\n| Normal Operations Resume After Exiting MAINT | ✅ PASS |\n| API Validation Log Verification | ✅ PASS |\n| DB Migration Integrity | ✅ PASS |\n| LB List API Includes Correct Status Field | ✅ PASS |\n\n## Test Results Summary\n\n**Overall Status:** ✅ PASS\n\n**Tests Passed:** 12/12\n**Tests Failed:** 0\n\n**Key Findings:**\n\n1. **DB Migration Required:** The change includes a mandatory Alembic migration (`fa9e6a35d1fa`) that adds `MAINT` to the `provisioning_status` reference table. Without running `octavia-db-manage upgrade head`, the API will return a `(1452, IntegrityError)` FK constraint violation. This is expected and must be documented in deployment notes.\n\n2. **API Validation Works Correctly:** The new `provisioning_status` field in PUT requests is properly validated:\n   - Only `MAINT` and `ACTIVE` are accepted\n   - Cannot be combined with other LB attributes\n   - Returns clear, descriptive 400 errors for invalid inputs\n\n3. **State Machine Enforcement:** MAINT correctly behaves as an \"immutable\" state for downstream operations — listener and pool updates are blocked while the LB is in MAINT, consistent with how PENDING_* states work.\n\n4. **MAINT→ACTIVE Amphora Health Reset:** The DB repository code correctly refreshes `AmphoraHealth.last_update` to `utcnow()` and clears `busy` flags when exiting MAINT, preventing spurious failovers after maintenance windows.\n\n5. **Heartbeat Suppression:** The heartbeat_udp driver correctly skips `operating_status` and health processing updates when the LB is in MAINT state (code review verified; health manager logs showed no spurious updates during testing).\n\n6. **Full Lifecycle Reliable:** The ACTIVE→MAINT→ACTIVE cycle works reliably across multiple iterations.\n\n**Issues Found:**\n\n- **None functional.** One deployment consideration: the DB migration must be run before services are restarted on the new code. The migration is included in the patchset (`fa9e6a35d1fa_add_maint_provisioning_status.py`).\n\n**Recommendations:**\n\n---\n*This report was generated by an AI and may contain errors.*","accounts_in_message":[],"_revision_number":4},{"id":"0e9bfaa5ea71da8697d6a6a3953c377ada4fa22c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":27140,"name":"Chris Breu","display_name":"Chris Breu","email":"chris.breu@rackspace.com","username":"rackerchris"},"date":"2026-05-27 20:41:14.000000000","message":"Uploaded patch set 5.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":5},{"id":"d25827d2a57ad9ecc88fac54eee5089d2dd6b901","tag":"autogenerated:claude-review","author":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"date":"2026-05-27 21:07:13.000000000","message":"Patch Set 5:\n\n*CI analysis by claude-sonnet-4-6*\n\n## Overall Recommendation\n\n**Action Required:** CODE FIX REQUIRED\n\nAll three failing jobs share an identical root cause: the MAINT provisioning status feature introduced by this patchset has implementation gaps that its own functional tests expose. Two specific issues must be fixed: (1) the load balancer state machine must be updated to permit the MAINT → ACTIVE transition (currently rejected with 409), and (2) input validation must be added to reject `provisioning_status\u003dERROR` and to reject mixed-field requests that combine `provisioning_status\u003dMAINT` with other LB fields. A re-run without code changes will not resolve these failures — they are deterministic and content-driven, not infrastructure flaps.\n\n### Jobs Requiring Code Fix\n\n- **openstack-tox-functional-py313** — Fix MAINT → ACTIVE state machine transition and add input validation for invalid/mixed provisioning status requests in the LB API handler (`octavia/api/v2/types/load_balancer.py` and the state machine/handler code).\n- **openstack-tox-cover** — Same fix; no separate action needed.\n- **octavia-tox-functional-py313-tips** — Same fix; no separate action needed.\n\n### Jobs That Can Be Re-Run\n\nNone. All failures are CODE_ISSUE and require a code fix before re-running.\n\n## Failing Jobs\n\n| Field | Value |\n|-------|-------|\n| Gerrit Change | [openstack/octavia #983869](https://review.opendev.org/c/openstack/octavia/+/983869) |\n| Patchset | 5 |\n| Pipeline | check |\n| Total Failing Jobs | 3 |\n| Analysis Date | 2026-05-27 21:00:37 UTC |\n\n---\n*This analysis was generated by an AI and may contain errors.*","accounts_in_message":[],"_revision_number":5},{"id":"16c9a56a7ed3d9e3a5199c872348a07cdfc36aa0","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-27 22:51:23.000000000","message":"Patch Set 5: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/6c12ef30de1e40afb13999e4f4c45224\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/f5628e4d0e8243a1a01242c7bcea7da4 : FAILURE in 8m 46s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ffe0b15524bc4a8381a2f651ada3912a : SUCCESS in 6m 06s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/c1d14240c7184c4d89eca3a781346f42 : SUCCESS in 4m 30s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/eb5901e014ff4443a85dc762f3ea9e45 : SUCCESS in 4m 07s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/ca8b79e660344828868fa1bae93f5c46 : SUCCESS in 7m 58s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/314e4ec5ed6948f09c52a507d1df824d : SUCCESS in 13m 28s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/c3635a0f5c5e49a5bba1b0cbe1fe3760 : SUCCESS in 9m 13s\n- octavia-tox-py313-tips https://zuul.opendev.org/t/openstack/build/96b2c3864365436ba4d31e37e5533540 : SUCCESS in 4m 10s\n- octavia-tox-functional-py313-tips https://zuul.opendev.org/t/openstack/build/837850aecb224d77b81f41bf6b1a7d03 : FAILURE in 6m 53s\n- openstack-tox-pip-check-reqs https://zuul.opendev.org/t/openstack/build/e7aa5c7c4d494a41a6eae478c4758b17 : SUCCESS in 3m 25s\n- openstack-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/44c470972815440493c09d040e1ace78 : FAILURE in 6m 51s\n- octavia-v2-dsvm-noop-api https://zuul.opendev.org/t/openstack/build/967dbf5298484f5da3b86bf97d1ca0eb : SUCCESS in 48m 48s\n- octavia-v2-dsvm-scenario-traffic-ops https://zuul.opendev.org/t/openstack/build/a4a73aa263b54a71bf184e37ad99d8f8 : SUCCESS in 1h 33m 38s\n- octavia-v2-dsvm-scenario-non-traffic-ops https://zuul.opendev.org/t/openstack/build/ffa24a97c03d48cd9cd47543b6d0302f : SUCCESS in 57m 18s\n- octavia-v2-dsvm-scenario-traffic-ops-jobboard https://zuul.opendev.org/t/openstack/build/57997f354ed44225bbd9cb757b3ae890 : SUCCESS in 1h 35m 34s\n- octavia-v2-dsvm-scenario-non-traffic-ops-jobboard https://zuul.opendev.org/t/openstack/build/64d3ce08979145f5b63372ee36115a22 : SUCCESS in 1h 08m 11s\n- octavia-v2-dsvm-tls-barbican https://zuul.opendev.org/t/openstack/build/f32e7af18a594fcda06dbb8a7b66c4ae : SUCCESS in 36m 18s\n- octavia-grenade https://zuul.opendev.org/t/openstack/build/21acd7463c17428c8505102c221a8dfe : SUCCESS in 51m 16s\n- octavia-grenade-skip-level https://zuul.opendev.org/t/openstack/build/c015ce16db05465fbf3ea69217b1951b : SUCCESS in 48m 24s\n- octavia-v2-act-stdby-dsvm-scenario https://zuul.opendev.org/t/openstack/build/672766804040492a9f333914a51f462b : SUCCESS in 37m 42s (non-voting)\n- octavia-v2-dsvm-cinder-amphora https://zuul.opendev.org/t/openstack/build/f291802d2b5445fc858db279de138414 : SUCCESS in 40m 48s (non-voting)\n- octavia-v2-dsvm-scenario-two-node https://zuul.opendev.org/t/openstack/build/713ec28bece449d990b9ada85ba2cec7 : SUCCESS in 2h 08m 47s (non-voting)\n- octavia-v2-dsvm-scenario-ipv6-only https://zuul.opendev.org/t/openstack/build/2833eee545c44d78b61cdd25f7b2006b : SUCCESS in 1h 28m 11s (non-voting)\n- octavia-v2-dsvm-scenario-centos-10-stream-traffic-ops https://zuul.opendev.org/t/openstack/build/8dc7120f0ec7468cae2abe94cf5a8a37 : SUCCESS in 1h 21m 35s (non-voting)\n- octavia-v2-dsvm-scenario-centos-10-stream-non-traffic-ops https://zuul.opendev.org/t/openstack/build/503bf17374af48ccb41ae889536a21ec : SUCCESS in 1h 08m 04s (non-voting)","accounts_in_message":[],"_revision_number":5},{"id":"faa775eb19f21dfa92267d688dcee22b284d1250","tag":"autogenerated:claude-review","author":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"date":"2026-05-28 09:44:30.000000000","message":"Patch Set 5:\n\n*DevStack integration tests by claude-sonnet-4-6*\n\n**Tested:** change #983869 PS4\n\n## Tests Run\n\n| Test | Result |\n|------|--------|\n| DB Migration | ✅ PASS |\n| Set MAINT State via API | ✅ PASS |\n| MAINT State Visible via CLI | ✅ PASS |\n| Block Normal Updates While in MAINT | ✅ PASS |\n| Reject Combined provisioning_status + Other Fields | ✅ PASS |\n| Reject Invalid provisioning_status Value | ✅ PASS |\n| Exit MAINT State Back to ACTIVE | ✅ PASS |\n| Idempotent ACTIVE→ACTIVE Transition | ✅ PASS |\n| Block Listener Creation While in MAINT | ✅ PASS |\n| Service Health Throughout Testing | ✅ PASS |\n\n## Test Results Summary\n\n**Overall Status:** ✅ PASS\n**Tests Passed:** 10/10\n**Tests Failed:** 0\n\n**Key Findings:**\n- The `MAINT` provisioning state is correctly implemented end-to-end: DB migration, API, repository, and CLI all work as expected.\n- The state machine is properly constrained: `ACTIVE→MAINT`, `MAINT→ACTIVE`, and `ACTIVE→ACTIVE` all succeed; other direct transitions (e.g., `PENDING→MAINT`) are not exposed via the API.\n- Input validation is robust: invalid status values return HTTP 400, combined field updates return HTTP 400, and normal attribute updates while in `MAINT` return HTTP 409.\n- Child resource creation (listeners) is correctly blocked when the parent LB is in `MAINT` state, using the existing immutability check.\n- The heartbeat UDP driver changes (skip operating_status churn and failover while `MAINT`) are present in the code and consistent with the spec, though full failover suppression verification would require a multi-node environment.\n\n**Issues Found:**\n- None\n\n**Recommendations:**\n- None — the change is well-implemented, with thorough test coverage in the accompanying unit and functional tests. Consider adding a functional API test that specifically verifies the 409 response when attempting to create a listener against a `MAINT` LB.\n\n---\n*This report was generated by an AI and may contain errors.*","accounts_in_message":[],"_revision_number":5},{"id":"1d5e49856772b4bcf808dcfd1ed03f9223a09655","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":27140,"name":"Chris Breu","display_name":"Chris Breu","email":"chris.breu@rackspace.com","username":"rackerchris"},"date":"2026-05-28 19:53:19.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":6},{"id":"03d99be82b2f9ea89a1f53f6963a2600e772b00a","tag":"autogenerated:claude-review","author":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"date":"2026-05-28 22:03:44.000000000","message":"Patch Set 6:\n\n*CI analysis by claude-sonnet-4-6*\n\n## Overall Recommendation\n\n**Action Required:** CODE FIX REQUIRED\n\nThe sole failing job, `openstack-tox-pep8`, is a voting job that blocks merge. All three failures are code-quality issues directly introduced by this patchset in `octavia/api/v2/controllers/load_balancer.py`. The most serious is the F821 `undefined name \u0027UnsetType\u0027` error, which indicates a missing import that would also cause a runtime `NameError`. A code fix is required; re-running without a fix will produce the same failures.\n\n### Jobs Requiring Code Fix\n\n- **openstack-tox-pep8** — Fix E127 indentation, O346 backslash continuation, and F821 missing `UnsetType` import in `octavia/api/v2/controllers/load_balancer.py`.\n\n### Jobs That Can Be Re-Run\n\nNone.\n\n## Failing Jobs\n\n| Field | Value |\n|-------|-------|\n| Gerrit Change | [openstack/octavia #983869](https://review.opendev.org/c/openstack/octavia/+/983869) |\n| Patchset | 6 |\n| Pipeline | check |\n| Total Failing Jobs | 1 |\n| Analysis Date | 2026-05-28 23:00:04 UTC |\n\n---\n*This analysis was generated by an AI and may contain errors.*","accounts_in_message":[],"_revision_number":6},{"id":"a061aa04820b4165a4443b3a5fe4f1b157a2e809","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-28 22:44:09.000000000","message":"Patch Set 6: Verified-1\n\n(3 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/3eba241a4eb04122a99384ee53cbe6e5\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/0064832d473441abbf4f8f177642a41a : SUCCESS in 8m 09s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0c427e6994bf481ea0e8568c49c546be : FAILURE in 3m 45s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/d362795b5eb4459bbb1b86ff8aab0134 : SUCCESS in 4m 46s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/8bc3ad7e4a6a463d96a33dea45875c71 : SUCCESS in 3m 41s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/662586bc60544565b2a0d4f6a0b4c7a4 : SUCCESS in 5m 07s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c9652b22d18f4274a2b54065cbc3f190 : SUCCESS in 7m 17s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/b03c592e41db4151b7488b65b61cc934 : SUCCESS in 9m 06s\n- octavia-tox-py313-tips https://zuul.opendev.org/t/openstack/build/e733ee6a5925492293082e4279ad77a1 : SUCCESS in 3m 39s\n- octavia-tox-functional-py313-tips https://zuul.opendev.org/t/openstack/build/41ee3de687a1418dba96cea3982dccab : SUCCESS in 6m 26s\n- openstack-tox-pip-check-reqs https://zuul.opendev.org/t/openstack/build/968422ddfcc64cd68b1489799d918bea : SUCCESS in 4m 10s\n- openstack-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/c348c58cad644271b61b6a82529983d9 : SUCCESS in 6m 06s\n- octavia-v2-dsvm-noop-api https://zuul.opendev.org/t/openstack/build/ffd36537aa1843c3bc8b65628adeeaff : SUCCESS in 1h 04m 30s\n- octavia-v2-dsvm-scenario-traffic-ops https://zuul.opendev.org/t/openstack/build/9bcef14559804b1db258a17cae7c79cc : SUCCESS in 1h 41m 09s\n- octavia-v2-dsvm-scenario-non-traffic-ops https://zuul.opendev.org/t/openstack/build/0bcef427f42e4bf89e8db9d014860955 : SUCCESS in 1h 07m 51s\n- octavia-v2-dsvm-scenario-traffic-ops-jobboard https://zuul.opendev.org/t/openstack/build/68741b4e61784c2c8261d3aea3163595 : SUCCESS in 1h 45m 43s\n- octavia-v2-dsvm-scenario-non-traffic-ops-jobboard https://zuul.opendev.org/t/openstack/build/3e9eaf97f56f4f23a44d492ca91c2a55 : SUCCESS in 1h 08m 28s\n- octavia-v2-dsvm-tls-barbican https://zuul.opendev.org/t/openstack/build/ce51706c68904d54b61212afd81b6083 : SUCCESS in 40m 46s\n- octavia-grenade https://zuul.opendev.org/t/openstack/build/2d05b114372d4ec8a987eb7d78d10b3d : SUCCESS in 45m 34s\n- octavia-grenade-skip-level https://zuul.opendev.org/t/openstack/build/c127cba60639445eb842809137e9543c : SUCCESS in 53m 21s\n- octavia-v2-act-stdby-dsvm-scenario https://zuul.opendev.org/t/openstack/build/53a17d8d74874986b80b2bd89f519c31 : SUCCESS in 37m 32s (non-voting)\n- octavia-v2-dsvm-cinder-amphora https://zuul.opendev.org/t/openstack/build/3c0e4b29096143ccab9a5749a2bf118e : SUCCESS in 33m 51s (non-voting)\n- octavia-v2-dsvm-scenario-two-node https://zuul.opendev.org/t/openstack/build/adaafb6d5cc94a128355cd8f4d8d6eff : SUCCESS in 2h 49m 16s (non-voting)\n- octavia-v2-dsvm-scenario-ipv6-only https://zuul.opendev.org/t/openstack/build/69919d06abf846439f241dfe830eb63c : SUCCESS in 1h 39m 55s (non-voting)\n- octavia-v2-dsvm-scenario-centos-10-stream-traffic-ops https://zuul.opendev.org/t/openstack/build/02e369113a194ac9acf7578dea5703f0 : SUCCESS in 1h 28m 04s (non-voting)\n- octavia-v2-dsvm-scenario-centos-10-stream-non-traffic-ops https://zuul.opendev.org/t/openstack/build/a95eddd7dfda4804916ceee4bfe6017a : SUCCESS in 1h 02m 48s (non-voting)","accounts_in_message":[],"_revision_number":6},{"id":"a335760c7f0331310944cf86561f4c8c10cf272e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":27140,"name":"Chris Breu","display_name":"Chris Breu","email":"chris.breu@rackspace.com","username":"rackerchris"},"date":"2026-05-28 23:51:54.000000000","message":"Uploaded patch set 7.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":7},{"id":"f4cf6a1bbec96d0c60c50ed33567aab03236e6b4","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-29 02:33:47.000000000","message":"Patch Set 7: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0a240a62da4444b4a2ca3b12c1767f87\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/33bdc33bce9b4129a4e93aaee05f9e47 : SUCCESS in 9m 29s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/fa7adda8deec450dbb9226d1b5b82133 : SUCCESS in 4m 36s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/8bc637cf0925452c9be176869ec76c9f : SUCCESS in 4m 27s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/6c559dd01b1e476199a692f91ddcbd90 : SUCCESS in 4m 46s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/89a274182cf3441ca7ae092623ec967e : SUCCESS in 5m 58s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2a093f3a58444d85baff6ff317164964 : SUCCESS in 13m 01s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/aa7a6e0bb8b14a82a5c41c37986921c9 : SUCCESS in 9m 07s\n- octavia-tox-py313-tips https://zuul.opendev.org/t/openstack/build/9480802c90ff437b8a424c1eee07148b : SUCCESS in 5m 26s\n- octavia-tox-functional-py313-tips https://zuul.opendev.org/t/openstack/build/bc92a9d6f44c4e2abfdad4f2b740d55c : SUCCESS in 6m 00s\n- openstack-tox-pip-check-reqs https://zuul.opendev.org/t/openstack/build/ee3130f2e5514beaa4b3616fe6e64b57 : SUCCESS in 2m 51s\n- openstack-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/15ee24fe07474597a524ddff91240d2c : SUCCESS in 5m 41s\n- octavia-v2-dsvm-noop-api https://zuul.opendev.org/t/openstack/build/4c996e4392b14bd0b4730a72bc0bb49c : SUCCESS in 52m 26s\n- octavia-v2-dsvm-scenario-traffic-ops https://zuul.opendev.org/t/openstack/build/a496bf4f8f2f4100a1b2ec04d7e4c242 : SUCCESS in 1h 28m 11s\n- octavia-v2-dsvm-scenario-non-traffic-ops https://zuul.opendev.org/t/openstack/build/ede16fb319c34dd2a59421aa27ccc04c : SUCCESS in 57m 13s\n- octavia-v2-dsvm-scenario-traffic-ops-jobboard https://zuul.opendev.org/t/openstack/build/14d5de8a51794041ab13f04c288b87f7 : SUCCESS in 1h 33m 45s\n- octavia-v2-dsvm-scenario-non-traffic-ops-jobboard https://zuul.opendev.org/t/openstack/build/b5e848752d68432da0581dd1f9108329 : SUCCESS in 1h 00m 35s\n- octavia-v2-dsvm-tls-barbican https://zuul.opendev.org/t/openstack/build/3a1b8aab41ff44bca640afb094fcd22b : SUCCESS in 34m 51s\n- octavia-grenade https://zuul.opendev.org/t/openstack/build/7192f900fe344b0daf109e3b6eef4863 : SUCCESS in 45m 02s\n- octavia-grenade-skip-level https://zuul.opendev.org/t/openstack/build/289171ab30f84df3a187ca169876d1ca : SUCCESS in 49m 24s\n- octavia-v2-act-stdby-dsvm-scenario https://zuul.opendev.org/t/openstack/build/242e013b0fb145f9a8b9a21690d4e4c2 : SUCCESS in 31m 41s (non-voting)\n- octavia-v2-dsvm-cinder-amphora https://zuul.opendev.org/t/openstack/build/3d0aaf9e579d403195a946d82086aae8 : SUCCESS in 33m 34s (non-voting)\n- octavia-v2-dsvm-scenario-two-node https://zuul.opendev.org/t/openstack/build/ef5c80294aab4060959d99d68d9fc92d : SUCCESS in 2h 35m 59s (non-voting)\n- octavia-v2-dsvm-scenario-ipv6-only https://zuul.opendev.org/t/openstack/build/caa3298f1a054dfc83b255b2137f51d1 : SUCCESS in 1h 34m 22s (non-voting)\n- octavia-v2-dsvm-scenario-centos-10-stream-traffic-ops https://zuul.opendev.org/t/openstack/build/cf3ee4521deb44af839218847b7e8932 : SUCCESS in 1h 28m 10s (non-voting)\n- octavia-v2-dsvm-scenario-centos-10-stream-non-traffic-ops https://zuul.opendev.org/t/openstack/build/e14b0b12390748b7b5d322ede8acdc44 : SUCCESS in 1h 04m 01s (non-voting)","accounts_in_message":[],"_revision_number":7}],"current_revision_number":7,"current_revision":"5e208f9a0c92a24c9e1028d78cac18a2b1bfa6c2","revisions":{"1f40b286addeebc40f3c59c828133fa2da41a70c":{"kind":"REWORK","_number":1,"created":"2026-04-09 13:50:16.000000000","uploader":{"_account_id":27140,"name":"Chris Breu","display_name":"Chris Breu","email":"chris.breu@rackspace.com","username":"rackerchris"},"ref":"refs/changes/69/983869/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/octavia","ref":"refs/changes/69/983869/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/octavia refs/changes/69/983869/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/octavia refs/changes/69/983869/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/octavia refs/changes/69/983869/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/octavia refs/changes/69/983869/1"}}},"commit":{"parents":[{"commit":"b2e084e8734255a5a7027fd2b8c7ae6831ce8f2f","subject":"Merge \"Rework unit test for get_subnet failure\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/b2e084e8734255a5a7027fd2b8c7ae6831ce8f2f"}]}],"author":{"name":"Chris Breu","email":"chris.breu@rackspace.com","date":"2026-03-25 22:02:06.000000000","tz":-300},"committer":{"name":"Chris Breu","email":"chris.breu@rackspace.com","date":"2026-04-09 13:49:57.000000000","tz":-300},"subject":"feat: add maint mode provisioning_status","message":"feat: add maint mode provisioning_status\n\nChange-Id: Icc851038605899b45331759be635d4005f544ef7\nSigned-off-by: Chris Breu \u003cchris.breu@rackspace.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/1f40b286addeebc40f3c59c828133fa2da41a70c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/1f40b286addeebc40f3c59c828133fa2da41a70c"}]},"branch":"refs/heads/master"},"386362b2d58fa019e40514e674813337efb022ed":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2026-04-09 13:51:49.000000000","uploader":{"_account_id":27140,"name":"Chris Breu","display_name":"Chris Breu","email":"chris.breu@rackspace.com","username":"rackerchris"},"ref":"refs/changes/69/983869/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/octavia","ref":"refs/changes/69/983869/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/octavia refs/changes/69/983869/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/octavia refs/changes/69/983869/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/octavia refs/changes/69/983869/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/octavia refs/changes/69/983869/2"}}},"commit":{"parents":[{"commit":"b2e084e8734255a5a7027fd2b8c7ae6831ce8f2f","subject":"Merge \"Rework unit test for get_subnet failure\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/b2e084e8734255a5a7027fd2b8c7ae6831ce8f2f"}]}],"author":{"name":"Chris Breu","email":"chris.breu@rackspace.com","date":"2026-03-25 22:02:06.000000000","tz":-300},"committer":{"name":"Chris Breu","email":"chris.breu@rackspace.com","date":"2026-04-09 13:50:27.000000000","tz":-300},"subject":"Add MAINT load balancer maintenance mode behavior","message":"Add MAINT load balancer maintenance mode behavior\n\nIntroduce MAINT as a load balancer provisioning state for planned\nmaintenance windows. While a load balancer is in MAINT, Octavia\nsuppresses failover and recovery behavior, skips heartbeat-derived\noperating_status churn, and refreshes amphora health timestamps when\nthe load balancer exits maintenance.\n\nChange-Id: Icc851038605899b45331759be635d4005f544ef7\nSigned-off-by: Chris Breu \u003cchris.breu@rackspace.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/386362b2d58fa019e40514e674813337efb022ed"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/386362b2d58fa019e40514e674813337efb022ed"}]},"branch":"refs/heads/master"},"56a9ba8514f2dbf3c7c3806c02e74dd1bd7f3650":{"kind":"REWORK","_number":3,"created":"2026-04-09 14:47:46.000000000","uploader":{"_account_id":27140,"name":"Chris Breu","display_name":"Chris Breu","email":"chris.breu@rackspace.com","username":"rackerchris"},"ref":"refs/changes/69/983869/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/octavia","ref":"refs/changes/69/983869/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/octavia refs/changes/69/983869/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/octavia refs/changes/69/983869/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/octavia refs/changes/69/983869/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/octavia refs/changes/69/983869/3"}}},"commit":{"parents":[{"commit":"b2e084e8734255a5a7027fd2b8c7ae6831ce8f2f","subject":"Merge \"Rework unit test for get_subnet failure\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/b2e084e8734255a5a7027fd2b8c7ae6831ce8f2f"}]}],"author":{"name":"Chris Breu","email":"chris.breu@rackspace.com","date":"2026-03-25 22:02:06.000000000","tz":-300},"committer":{"name":"Chris Breu","email":"chris.breu@rackspace.com","date":"2026-04-09 14:47:32.000000000","tz":-300},"subject":"Add MAINT load balancer maintenance mode behavior","message":"Add MAINT load balancer maintenance mode behavior\n\nIntroduce MAINT as a load balancer provisioning state for planned\nmaintenance windows. While a load balancer is in MAINT, Octavia\nsuppresses failover and recovery behavior, skips heartbeat-derived\noperating_status churn, and refreshes amphora health timestamps when\nthe load balancer exits maintenance.\n\nChange-Id: Icc851038605899b45331759be635d4005f544ef7\nSigned-off-by: Chris Breu \u003cchris.breu@rackspace.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/56a9ba8514f2dbf3c7c3806c02e74dd1bd7f3650"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/56a9ba8514f2dbf3c7c3806c02e74dd1bd7f3650"}]},"branch":"refs/heads/master"},"76af315d9a618a12c9112307c15b663feed6041f":{"kind":"REWORK","_number":4,"created":"2026-04-09 20:00:23.000000000","uploader":{"_account_id":27140,"name":"Chris Breu","display_name":"Chris Breu","email":"chris.breu@rackspace.com","username":"rackerchris"},"ref":"refs/changes/69/983869/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/octavia","ref":"refs/changes/69/983869/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/octavia refs/changes/69/983869/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/octavia refs/changes/69/983869/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/octavia refs/changes/69/983869/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/octavia refs/changes/69/983869/4"}}},"commit":{"parents":[{"commit":"b2e084e8734255a5a7027fd2b8c7ae6831ce8f2f","subject":"Merge \"Rework unit test for get_subnet failure\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/b2e084e8734255a5a7027fd2b8c7ae6831ce8f2f"}]}],"author":{"name":"Chris Breu","email":"chris.breu@rackspace.com","date":"2026-03-25 22:02:06.000000000","tz":-300},"committer":{"name":"Chris Breu","email":"chris.breu@rackspace.com","date":"2026-04-09 19:59:21.000000000","tz":-300},"subject":"Add MAINT load balancer maintenance mode behavior","message":"Add MAINT load balancer maintenance mode behavior\n\nIntroduce MAINT as a load balancer provisioning state for planned\nmaintenance windows. While a load balancer is in MAINT, Octavia\nsuppresses failover and recovery behavior, skips heartbeat-derived\noperating_status churn, and refreshes amphora health timestamps when\nthe load balancer exits maintenance.\n\nChange-Id: Icc851038605899b45331759be635d4005f544ef7\nSigned-off-by: Chris Breu \u003cchris.breu@rackspace.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/76af315d9a618a12c9112307c15b663feed6041f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/76af315d9a618a12c9112307c15b663feed6041f"}]},"branch":"refs/heads/master"},"066d608c9674192a2bd60189c59d12784736ab47":{"kind":"REWORK","_number":5,"created":"2026-05-27 20:41:14.000000000","uploader":{"_account_id":27140,"name":"Chris Breu","display_name":"Chris Breu","email":"chris.breu@rackspace.com","username":"rackerchris"},"ref":"refs/changes/69/983869/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/octavia","ref":"refs/changes/69/983869/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/octavia refs/changes/69/983869/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/octavia refs/changes/69/983869/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/octavia refs/changes/69/983869/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/octavia refs/changes/69/983869/5"}}},"commit":{"parents":[{"commit":"9ff4683c8212e4c043af69f1b5ebadc21651dc58","subject":"Merge \"Drop Python 3.10\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/9ff4683c8212e4c043af69f1b5ebadc21651dc58"}]}],"author":{"name":"Chris Breu","email":"chris.breu@rackspace.com","date":"2026-03-25 22:02:06.000000000","tz":-300},"committer":{"name":"Chris Breu","email":"chris.breu@rackspace.com","date":"2026-05-27 20:36:55.000000000","tz":-300},"subject":"Add MAINT load balancer maintenance mode behavior","message":"Add MAINT load balancer maintenance mode behavior\n\nIntroduce MAINT as a load balancer provisioning state for planned\nmaintenance windows. While a load balancer is in MAINT, Octavia\nsuppresses failover and recovery behavior, skips heartbeat-derived\noperating_status churn, and refreshes amphora health timestamps when\nthe load balancer exits maintenance.\n\nChange-Id: Icc851038605899b45331759be635d4005f544ef7\nSigned-off-by: Chris Breu \u003cchris.breu@rackspace.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/066d608c9674192a2bd60189c59d12784736ab47"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/066d608c9674192a2bd60189c59d12784736ab47"}]},"branch":"refs/heads/master"},"e9aa196fe0fa9ed6453cd8601e2d7e6963753812":{"kind":"REWORK","_number":6,"created":"2026-05-28 19:53:19.000000000","uploader":{"_account_id":27140,"name":"Chris Breu","display_name":"Chris Breu","email":"chris.breu@rackspace.com","username":"rackerchris"},"ref":"refs/changes/69/983869/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/octavia","ref":"refs/changes/69/983869/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/octavia refs/changes/69/983869/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/octavia refs/changes/69/983869/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/octavia refs/changes/69/983869/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/octavia refs/changes/69/983869/6"}}},"commit":{"parents":[{"commit":"9ff4683c8212e4c043af69f1b5ebadc21651dc58","subject":"Merge \"Drop Python 3.10\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/9ff4683c8212e4c043af69f1b5ebadc21651dc58"}]}],"author":{"name":"Chris Breu","email":"chris.breu@rackspace.com","date":"2026-03-25 22:02:06.000000000","tz":-300},"committer":{"name":"Chris Breu","email":"chris.breu@rackspace.com","date":"2026-05-28 19:53:10.000000000","tz":-300},"subject":"Add MAINT load balancer maintenance mode behavior","message":"Add MAINT load balancer maintenance mode behavior\n\nIntroduce MAINT as a load balancer provisioning state for planned\nmaintenance windows. While a load balancer is in MAINT, Octavia\nsuppresses failover and recovery behavior, skips heartbeat-derived\noperating_status churn, and refreshes amphora health timestamps when\nthe load balancer exits maintenance.\n\nChange-Id: Icc851038605899b45331759be635d4005f544ef7\nSigned-off-by: Chris Breu \u003cchris.breu@rackspace.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/e9aa196fe0fa9ed6453cd8601e2d7e6963753812"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/e9aa196fe0fa9ed6453cd8601e2d7e6963753812"}]},"branch":"refs/heads/master"},"5e208f9a0c92a24c9e1028d78cac18a2b1bfa6c2":{"kind":"REWORK","_number":7,"created":"2026-05-28 23:51:54.000000000","uploader":{"_account_id":27140,"name":"Chris Breu","display_name":"Chris Breu","email":"chris.breu@rackspace.com","username":"rackerchris"},"ref":"refs/changes/69/983869/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/octavia","ref":"refs/changes/69/983869/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/octavia refs/changes/69/983869/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/octavia refs/changes/69/983869/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/octavia refs/changes/69/983869/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/octavia refs/changes/69/983869/7"}}},"commit":{"parents":[{"commit":"9ff4683c8212e4c043af69f1b5ebadc21651dc58","subject":"Merge \"Drop Python 3.10\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/9ff4683c8212e4c043af69f1b5ebadc21651dc58"}]}],"author":{"name":"Chris Breu","email":"chris.breu@rackspace.com","date":"2026-03-25 22:02:06.000000000","tz":-300},"committer":{"name":"Chris Breu","email":"chris.breu@rackspace.com","date":"2026-05-28 23:51:47.000000000","tz":-300},"subject":"Add MAINT load balancer maintenance mode behavior","message":"Add MAINT load balancer maintenance mode behavior\n\nIntroduce MAINT as a load balancer provisioning state for planned\nmaintenance windows. While a load balancer is in MAINT, Octavia\nsuppresses failover and recovery behavior, skips heartbeat-derived\noperating_status churn, and refreshes amphora health timestamps when\nthe load balancer exits maintenance.\n\nChange-Id: Icc851038605899b45331759be635d4005f544ef7\nSigned-off-by: Chris Breu \u003cchris.breu@rackspace.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/5e208f9a0c92a24c9e1028d78cac18a2b1bfa6c2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/5e208f9a0c92a24c9e1028d78cac18a2b1bfa6c2"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"},{"label":"Backport-Candidate","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Backport-Candidate","description":"Backport candidate status","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
