)]}'
{"id":"openstack%2Fcyborg~994830","triplet_id":"openstack%2Fcyborg~master~I43e8fdae1fb521a041efe5f2d3ab1855bc89cbd8","project":"openstack/cyborg","branch":"master","attention_set":{},"removed_from_attention_set":{"4690":{"account":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"last_update":"2026-07-16 13:36:28.000000000","reason":"Change was submitted"},"11604":{"account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"last_update":"2026-07-16 12:05:20.000000000","reason":"\u003cGERRIT_ACCOUNT_11604\u003e replied on the change","reason_account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}},"34452":{"account":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"last_update":"2026-07-10 11:03:33.000000000","reason":"\u003cGERRIT_ACCOUNT_34452\u003e replied on the change","reason_account":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"}},"28006":{"account":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"last_update":"2026-07-16 13:36:28.000000000","reason":"Change was submitted"},"12393":{"account":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"last_update":"2026-07-13 06:57:26.000000000","reason":"\u003cGERRIT_ACCOUNT_12393\u003e replied on the change","reason_account":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"}}},"hashtags":[],"change_id":"I43e8fdae1fb521a041efe5f2d3ab1855bc89cbd8","subject":"Add API sample structural validation tests","status":"MERGED","created":"2026-06-24 22:54:38.000000000","updated":"2026-07-16 13:38:23.000000000","submitted":"2026-07-16 13:36:28.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":81,"unresolved_comment_count":6,"has_review_started":true,"submission_id":"994830","meta_rev_id":"61362bffce0c7d7033f09e3371fcc1d1e315a12d","_number":994830,"virtual_id_number":994830,"owner":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},{"value":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-07-16 13:36:28.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":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"recommended":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"all":[{"value":1,"date":"2026-07-10 11:03:33.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},{"value":2,"date":"2026-07-16 12:05:20.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":1,"date":"2026-07-13 06:57:26.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},{"value":0,"_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":"","value":1,"default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"all":[{"value":0,"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},{"value":1,"date":"2026-07-16 12:15:54.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},{"value":0,"_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":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"}],"CC":[{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-06-24 22:54:49.000000000","updated_by":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"reviewer":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"state":"CC"},{"updated":"2026-06-24 23:11:27.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-07-06 15:01:24.000000000","updated_by":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"reviewer":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"state":"REVIEWER"},{"updated":"2026-07-07 11:16:44.000000000","updated_by":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"reviewer":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"state":"CC"},{"updated":"2026-07-07 12:37:01.000000000","updated_by":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"reviewer":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"state":"REVIEWER"},{"updated":"2026-07-13 06:57:26.000000000","updated_by":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"reviewer":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"state":"REVIEWER"}],"messages":[{"id":"34dd71e7bce2255eab50b2c739df6453c448e743","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-06-24 22:54:38.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"c628c160641e236193b1eb40344243b4658fdcb2","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-24 22:54:49.000000000","message":"Patch Set 1:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":1},{"id":"9e20a2118acc1dea285e8bc1934ab54bf5867416","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-24 23:10:00.000000000","message":"Patch Set 1:\n\n(3 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/d6bb4d61703346029e50e87975ea7cfb\n\n- teim-code-review https://zuul.teim.app/t/main/build/4499b38a8d4e4419a610038018af1e97 : SUCCESS in 15m 03s\n\nWarning:\n  The new functional testenv in tox.ini inherits OS_TEST_PATH\u003dcyborg/tests/unit from the [testenv] section but overrides it via the stestr --test-path flag. This works but could be confusing. Impact: If someone modifies the functional testenv to remove the --test-path flag, tests would silently run unit tests instead of functional tests. Recommendation: Consider adding setenv \u003d OS_TEST_PATH\u003d./cyborg/tests/functional to the [testenv:functional] section for explicitness, though the current --test-path override is functionally correct.","accounts_in_message":[],"_revision_number":1},{"id":"f9e1b9f0d317c860ca1378146a538142a6faa88d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-24 23:11:27.000000000","message":"Patch Set 1: 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/9def4273e35748c2a556816c31dcb3d0\n\n- build-openstack-api-ref https://zuul.opendev.org/t/openstack/build/9393a254071e49249014d1a97008dcbd : SUCCESS in 4m 14s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/0c344961386a4655a6bf76d38f624229 : SUCCESS in 4m 42s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/7a4cbe406bef468daa2f53eb038250bf : SUCCESS in 5m 21s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/511e79b5be51446a8db0b085a1418e16 : SUCCESS in 7m 39s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/bffe6cec079748fdb1a50aef81225e38 : FAILURE in 2m 08s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/cdf8e9a4a1e74afb9dba9159aab85341 : SUCCESS in 3m 49s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/9ac441d94af543eab4d205bb07a53718 : SUCCESS in 3m 41s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/08da42ad33f6411d8b981f2c97af7eba : SUCCESS in 5m 43s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"8a0aa101b640965754c773b1deede9c1cf2ff7ad","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-06-25 15:47:47.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"af33cbedb82615a5ce8a17c371343e7b83d51a9c","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-25 15:47:58.000000000","message":"Patch Set 2:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":2},{"id":"cefe1661a06588ff07d1b34ab53d2a1fbce813ed","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-25 16:07:51.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/00a313c037b84fb9832e50792525dd37\n\n- build-openstack-api-ref https://zuul.opendev.org/t/openstack/build/d73b17f13b544ea798a20abaa2e0863e : SUCCESS in 3m 55s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/29490ae43f254c439965f2a5c4369038 : SUCCESS in 5m 15s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/ceaf6111d7734b708120b73f5db3cbe0 : SUCCESS in 3m 38s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8ef1df832c2546c7a5bb33452fade725 : SUCCESS in 4m 13s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/338d869491be456f85e2d84f0bf232b8 : SUCCESS in 3m 26s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/90650eeff3334124979d3bdbe6cced52 : SUCCESS in 3m 33s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/0cdd502cb77042cb91a81d450cc81f85 : SUCCESS in 3m 51s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/65979b031415405391bcc5a06c0d1245 : SUCCESS in 5m 49s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"c5a99028859b7923b0b3d047a345389f09d25f86","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-25 16:54:07.000000000","message":"Patch Set 2:\n\n(8 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/33b726f792d9440b8db8515dc870540a\n\n- teim-code-review https://zuul.teim.app/t/main/build/19b4c120735b444596a7183e30b17a26 : SUCCESS in 13m 00s\n\nWarning:\n  The functional test infrastructure duplicates much of the app-creation and database-setup logic already present in cyborg/tests/unit/api/base.py (BaseApiTest). Both create Pecan test apps with identical app_config, both set up SQLite databases, and both use similar fixture patterns. Impact: This duplication means future API changes (e.g., new hooks, new middleware) must be updated in two places. The commit message explains the unit test base has eventlet side effects, which justifies not importing it directly, but the duplication itself is a maintenance risk. Recommendation: Consider extracting the shared app-creation logic (app_config dict, load_test_app pattern, fixture setup) into a common helper that both unit and functional test bases can use without importing each other\u0027s __init__.py. This could be done in a follow-up patch.\n  The tox.ini functional env inherits deps from [testenv] but does not explicitly declare webtest, which is needed by pecan.testing.load_test_app. Impact: If webtest is not in base test-requirements, functional tests fail at import time with an opaque ImportError. Recommendation: Verify webtest is in requirements.txt/test-requirements.txt. If not listed, add it to the functional testenv deps explicitly: deps \u003d {[testenv]deps}\n  webtest. Run \u0027tox -e functional\u0027 to confirm.","accounts_in_message":[],"_revision_number":2},{"id":"b9f2f4a4b6cbfd60f75001b266cf426a918f0850","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-06-25 18:27:44.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"2da6747b123812800b70961f0042e36dd9250f9e","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-25 18:27:59.000000000","message":"Patch Set 3:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":3},{"id":"160f95bc02f6ff1387bdd9cbe13057b8dccc8d28","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-25 18:39:45.000000000","message":"Patch Set 3:\n\n(2 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/662e9627cbea4d09951be64657fcce81\n\n- teim-code-review https://zuul.teim.app/t/main/build/99075d30ae434d499435b860eb027300 : SUCCESS in 11m 38s\n\nWarning:\n  The commit message includes \u0027Assisted-by: Claude claude-opus-4-6 claude-code-2.1.190\u0027 which satisfies AI attribution requirements. OpenInfra AI policy also recommends a standardized \u0027Generated-By:\u0027 trailer format. The current trailer is acceptable. Impact: AI attribution is present and discoverable, satisfying the core requirement. This is an informational note about format alignment, not a blocking issue. Recommendation: No action required for this patch. For future AI-assisted changes, consider also using the \u0027Generated-By:\u0027 trailer format recommended by OpenInfra AI policy.","accounts_in_message":[],"_revision_number":3},{"id":"d750bc2f100fa5f4ee72d0ff8c3fd0c2d5096e79","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-06-25 20:14:15.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"74804c57b48783812b73deed3651d76fe3430440","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-25 20:14:25.000000000","message":"Patch Set 4:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":4},{"id":"3c95be4e32bc2edadfaf789605559cc694defbd6","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-25 20:26:34.000000000","message":"Patch Set 4:\n\n(5 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/442acc32e5aa4730ac26d6cce7d86a1f\n\n- teim-code-review https://zuul.teim.app/t/main/build/f19ac45da9234f4da901c9ffe01914ff : SUCCESS in 12m 01s\n\nWarning:\n  .stestr.conf now uses test_path\u003d${OS_TEST_PATH:-./cyborg/tests}, relying on stestr performing shell-style env-var expansion when reading the config value. Impact: This is a widely used idiom (Nova, Cinder ship the same pattern) and the functional tox env sets OS_TEST_PATH, so it works with modern stestr. If an older stestr release that does not expand the value is used outside CI, discovery could silently fall back to a literal path. Recommendation: Confirm the minimum stestr version in test-requirements supports env expansion (stestr\u003e\u003d3 does), which is already satisfied. No change required; noted for awareness.\n  The patch moves policy_fixture from cyborg/tests/unit/ to cyborg/tests/ and relocates init_backend into tests/__init__.py so functional tests avoid the unit package import-time side effects. Impact: This is a sound structural improvement that cleanly separates unit-test backend initialization from the functional-test path. Both updated import sites (tests/base.py and tests/unit/policies/base.py) were updated consistently. Recommendation: Verify the full unit suite still initializes the threading backend correctly now that it is imported via the parent tests package; a single tox -epy3 run confirms this.","accounts_in_message":[],"_revision_number":4},{"id":"55c6521cc8ab926dc6473c32590d1e3d153cb115","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-06-25 20:37:32.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"89379ead21888729ec2b642dfe800505b49f388d","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-25 20:37:42.000000000","message":"Patch Set 5:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":5},{"id":"79573af5aa3e66bd3ad920cad0da79696b53a1e9","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-25 20:52:44.000000000","message":"Patch Set 5:\n\n(2 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/f517a5a05893451cb373da79eb4ce187\n\n- teim-code-review https://zuul.teim.app/t/main/build/96a4f00b83224bbdb721b5d1a37ca022 : SUCCESS in 14m 48s\n\nWarning:\n  policy_fixture.py moved from cyborg/tests/unit/ to cyborg/tests/ to avoid eventlet side effects from unit/__init__.py. The relocation is clean and all import references are updated. No issues found. Impact: The relocation is clean and all import references are updated correctly (base.py line 31, policies/base.py line 20). The unit test __init__.py was simplified to remove eventlet-related imports, which is the root cause fix for the side effects. Recommendation: No action needed — the relocation and import updates are correct.","accounts_in_message":[],"_revision_number":5},{"id":"f20167b7da3b660c42b354230ea6ea5faf72f37a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-25 21:38:45.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0b13b513101a49fd921b417f221eeda8\n\n- build-openstack-api-ref https://zuul.opendev.org/t/openstack/build/8c374d47916840ea9696abad4f49fd4b : SUCCESS in 2m 25s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/05403bee5a924d3982f3fc9fab88a61a : SUCCESS in 3m 09s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/1cddc0b1bf344f31815d6f18c85e537a : SUCCESS in 2m 27s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f0d0559a4f7c487cac0aa84fe6dae397 : SUCCESS in 4m 31s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c0c236fabc834ec18935a53e3c22d2ba : SUCCESS in 2m 29s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/e2846126194448d0aeb2558779e6ba55 : SUCCESS in 3m 05s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/6d97f124b4f246f89d41e61ad7d7e2ad : SUCCESS in 2m 14s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/67d57593929e4d47899346629dea57ad : SUCCESS in 6m 53s (non-voting)\n- cyborg-tempest-py3 https://zuul.opendev.org/t/openstack/build/c2bef0717fb446898b7a846ba026f6ca : SUCCESS in 21m 43s\n- cyborg-tempest-ipv6 https://zuul.opendev.org/t/openstack/build/a79a254bde14422c8efdd246e69a2a46 : SUCCESS in 18m 25s\n- cyborg-grenade https://zuul.opendev.org/t/openstack/build/dcc0411ad0c64056a371ac1f2aac93bb : SUCCESS in 37m 33s\n- cyborg-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/c675af2b48444e0aa13d442da3993ed8 : SUCCESS in 54m 53s","accounts_in_message":[],"_revision_number":5},{"id":"f5ff15ccd3792615a8baedeb5f621bc745591d3a","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-06-25 22:01:50.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":6},{"id":"a135f0b91f68aeecd31dcd4ecea540590a3f01ef","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-25 22:02:00.000000000","message":"Patch Set 6:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":6},{"id":"03e903a53dd8d25cb8970306fca9cca7abe35944","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-25 22:16:20.000000000","message":"Patch Set 6:\n\n(1 comment)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/e0c73cc002a34d6e85ba106577b77847\n\n- teim-code-review https://zuul.teim.app/t/main/build/f5c20ffbbbc34595ae6b1b6ea371a361 : SUCCESS in 14m 10s","accounts_in_message":[],"_revision_number":6},{"id":"da166cc74ac8af49fa9da36ae727ee1c1ce77051","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-25 23:06:28.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f3dc52b7c0634102a1feeb2d9b2dee84\n\n- build-openstack-api-ref https://zuul.opendev.org/t/openstack/build/37127fe284384b7f8cc368fae8cebb37 : SUCCESS in 3m 17s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/8216a84234b24eed88732ab095ff04f0 : SUCCESS in 4m 16s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/e25593ca495840d080064c8e0f4e431e : SUCCESS in 3m 08s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/bc4679b8bc864df18563f79f3d5cc721 : SUCCESS in 4m 37s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4acfa3604449461a9b782f18eb04f9ea : SUCCESS in 4m 54s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/1534e3aaa1424b02af0593da228a33a2 : SUCCESS in 2m 34s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/e5a6bf8e1b944a5cb3ccae7169fdf7e9 : SUCCESS in 4m 05s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/8f1941bf411349fdbc411280c69122a0 : SUCCESS in 4m 01s (non-voting)\n- cyborg-tempest-py3 https://zuul.opendev.org/t/openstack/build/6a36d2f5d86e43ce8f5c7efb3881f1d0 : SUCCESS in 31m 22s\n- cyborg-tempest-ipv6 https://zuul.opendev.org/t/openstack/build/3ffa1bb9e36346a8ac205060e50a83db : SUCCESS in 20m 20s\n- cyborg-grenade https://zuul.opendev.org/t/openstack/build/61af8caa6361466785366a3bb5d2ab31 : SUCCESS in 28m 10s\n- cyborg-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/bc56fb2b75654ec8a03879e82a393a30 : SUCCESS in 55m 00s","accounts_in_message":[],"_revision_number":6},{"id":"4ddacc770230f6d30da87fddfc6a3c656bed8df7","tag":"autogenerated:gerrit:setReadyForReview","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-06-30 14:04:46.000000000","message":"Set Ready For Review","accounts_in_message":[],"_revision_number":6},{"id":"4eff53a62bd3e8e027ac1690e6ff1d260349c0f0","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-07-06 15:01:24.000000000","message":"Patch Set 6: Code-Review+1\n\n(2 comments)","accounts_in_message":[],"_revision_number":6},{"id":"83da27dbd81f13cc1449fb9a950acc87b23f9f66","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-07-07 11:16:44.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"f69f07fc2a54b1d7744e3e723d32c7652f582dc4","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-07 12:37:01.000000000","message":"Patch Set 6: Code-Review-1\n\n(19 comments)","accounts_in_message":[],"_revision_number":6},{"id":"5c65011095ac22902cadb377a9871a4888317a41","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-07 12:51:55.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"7ad6c5733d29f12e3e84ab61748c22315331abc5","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-07-08 01:17:55.000000000","message":"Patch Set 6:\n\n(10 comments)","accounts_in_message":[],"_revision_number":6},{"id":"d78791ac539795e28a8152afd021ff673346f2e8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-07-08 05:11:25.000000000","message":"Uploaded patch set 7.\n\nOutdated Votes:\n* Code-Review+1, Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":7},{"id":"23085f0ee8047ff3d8cec4c57eb3c8e28134d91e","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-07-08 05:11:34.000000000","message":"Patch Set 7:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":7},{"id":"5d42fb01dd34e64d74435af3ffc9e7246e9a963e","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-07-08 05:22:58.000000000","message":"Patch Set 7:\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/e72e0f82e037470b9d9cfb5a97a9d624\n\n- teim-code-review https://zuul.teim.app/t/main/build/4cc29e5732d54dc29f3630d44f7aa741 : SUCCESS in 11m 15s","accounts_in_message":[],"_revision_number":7},{"id":"06d1a9377f4d4ddbbe3d32928e2bb0df7ad10fd4","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-08 06:15:07.000000000","message":"Patch Set 7: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d236e8ee632543cebcc55f5a3223707f\n\n- build-openstack-api-ref https://zuul.opendev.org/t/openstack/build/f5ab80651fae4ddc9a85492a62133e54 : SUCCESS in 3m 27s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/f1a59387a83049379f36f2ae775b765e : SUCCESS in 5m 01s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/ff47c96c852942fdb2b2714cd1f00dd7 : SUCCESS in 9m 28s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4c41a990ec3c4787a4158e99468b86ed : SUCCESS in 7m 59s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/9258585d3f3f4d639e021cf77edfc078 : SUCCESS in 2m 48s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/cfc4234e4dca4f24b2fb8eb514aec842 : SUCCESS in 4m 03s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/7a1d7a0f6ce244b78b2b2ed0392a35d0 : SUCCESS in 2m 55s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/f52451f9fff24caeac435a850a9f887e : SUCCESS in 6m 22s (non-voting)\n- cyborg-tempest-py3 https://zuul.opendev.org/t/openstack/build/01c25e4adc9f471195d037ada3ec0bbe : SUCCESS in 24m 07s\n- cyborg-tempest-ipv6 https://zuul.opendev.org/t/openstack/build/50daeca3e09346f2a2a832c389f6b86c : SUCCESS in 21m 46s\n- cyborg-grenade https://zuul.opendev.org/t/openstack/build/043f6a0678b746ecae64deb64f28250f : SUCCESS in 56m 22s\n- cyborg-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/4eeb7deb39b048d1869bc871b3d030dc : SUCCESS in 52m 25s","accounts_in_message":[],"_revision_number":7},{"id":"39ad2b53760272161f45a8019ef09a76efa92448","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-07-08 15:52:42.000000000","message":"Patch Set 7:\n\n(15 comments)","accounts_in_message":[],"_revision_number":7},{"id":"86c282c2dceb0432e396a7c3efc513df867a1980","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-07-08 15:53:15.000000000","message":"Patch Set 7:\n\n(2 comments)","accounts_in_message":[],"_revision_number":7},{"id":"6503f9905a1a1a94b050f7cb74ce8f66d1f83194","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-07-10 11:03:33.000000000","message":"Patch Set 7: Code-Review+1\n\n(2 comments)","accounts_in_message":[],"_revision_number":7},{"id":"de4090c3d5823b7aa4a1ab10586d644285689d10","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-07-13 06:57:26.000000000","message":"Patch Set 7: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":7},{"id":"eb6c546a64095c98ebf4f9ee26681d6b35a41224","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-16 12:05:20.000000000","message":"Patch Set 7: Code-Review+2\n\n(5 comments)","accounts_in_message":[],"_revision_number":7},{"id":"f56a38667a2ce142fb26ec2d00abd410c90c6da0","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-16 12:09:04.000000000","message":"Patch Set 7:\n\n(2 comments)","accounts_in_message":[],"_revision_number":7},{"id":"a4455fa3c72d89684356109ec1b31d1fc358697a","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-16 12:15:54.000000000","message":"Patch Set 7: Workflow+1","accounts_in_message":[],"_revision_number":7},{"id":"8737ea7a85a451c61e7d15e3d47c836bfa006f37","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-16 12:16:38.000000000","message":"Patch Set 7: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":7},{"id":"3d6d4570f6d01a9c8658ce9221215a73b33b3cae","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-16 13:36:28.000000000","message":"Patch Set 7: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f6c22f81eeb54105a56edf22e9dd826d\n\n- build-openstack-api-ref https://zuul.opendev.org/t/openstack/build/9ea1fc6e0d96479e8d336dd618fd446c : SUCCESS in 4m 44s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/f551d3742cd54b7ebab15549aad0ea4e : SUCCESS in 4m 54s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b4bb4e65f8ef4ed89ca1d65dd495b69e : SUCCESS in 8m 50s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d4bf6320ed0d490db8b915ea7a5e721f : SUCCESS in 5m 38s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/3a9a6167f8614e0a86d965b36f3ed60d : SUCCESS in 5m 09s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/367b14aab88d4e95a72e23bec6c9a920 : SUCCESS in 4m 47s\n- cyborg-tempest-py3 https://zuul.opendev.org/t/openstack/build/9e7aa5278fea40238a8cc079ee1b59d8 : SUCCESS in 18m 36s\n- cyborg-tempest-ipv6 https://zuul.opendev.org/t/openstack/build/990f11e6ee234fa4b607e3491e10917c : SUCCESS in 40m 10s\n- cyborg-grenade https://zuul.opendev.org/t/openstack/build/e4c4565071ca43689dbb18c70ced4447 : SUCCESS in 1h 03m 08s\n- cyborg-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/f5d2d801ddf346aab699ccc7fdafafb5 : SUCCESS in 52m 00s","accounts_in_message":[],"_revision_number":7},{"id":"78f6710d9a00591334442be03d7f5ccda45cfa54","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-16 13:36:28.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":7},{"id":"61362bffce0c7d7033f09e3371fcc1d1e315a12d","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-16 13:38:23.000000000","message":"Patch Set 7:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5b3b8473f19947b0974f0fea21832ecc\n\n- promote-api-ref https://zuul.opendev.org/t/openstack/build/c967dc1b28414cdcbc39bd0c1eff6a21 : SUCCESS in 43s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/a717c420f1554ba385ac2534dfaa7ff3 : SUCCESS in 41s\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9e2b1357b9c84f0b811fdf2fd1cfbebf : SUCCESS in 42s","accounts_in_message":[],"_revision_number":7}],"current_revision_number":7,"current_revision":"edce5fb28c9f39c0af95ba0729857586ca6bbc70","revisions":{"6668d4e840edd5271b4c417ccd92d2db0a51b44b":{"kind":"REWORK","_number":1,"created":"2026-06-24 22:54:38.000000000","uploader":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"ref":"refs/changes/30/994830/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/30/994830/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/994830/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/994830/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/994830/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/30/994830/1"}}},"commit":{"parents":[{"commit":"e1db68f194ce9c9a47a99fe53ea7cecc4e240a30","subject":"Fix api-ref request samples containing curl commands instead of JSON","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/e1db68f194ce9c9a47a99fe53ea7cecc4e240a30"}]}],"author":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2026-06-24 22:22:45.000000000","tz":-420},"committer":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2026-06-24 22:40:47.000000000","tz":-420},"subject":"Add API sample structural validation tests","message":"Add API sample structural validation tests\n\nAdd functional test infrastructure and tests that compare API response\nstructure (keys and types) against the JSON sample files in\ndoc/api_samples/. This catches structural drift between the API and\nits documentation without being sensitive to value changes like UUIDs\nor timestamps.\n\nThe test infrastructure boots a real Pecan/WSME app against an\nin-memory SQLite database, seeds test data, and compares responses\nstructurally against the sample files.\n\nSetting GENERATE_SAMPLES\u003d1 regenerates sample files from actual API\nresponses, useful when intentionally changing the API schema.\n\nFix stale api_samples that had drifted from the actual API:\n- attributes: remove \u0027id\u0027 key the API no longer returns\n- accelerator_requests: add \u0027project_id\u0027 and \u0027attach_handle_uuid\u0027\n  keys the API now returns\n\nMove policy_fixture from cyborg/tests/unit/ to cyborg/tests/ so\nfunctional tests can use it without importing the unit package, which\nhas eventlet-related side effects in its __init__.py.\n\nAssisted-by: Claude claude-opus-4-6 claude-code-2.1.190\nChange-Id: I43e8fdae1fb521a041efe5f2d3ab1855bc89cbd8\nSigned-off-by: melanie witt \u003cmelwittt@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/6668d4e840edd5271b4c417ccd92d2db0a51b44b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/6668d4e840edd5271b4c417ccd92d2db0a51b44b"}]},"branch":"refs/heads/master"},"4201679d071af83523027f567fbc2515132a22b8":{"kind":"REWORK","_number":2,"created":"2026-06-25 15:47:47.000000000","uploader":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"ref":"refs/changes/30/994830/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/30/994830/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/994830/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/994830/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/994830/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/30/994830/2"}}},"commit":{"parents":[{"commit":"e1db68f194ce9c9a47a99fe53ea7cecc4e240a30","subject":"Fix api-ref request samples containing curl commands instead of JSON","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/e1db68f194ce9c9a47a99fe53ea7cecc4e240a30"}]}],"author":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2026-06-24 22:22:45.000000000","tz":-420},"committer":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2026-06-25 15:45:10.000000000","tz":-420},"subject":"Add API sample structural validation tests","message":"Add API sample structural validation tests\n\nAdd functional test infrastructure and tests that compare API response\nstructure (keys and types) against the JSON sample files in\ndoc/api_samples/. This catches structural drift between the API and\nits documentation without being sensitive to value changes like UUIDs\nor timestamps.\n\nThe test infrastructure boots a real Pecan/WSME app against an\nin-memory SQLite database, seeds test data, and compares responses\nstructurally against the sample files.\n\nSetting GENERATE_SAMPLES\u003d1 regenerates sample files from actual API\nresponses, useful when intentionally changing the API schema.\n\nFix stale api_samples that had drifted from the actual API:\n- attributes: remove \u0027id\u0027 key the API no longer returns\n- accelerator_requests: add \u0027project_id\u0027 and \u0027attach_handle_uuid\u0027\n  keys the API now returns\n\nRemove the orphan accelerator_requests-before-update-resp.json sample\nwhich was structurally identical to the getone sample and not\nreferenced by any api-ref documentation.\n\nMove policy_fixture from cyborg/tests/unit/ to cyborg/tests/ so\nfunctional tests can use it without importing the unit package, which\nhas eventlet-related side effects in its __init__.py.\n\nAssisted-by: Claude claude-opus-4-6 claude-code-2.1.190\nChange-Id: I43e8fdae1fb521a041efe5f2d3ab1855bc89cbd8\nSigned-off-by: melanie witt \u003cmelwittt@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/4201679d071af83523027f567fbc2515132a22b8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/4201679d071af83523027f567fbc2515132a22b8"}]},"branch":"refs/heads/master"},"12891c37320ee48b3316724b0ce277a3355740f6":{"kind":"REWORK","_number":3,"created":"2026-06-25 18:27:44.000000000","uploader":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"ref":"refs/changes/30/994830/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/30/994830/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/994830/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/994830/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/994830/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/30/994830/3"}}},"commit":{"parents":[{"commit":"e1db68f194ce9c9a47a99fe53ea7cecc4e240a30","subject":"Fix api-ref request samples containing curl commands instead of JSON","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/e1db68f194ce9c9a47a99fe53ea7cecc4e240a30"}]}],"author":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2026-06-24 22:22:45.000000000","tz":-420},"committer":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2026-06-25 17:10:42.000000000","tz":-420},"subject":"Add API sample structural validation tests","message":"Add API sample structural validation tests\n\nAdd functional test infrastructure and tests that compare API response\nstructure (keys and types) against the JSON sample files in\ndoc/api_samples/. This catches structural drift between the API and\nits documentation without being sensitive to value changes like UUIDs\nor timestamps.\n\nThe test infrastructure boots a real Pecan/WSME app against an\nin-memory SQLite database, seeds test data, and compares responses\nstructurally against the sample files.\n\nSetting GENERATE_SAMPLES\u003d1 regenerates sample files from actual API\nresponses, useful when intentionally changing the API schema.\n\nFix stale api_samples that had drifted from the actual API:\n- attributes: remove \u0027id\u0027 key the API no longer returns\n- accelerator_requests: add \u0027project_id\u0027 and \u0027attach_handle_uuid\u0027\n  keys the API now returns, fix malformed placeholder values\n\nRemove the orphan accelerator_requests-before-update-resp.json sample\nwhich was structurally identical to the getone sample and not\nreferenced by any api-ref documentation.\n\nMake .stestr.conf respect OS_TEST_PATH so tox environments can\ncontrol test discovery via setenv rather than --test-path flags.\n\nMove policy_fixture from cyborg/tests/unit/ to cyborg/tests/ so\nfunctional tests can use it without importing the unit package, which\nhas eventlet-related side effects in its __init__.py.\n\nAssisted-by: Claude claude-opus-4-6 claude-code-2.1.190\nChange-Id: I43e8fdae1fb521a041efe5f2d3ab1855bc89cbd8\nSigned-off-by: melanie witt \u003cmelwittt@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/12891c37320ee48b3316724b0ce277a3355740f6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/12891c37320ee48b3316724b0ce277a3355740f6"}]},"branch":"refs/heads/master"},"7400129897644343f7f51cfa943442dde9165b63":{"kind":"REWORK","_number":4,"created":"2026-06-25 20:14:15.000000000","uploader":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"ref":"refs/changes/30/994830/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/30/994830/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/994830/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/994830/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/994830/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/30/994830/4"}}},"commit":{"parents":[{"commit":"e1db68f194ce9c9a47a99fe53ea7cecc4e240a30","subject":"Fix api-ref request samples containing curl commands instead of JSON","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/e1db68f194ce9c9a47a99fe53ea7cecc4e240a30"}]}],"author":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2026-06-24 22:22:45.000000000","tz":-420},"committer":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2026-06-25 20:06:22.000000000","tz":-420},"subject":"Add API sample structural validation tests","message":"Add API sample structural validation tests\n\nAdd functional test infrastructure and tests that compare API response\nstructure (keys and types) against the JSON sample files in\ndoc/api_samples/. This catches structural drift between the API and\nits documentation without being sensitive to value changes like UUIDs\nor timestamps.\n\nThe test infrastructure boots a real Pecan/WSME app against an\nin-memory SQLite database, seeds test data, and compares responses\nstructurally against the sample files. List comparison is\norder-independent, using the same greedy pairing approach as Nova\u0027s\napi_samples_test_base, so DB return order does not cause false\nmismatches.\n\nSetting GENERATE_SAMPLES\u003d1 regenerates sample files from actual API\nresponses, useful when intentionally changing the API schema.\n\nFix stale api_samples that had drifted from the actual API:\n- attributes: remove \u0027id\u0027 key the API no longer returns\n- accelerator_requests: add \u0027project_id\u0027 and \u0027attach_handle_uuid\u0027\n  keys the API now returns, fix malformed placeholder values\n\nRemove the orphan accelerator_requests-before-update-resp.json sample\nwhich was structurally identical to the getone sample and not\nreferenced by any api-ref documentation.\n\nMake .stestr.conf respect OS_TEST_PATH so tox environments can\ncontrol test discovery via setenv rather than --test-path flags.\n\nMove policy_fixture from cyborg/tests/unit/ to cyborg/tests/ so\nfunctional tests can use it without importing the unit package, which\nhas eventlet-related side effects in its __init__.py.\n\nAssisted-by: Claude claude-opus-4-6 claude-code-2.1.190\nChange-Id: I43e8fdae1fb521a041efe5f2d3ab1855bc89cbd8\nSigned-off-by: melanie witt \u003cmelwittt@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/7400129897644343f7f51cfa943442dde9165b63"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/7400129897644343f7f51cfa943442dde9165b63"}]},"branch":"refs/heads/master"},"1a9c396706c15e01c3409d925ad8b017e7785636":{"kind":"REWORK","_number":5,"created":"2026-06-25 20:37:32.000000000","uploader":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"ref":"refs/changes/30/994830/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/30/994830/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/994830/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/994830/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/994830/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/30/994830/5"}}},"commit":{"parents":[{"commit":"e1db68f194ce9c9a47a99fe53ea7cecc4e240a30","subject":"Fix api-ref request samples containing curl commands instead of JSON","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/e1db68f194ce9c9a47a99fe53ea7cecc4e240a30"}]}],"author":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2026-06-24 22:22:45.000000000","tz":-420},"committer":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2026-06-25 20:37:25.000000000","tz":-420},"subject":"Add API sample structural validation tests","message":"Add API sample structural validation tests\n\nAdd functional test infrastructure and tests that compare API response\nstructure (keys and types) against the JSON sample files in\ndoc/api_samples/. This catches structural drift between the API and\nits documentation without being sensitive to value changes like UUIDs\nor timestamps.\n\nThe test infrastructure boots a real Pecan/WSME app against an\nin-memory SQLite database, seeds test data, and compares responses\nstructurally against the sample files. List comparison is\norder-independent, using the same greedy pairing approach as Nova\u0027s\napi_samples_test_base, so DB return order does not cause false\nmismatches.\n\nSetting GENERATE_SAMPLES\u003d1 regenerates sample files from actual API\nresponses, useful when intentionally changing the API schema.\n\nFix stale api_samples that had drifted from the actual API:\n- attributes: remove \u0027id\u0027 key the API no longer returns\n- accelerator_requests: add \u0027project_id\u0027 and \u0027attach_handle_uuid\u0027\n  keys the API now returns, fix malformed placeholder values\n\nRemove the orphan accelerator_requests-before-update-resp.json sample\nwhich was structurally identical to the getone sample and not\nreferenced by any api-ref documentation.\n\nMake .stestr.conf respect OS_TEST_PATH so tox environments can\ncontrol test discovery via setenv rather than --test-path flags.\n\nMove policy_fixture from cyborg/tests/unit/ to cyborg/tests/ so\nfunctional tests can use it without importing the unit package, which\nhas eventlet-related side effects in its __init__.py.\n\nAssisted-by: Claude claude-opus-4-6 claude-code-2.1.190\nChange-Id: I43e8fdae1fb521a041efe5f2d3ab1855bc89cbd8\nSigned-off-by: melanie witt \u003cmelwittt@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/1a9c396706c15e01c3409d925ad8b017e7785636"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/1a9c396706c15e01c3409d925ad8b017e7785636"}]},"branch":"refs/heads/master"},"7edf57d8b318bcd45d11ee0fb76d74ba393c8193":{"kind":"REWORK","_number":6,"created":"2026-06-25 22:01:50.000000000","uploader":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"ref":"refs/changes/30/994830/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/30/994830/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/994830/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/994830/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/994830/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/30/994830/6"}}},"commit":{"parents":[{"commit":"e1db68f194ce9c9a47a99fe53ea7cecc4e240a30","subject":"Fix api-ref request samples containing curl commands instead of JSON","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/e1db68f194ce9c9a47a99fe53ea7cecc4e240a30"}]}],"author":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2026-06-24 22:22:45.000000000","tz":-420},"committer":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2026-06-25 22:01:08.000000000","tz":-420},"subject":"Add API sample structural validation tests","message":"Add API sample structural validation tests\n\nAdd functional test infrastructure and tests that compare API response\nstructure (keys and types) against the JSON sample files in\ndoc/api_samples/. This catches structural drift between the API and\nits documentation without being sensitive to value changes like UUIDs\nor timestamps.\n\nThe test infrastructure boots a real Pecan/WSME app against an\nin-memory SQLite database, seeds test data, and compares responses\nstructurally against the sample files. List comparison is\norder-independent, using the same greedy pairing approach as Nova\u0027s\napi_samples_test_base, so DB return order does not cause false\nmismatches.\n\nSetting GENERATE_SAMPLES\u003d1 regenerates sample files from actual API\nresponses, useful when intentionally changing the API schema.\n\nFix stale api_samples that had drifted from the actual API:\n- attributes: remove \u0027id\u0027 key the API no longer returns\n- accelerator_requests: add \u0027project_id\u0027 and \u0027attach_handle_uuid\u0027\n  keys the API now returns, fix malformed placeholder values\n\nRemove the orphan accelerator_requests-before-update-resp.json sample\nwhich was structurally identical to the getone sample and not\nreferenced by any api-ref documentation.\n\nMake .stestr.conf respect OS_TEST_PATH so tox environments can\ncontrol test discovery via setenv rather than --test-path flags.\n\nMove policy_fixture from cyborg/tests/unit/ to cyborg/tests/ so\nfunctional tests can use it without importing the unit package, which\nhas eventlet-related side effects in its __init__.py.\n\nAssisted-by: Claude claude-opus-4-6 claude-code-2.1.190\nChange-Id: I43e8fdae1fb521a041efe5f2d3ab1855bc89cbd8\nSigned-off-by: melanie witt \u003cmelwittt@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/7edf57d8b318bcd45d11ee0fb76d74ba393c8193"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/7edf57d8b318bcd45d11ee0fb76d74ba393c8193"}]},"branch":"refs/heads/master"},"edce5fb28c9f39c0af95ba0729857586ca6bbc70":{"kind":"REWORK","_number":7,"created":"2026-07-08 05:11:25.000000000","uploader":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"ref":"refs/changes/30/994830/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/30/994830/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/994830/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/994830/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/994830/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/30/994830/7"}}},"commit":{"parents":[{"commit":"e1db68f194ce9c9a47a99fe53ea7cecc4e240a30","subject":"Fix api-ref request samples containing curl commands instead of JSON","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/e1db68f194ce9c9a47a99fe53ea7cecc4e240a30"}]}],"author":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2026-06-24 22:22:45.000000000","tz":-420},"committer":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2026-07-08 01:30:47.000000000","tz":-420},"subject":"Add API sample structural validation tests","message":"Add API sample structural validation tests\n\nAdd functional test infrastructure and tests that compare API response\nstructure (keys and types) against the JSON sample files in\ndoc/api_samples/. This catches structural drift between the API and\nits documentation without being sensitive to value changes like UUIDs\nor timestamps.\n\nThe test infrastructure boots a real Pecan/WSME app against a\nfile-backed SQLite database, seeds test data, and compares responses\nstructurally against the sample files. Structural comparison reduces\neach JSON document to a type skeleton (keys preserved, scalar values\nreplaced by type names, lists sorted) and uses assertEqual.\nmock.ANY stands in for null so optional fields match regardless of\nwhether the sample or response side carries a real value.\n\nExtract the file-backed SQLite setup from DbTestCase into a shared\nDatabaseFixture so both unit DB tests and functional tests can reuse\nit. File-backed SQLite with WAL mode avoids the intermittent\nsegfaults caused by in-memory SQLite with threading (fixed in commit\ncaecf34).\n\nApiSampleTestBase inherits from cyborg.tests.base.TestCase, which\nprovides the config fixture, policy fixture, admin context, and\nself.useFixture() via oslotest.\n\nSetting GENERATE_SAMPLES\u003d1 regenerates sample files from actual API\nresponses, useful when intentionally changing the API schema.\n\nFix stale api_samples that had drifted from the actual API:\n- attributes: remove \u0027id\u0027 key the API no longer returns\n- accelerator_requests: add \u0027project_id\u0027 and \u0027attach_handle_uuid\u0027\n  keys the API now returns; set project_id to non-null as ARQs\n  always have an owning project since the backfill\n\nRemove the orphan accelerator_requests-before-update-resp.json sample\nwhich was structurally identical to the getone sample and not\nreferenced by any api-ref documentation.\n\nMake .stestr.conf respect OS_TEST_PATH so tox environments can\ncontrol test discovery via setenv rather than --test-path flags.\n\nConsolidate test fixtures into cyborg/tests/local_fixtures/ to avoid\nshadowing the third-party fixtures package when IDEs use\ncyborg/tests/ as the test root directory. Move policy_fixture,\ndb_fixture, db_lock_fixture, and the functional test fixtures\n(capture, common) there.\n\nAssisted-by: Claude claude-opus-4-6 claude-code-2.1.202\nChange-Id: I43e8fdae1fb521a041efe5f2d3ab1855bc89cbd8\nSigned-off-by: melanie witt \u003cmelwittt@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/edce5fb28c9f39c0af95ba0729857586ca6bbc70"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/edce5fb28c9f39c0af95ba0729857586ca6bbc70"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
