)]}'
{"id":"openstack%2Foctavia-tempest-plugin~990642","triplet_id":"openstack%2Foctavia-tempest-plugin~master~Ibe3f5e2a3809d2e63616a0d4635f674c13e1aea9","project":"openstack/octavia-tempest-plugin","branch":"master","attention_set":{},"removed_from_attention_set":{"38562":{"account":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"last_update":"2026-06-02 13:49:19.000000000","reason":"\u003cGERRIT_ACCOUNT_38562\u003e replied on the change","reason_account":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"}},"29244":{"account":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"last_update":"2026-06-02 13:49:25.000000000","reason":"Change was abandoned"}},"hashtags":[],"change_id":"Ibe3f5e2a3809d2e63616a0d4635f674c13e1aea9","subject":"WIP/DNM: Testing a fix of the Tempest tests to unblock CI pipeline","status":"ABANDONED","created":"2026-05-29 13:05:35.000000000","updated":"2026-06-02 13:49:25.000000000","total_comment_count":4,"unresolved_comment_count":1,"work_in_progress":true,"has_review_started":true,"meta_rev_id":"a9a0d14c7a860ee698c92a0e42aafc39ff590e6a","_number":990642,"virtual_id_number":990642,"owner":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"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 14:56:07.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}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"CC":[{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"}]},"pending_reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"CC":[{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"}]},"reviewer_updates":[{"updated":"2026-05-29 14:56:07.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-06-02 11:13:48.000000000","updated_by":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"reviewer":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"state":"CC"}],"messages":[{"id":"8411fd840c67109d272dcf06235d0ca8efa72430","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"date":"2026-05-29 13:05:35.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"032d23725a0306ccd79dbc634ebcf0f62d542c5c","tag":"autogenerated:gerrit:setWorkInProgress","author":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"date":"2026-05-29 13:06:01.000000000","message":"Set Work In Progress","accounts_in_message":[],"_revision_number":1},{"id":"2f263f411f51b947436a12f27a208901ea1fa5b9","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"date":"2026-05-29 13:06:32.000000000","message":"Patch Set 2: Commit message was updated.","accounts_in_message":[],"_revision_number":2},{"id":"5f57333c7a7213f39d2a53ad31165a2aee1385a1","tag":"autogenerated:claude-review","author":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"date":"2026-05-29 14:03:46.000000000","message":"Patch Set 2:\n\n(2 comments)\n\n*Reviewed by claude-sonnet-4-6*\n\n# Code Review: openstack/octavia-tempest-plugin - Change #990642\n\n**Gerrit URL**: https://review.opendev.org/c/openstack/octavia-tempest-plugin/+/990642\n**Patchset**: 2\n**Reviewed**: 2026-05-29 15:01:35\n**Reviewer**: claude-sonnet-4-6\n**First Review**\n\n---\n\n## Change Summary\n\nThis change adds ERROR state detection to the `wait_for_deleted_status_or_not_found()` waiter function, which previously had no handling for objects that transitioned to ERROR while waiting for deletion. Without this fix, a resource stuck in ERROR would cause callers to wait out the full `check_timeout` period before receiving an unhelpful `TimeoutException`. The fix raises `UnexpectedResponseCode` immediately on ERROR — consistent with how `wait_for_status()` handles the same situation. The docstring is also corrected to reflect the actual exception types raised.\n\n**Files Modified**: 1\n**Lines Added**: +14\n**Lines Removed**: -3\n\n### Commit Message\n```\nWIP/DNM: Testing a fix of the Tempest tests to unblock CI pipeline\n\nAssisted-by: Claude Sonnet 4.6\nChange-Id: Ibe3f5e2a3809d2e63616a0d4635f674c13e1aea9\nSigned-off-by: Richard Cruise \u003crcruise@redhat.com\u003e\n\nChange-Id: Ibe3f5e2a3809d2e63616a0d4635f674c13e1aea9\n```\n\n### Purpose\n\nThe `wait_for_deleted_status_or_not_found()` function lacked ERROR state detection. If a load balancer resource (e.g. a listener or pool) entered ERROR during deletion, the function would silently continue polling until `check_timeout` elapsed, then raise a generic `TimeoutException`. This made CI failures hard to diagnose and forced tests to wait unnecessarily. The fix mirrors the pattern already present in `wait_for_status()` to give immediate, descriptive failure on ERROR.\n\n### Scope\n\nOnly `octavia_tempest_plugin/tests/waiters.py` is affected. The change is internal to the test plugin and does not touch Octavia API, database, or production code. All callers of `wait_for_deleted_status_or_not_found()` across the test suite will now get faster, more actionable failures when a resource ends up in ERROR during deletion.\n\n---\n\n## Test Results\n\n_No test commands configured._\n\n---\n\n## Code Analysis\n\n### Overall Assessment\n\nThe logic change is small, correct, and follows the established patterns in the same file. The new `elif` block for ERROR detection is placed correctly (checked before the timeout condition, so ERROR fails fast rather than waiting for the full timeout). The docstring correction is accurate and improves clarity.\n\n### Strengths\n\n- **Consistent with existing patterns**: The ERROR handling block is a near-verbatim copy of the equivalent block in `wait_for_status()` (lines 71–79), including the `find_test_caller()` caller annotation. This makes the two waiters behave uniformly.\n- **Fail-fast design**: Raising immediately on ERROR rather than waiting for timeout reduces CI wall-clock time and surfaces the real problem to the test report sooner.\n- **Docstring accuracy**: Replacing the incorrect `:raises CommandFailed:` (which was never raised by this function) with the correct `:raises UnexpectedResponseCode:` is a genuine improvement in documentation accuracy.\n- **No functional regression risk**: The added `elif` sits between the DELETED success branch and the timeout branch, preserving all existing control flow for the non-ERROR case.\n\n### Issues Found\n\n#### Critical Issues 🔴\n\n*None identified.*\n\n#### Major Issues 🟡\n\n- **WIP/DNM commit subject** (`waiters.py`, whole change): The commit subject begins with `WIP/DNM:`, which explicitly marks this as not ready for merge. The underlying code change appears correct and ready for production, so this subject line must be replaced with a proper OpenStack-style imperative summary (e.g. `\"Add ERROR state detection to wait_for_deleted_status_or_not_found\"`) before this can be approved.\n\n- **Duplicate `Change-Id` in commit message**: The `Change-Id` trailer appears twice in the commit message. Git and Gerrit only need one; the duplicate should be removed.\n\n- **No unit tests for the new code path**: The `tests/` directory contains unit tests for the waiters module. The new ERROR branch in `wait_for_deleted_status_or_not_found()` is not covered. A test should be added that mocks `show_client` to return `status_key \u003d\u003d \u0027ERROR\u0027` and asserts that `UnexpectedResponseCode` is raised with an appropriate message.\n\n#### Minor Issues / Suggestions 🔵\n\n- **String literal `\u0027ERROR\u0027` instead of constant** (`waiters.py`, line 167): The DELETED check on line 163 uses `const.DELETED`. For consistency, the ERROR check should use a constant too — e.g. `const.ERROR` if one exists in `octavia_tempest_plugin/common/constants.py`. The existing `wait_for_status()` function also uses the string literal `\u0027ERROR\u0027` (line 71), so this is a pre-existing inconsistency rather than a new one, but it would be good to fix both at the same time.\n\n- **`Assisted-by: Claude Sonnet 4.6` attribution**: While not prohibited, AI attribution trailers are non-standard in OpenStack commits and may draw attention from reviewers. Consider whether to retain it or remove it before final submission.\n\n#### Nits 🟢\n\n- The `:check_interval:` and `:check_timeout:` docstring parameter markers use `:` as the prefix rather than the standard `:param` prefix (lines 141–142). This is pre-existing throughout the file and not introduced by this change, but it is worth a follow-up cleanup.\n\n---\n\n## Detailed Review Comments\n\n### File: `octavia_tempest_plugin/tests/waiters.py`\n\n**Lines 167–178** — Severity: Minor / Suggestion\n\nThe `\u0027ERROR\u0027` string literal could be replaced with a named constant for consistency with `const.DELETED` on line 163:\n\n```python\n# Current\nelif object_details[status_key] \u003d\u003d \u0027ERROR\u0027:\n\n# Suggested (if const.ERROR exists or is added)\nelif object_details[status_key] \u003d\u003d const.ERROR:\n```\n\nCheck `octavia_tempest_plugin/common/constants.py` — if `ERROR` is already defined there, use it. If not, add it and update both this function and `wait_for_status()` line 71 in the same patch.\n\n---\n\n**Line 178** — Severity: Major (missing tests)\n\nThe `raise exceptions.UnexpectedResponseCode(message)` on this line is a new code path with no corresponding unit test. Example test to add in the waiters test file:\n\n```python\ndef test_wait_for_deleted_status_or_not_found_raises_on_error(self):\n    mock_show \u003d mock.MagicMock()\n    mock_show.__name__ \u003d \u0027mock_show_client\u0027\n    mock_show.return_value \u003d {\u0027provisioning_status\u0027: \u0027ERROR\u0027}\n\n    self.assertRaises(\n        exceptions.UnexpectedResponseCode,\n        waiters.wait_for_deleted_status_or_not_found,\n        mock_show, \u0027fake-id\u0027, \u0027provisioning_status\u0027,\n        check_interval\u003d1, check_timeout\u003d30\n    )\n```\n\n---\n\n## Security Analysis\n\n*No security concerns identified.* The change handles only internal test waiter logic and does not touch authentication, credential handling, network calls, or input from external sources.\n\n---\n\n## Documentation Review\n\n---\n*This review was generated by an AI and may contain errors.*","accounts_in_message":[],"_revision_number":2},{"id":"f8b65e076c68402376bdee36c650a3c7b1f444d6","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-29 14:56:07.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8ad4c93f92af488cac47777aae6a78d2\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1449a2bb9c93440fbae43680dd395a2f : SUCCESS in 8m 34s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/dc1ebafac98647d5877d46b6602b441d : SUCCESS in 3m 30s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/e0ee7847b3d74fbdb198e157843a3384 : SUCCESS in 3m 47s\n- octavia-v2-dsvm-noop-api https://zuul.opendev.org/t/openstack/build/151b938b7898458c81831b4856519c44 : SUCCESS in 1h 12m 56s\n- octavia-v2-dsvm-noop-api-stable-2026-1 https://zuul.opendev.org/t/openstack/build/f6a703544064480293c6ca22b3f3fd7f : SUCCESS in 1h 09m 20s\n- octavia-v2-dsvm-noop-api-stable-2025-2 https://zuul.opendev.org/t/openstack/build/09b4882487fb4dc8b9c39d633d082983 : SUCCESS in 1h 15m 27s\n- octavia-v2-dsvm-noop-api-stable-2025-1 https://zuul.opendev.org/t/openstack/build/5315c6ad55ee4050b8a56280fec56cb5 : SUCCESS in 1h 13m 31s\n- octavia-v2-dsvm-noop-api-advanced-rbac https://zuul.opendev.org/t/openstack/build/1445708452b94dc5abd4c3c84c628c6b : SUCCESS in 1h 20m 30s\n- octavia-v2-dsvm-scenario-traffic-ops https://zuul.opendev.org/t/openstack/build/698518eb39d54a5d95b57004bbd402d7 : SUCCESS in 1h 35m 28s\n- octavia-v2-dsvm-scenario-non-traffic-ops https://zuul.opendev.org/t/openstack/build/5d16e304ec4f41a7af8d982ee88ed927 : SUCCESS in 58m 26s\n- octavia-v2-dsvm-scenario-traffic-ops-stable-2026-1 https://zuul.opendev.org/t/openstack/build/68f96171d5f3449b9e894d5113e6d1b2 : SUCCESS in 1h 43m 44s\n- octavia-v2-dsvm-scenario-non-traffic-ops-stable-2026-1 https://zuul.opendev.org/t/openstack/build/6dd15f24348e4ae28a92861e681f96c9 : SUCCESS in 1h 15m 54s\n- octavia-v2-dsvm-scenario-traffic-ops-stable-2025-2 https://zuul.opendev.org/t/openstack/build/19350b73e1c04cc492741bd18c9e34fe : SUCCESS in 1h 35m 55s\n- octavia-v2-dsvm-scenario-non-traffic-ops-stable-2025-2 https://zuul.opendev.org/t/openstack/build/f51f891c8d98449985c8ddd81cd966e9 : SUCCESS in 59m 00s\n- octavia-v2-dsvm-scenario-traffic-ops-stable-2025-1 https://zuul.opendev.org/t/openstack/build/527b3299fa6a4208a712ac081ac2c51e : SUCCESS in 1h 37m 45s\n- octavia-v2-dsvm-scenario-non-traffic-ops-stable-2025-1 https://zuul.opendev.org/t/openstack/build/ca36fcfe81f74030b4b639eeeb0e0631 : SUCCESS in 1h 09m 37s\n- octavia-v2-dsvm-tls-barbican https://zuul.opendev.org/t/openstack/build/f33683f7a7b6459eb00bdce411533cc6 : SUCCESS in 38m 42s\n- octavia-v2-dsvm-tls-barbican-stable-2026-1 https://zuul.opendev.org/t/openstack/build/9f556b7bfc8340e99f6a245f9c8339ab : SUCCESS in 35m 46s\n- octavia-v2-dsvm-tls-barbican-stable-2025-2 https://zuul.opendev.org/t/openstack/build/fc177474c9f144aa9f3af6068ef7284e : SUCCESS in 37m 29s\n- octavia-v2-dsvm-tls-barbican-stable-2025-1 https://zuul.opendev.org/t/openstack/build/892192c298d64dd0944e06b97db1259c : SUCCESS in 35m 38s\n- octavia-v2-dsvm-scenario-ipv6-only https://zuul.opendev.org/t/openstack/build/2df028d4ae2d4a0681e1aacfee719edc : SUCCESS in 1h 35m 41s (non-voting)\n- octavia-v2-dsvm-scenario-centos-10-stream-traffic-ops https://zuul.opendev.org/t/openstack/build/ef4f8188547b445fa76f5e5208027ea5 : SUCCESS in 1h 30m 41s (non-voting)\n- octavia-v2-dsvm-scenario-centos-10-stream-non-traffic-ops https://zuul.opendev.org/t/openstack/build/4b53c9049ecc42048fbdbfb1eab93aeb : SUCCESS in 1h 00m 04s (non-voting)\n- octavia-v2-dsvm-scenario-rockylinux-10-traffic-ops https://zuul.opendev.org/t/openstack/build/2351db1a1c4c4895b8b1effc8ef3cf7f : SUCCESS in 1h 47m 42s (non-voting)\n- octavia-v2-dsvm-scenario-rockylinux-10-non-traffic-ops https://zuul.opendev.org/t/openstack/build/0ddfd4aa787449a7a98d90c77df8430e : SUCCESS in 1h 03m 49s (non-voting)\n- octavia-v2-act-stdby-dsvm-scenario-two-node-traffic-ops https://zuul.opendev.org/t/openstack/build/17f9f39b2c1a4bc9bb0b6c8293927783 : SUCCESS in 48m 58s (non-voting)\n- octavia-v2-act-stdby-dsvm-scenario https://zuul.opendev.org/t/openstack/build/87bfb6f74d39447f9037cb579b124e3a : SUCCESS in 43m 51s (non-voting)\n- octavia-v2-act-stdby-dsvm-scenario-stable-2026-1 https://zuul.opendev.org/t/openstack/build/63082b3226d04537af492d5bbc2926e9 : FAILURE in 56m 45s (non-voting)\n- octavia-v2-act-stdby-dsvm-scenario-stable-2025-2 https://zuul.opendev.org/t/openstack/build/9d5c0ff7d0234326bcc8a1a08d9f930a : SUCCESS in 42m 27s (non-voting)\n- octavia-v2-act-stdby-dsvm-scenario-stable-2025-1 https://zuul.opendev.org/t/openstack/build/7ec1da752f874530a6655ed5e22db586 : SUCCESS in 32m 52s (non-voting)\n- octavia-v2-dsvm-cinder-amphora https://zuul.opendev.org/t/openstack/build/5d78aa9ee7864d918a7d46025169a25f : SUCCESS in 34m 40s (non-voting)\n- neutron-ovn-provider-v2-api https://zuul.opendev.org/t/openstack/build/ef6bb979f97549c79a40be68a2bc9f4e : SUCCESS in 56m 37s (non-voting)\n- neutron-ovn-provider-v2-scenario https://zuul.opendev.org/t/openstack/build/a434facda850468dbf1894fb94b49741 : SUCCESS in 54m 14s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"989abc5b3dc0ee26099f0a5d0092d1f04583c5ab","author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"date":"2026-06-02 11:13:48.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"6c68d192145a3f7d3ab9c2405119bee5600194d0","author":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"date":"2026-06-02 13:49:19.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"a9a0d14c7a860ee698c92a0e42aafc39ff590e6a","tag":"autogenerated:gerrit:abandon","author":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"date":"2026-06-02 13:49:25.000000000","message":"Abandoned","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"73285b463ded02d645d288df308aa89d463b57b8","revisions":{"decc0428aded373327b957b17359ebc1a52a24f6":{"kind":"REWORK","_number":1,"created":"2026-05-29 13:05:35.000000000","uploader":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"ref":"refs/changes/42/990642/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/octavia-tempest-plugin","ref":"refs/changes/42/990642/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/octavia-tempest-plugin refs/changes/42/990642/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/octavia-tempest-plugin refs/changes/42/990642/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/octavia-tempest-plugin refs/changes/42/990642/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/octavia-tempest-plugin refs/changes/42/990642/1"}}},"commit":{"parents":[{"commit":"dba800635090831f9ab0eb973b1e5cb9915a06ff","subject":"Add scenario tests for custom SGs on VIP Port","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia-tempest-plugin/commit/dba800635090831f9ab0eb973b1e5cb9915a06ff"}]}],"author":{"name":"Richard Cruise","email":"rcruise@redhat.com","date":"2026-05-29 13:01:12.000000000","tz":60},"committer":{"name":"Richard Cruise","email":"rcruise@redhat.com","date":"2026-05-29 13:05:33.000000000","tz":60},"subject":"Testing a fix of the Tempest tests to unblock CI pipeline","message":"Testing a fix of the Tempest tests to unblock CI pipeline\n\nAssisted-by: Claude Sonnet 4.6\nChange-Id: Ibe3f5e2a3809d2e63616a0d4635f674c13e1aea9\nSigned-off-by: Richard Cruise \u003crcruise@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia-tempest-plugin/commit/decc0428aded373327b957b17359ebc1a52a24f6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia-tempest-plugin/commit/decc0428aded373327b957b17359ebc1a52a24f6"}]},"branch":"refs/heads/master"},"73285b463ded02d645d288df308aa89d463b57b8":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2026-05-29 13:06:32.000000000","uploader":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"ref":"refs/changes/42/990642/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/octavia-tempest-plugin","ref":"refs/changes/42/990642/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/octavia-tempest-plugin refs/changes/42/990642/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/octavia-tempest-plugin refs/changes/42/990642/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/octavia-tempest-plugin refs/changes/42/990642/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/octavia-tempest-plugin refs/changes/42/990642/2"}}},"commit":{"parents":[{"commit":"dba800635090831f9ab0eb973b1e5cb9915a06ff","subject":"Add scenario tests for custom SGs on VIP Port","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia-tempest-plugin/commit/dba800635090831f9ab0eb973b1e5cb9915a06ff"}]}],"author":{"name":"Richard Cruise","email":"rcruise@redhat.com","date":"2026-05-29 13:01:12.000000000","tz":60},"committer":{"name":"Richard Cruise","email":"rcruise@redhat.com","date":"2026-05-29 13:06:32.000000000","tz":0},"subject":"WIP/DNM: Testing a fix of the Tempest tests to unblock CI pipeline","message":"WIP/DNM: Testing a fix of the Tempest tests to unblock CI pipeline\n\nAssisted-by: Claude Sonnet 4.6\nChange-Id: Ibe3f5e2a3809d2e63616a0d4635f674c13e1aea9\nSigned-off-by: Richard Cruise \u003crcruise@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia-tempest-plugin/commit/73285b463ded02d645d288df308aa89d463b57b8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia-tempest-plugin/commit/73285b463ded02d645d288df308aa89d463b57b8"}]},"branch":"refs/heads/master","description":"Edit commit message"}},"requirements":[],"submit_records":[],"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":"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":""}}}]}
