)]}'
{"id":"openstack%2Fcyborg~1003630","triplet_id":"openstack%2Fcyborg~master~I6a14573b1797e3948ccb02ebbd092ea94661f59e","project":"openstack/cyborg","branch":"master","topic":"bp/generic-nvme-driver-with-secure-cleanup","attention_set":{},"removed_from_attention_set":{"12393":{"account":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"last_update":"2026-09-03 13:04:06.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I6a14573b1797e3948ccb02ebbd092ea94661f59e","subject":"Refactor device_state sentinel handling and Device object","status":"MERGED","created":"2026-09-03 06:59:29.000000000","updated":"2026-09-03 13:05:14.000000000","submitted":"2026-09-03 13:04:06.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":6,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"1003630-bp/generic-nvme-driver-with-secure-cleanup","meta_rev_id":"a7605752a04f5750d7af5c0d3470fed867fe3944","_number":1003630,"virtual_id_number":1003630,"owner":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-09-03 13:04:06.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"},"all":[{"value":2,"date":"2026-09-03 11:58:57.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"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":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"all":[{"value":1,"date":"2026-09-03 11:58:57.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":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":{"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"}],"REVIEWER":[{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-09-03 06:59:57.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-09-03 08:24:03.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-09-03 11:58:57.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"}],"messages":[{"id":"18900ff75a831be8ca6f0d32ab4edcd3b4123f48","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-09-03 06:59:29.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"ca433b1586189e944cc9965e347a0251caddd157","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-09-03 06:59:57.000000000","message":"Patch Set 1:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":1},{"id":"bb32f7df70670f2d9589f8aa5fd6dbf02872b7de","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-09-03 07:12:25.000000000","message":"Patch Set 1:\n\n(1 comment)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/83aa1e46f2f8432ab583910178fcf492\n\n- teim-code-review https://zuul.teim.app/t/main/build/dfa3de8b0d654789a300318cb54fdc6d : SUCCESS in 12m 19s\n\nWarning:\n  The commit subject and first body paragraph present the device_list_by_filters() change as fixing a defect where deepcopy broke the \u0027is\u0027 sentinel check and the sentinel reached SQLAlchemy raising LookupError. However, the parent commit (7bdaaf9) already popped device_state from the filters dict *before* copy.deepcopy(), and the existing db test cyborg/tests/unit/db/test_db_device.py:104 exercising filters\u003d{\u0027device_state\u0027: NULL_FILTER} passed at base. The api.py hunk is therefore a behavior-preserving restructure plus an explanatory comment, not a runtime fix.\n\n**Severity**: SUGGESTION | **Confidence**: 0.7\n\n**Impact**: Reviewers and release/backport triage reading the subject \u0027Fix device_state filter sentinel\u0027 may believe master had a runtime LookupError bug and treat this as a backport-worthy fix, when the change is a refactor with no user-visible behavior change in that function.\n\n**Recommendation**:\nReword the subject/body to describe the api.py hunk accurately, e.g. \u0027Refactor device_state sentinel handling in device_list_by_filters()\u0027 or note that the ordering constraint is being made explicit, keeping \u0027Fix\u0027 for the Device.create() explicit-value behavior change if desired.","accounts_in_message":[],"_revision_number":1},{"id":"2473abdb9bc4bd1104ef377abb73b36c3074610a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-09-03 07:24:21.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"6a2a5623c4ff556f86830e7463dcda2bfe403301","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-09-03 07:24:29.000000000","message":"Patch Set 2:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":2},{"id":"7e3711ee77d62b92b45f1bda425b97f4b2a7add1","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-09-03 07:36:04.000000000","message":"Patch Set 2:\n\n(1 comment)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/2812e2b8647944ae8a2debda557fa8e9\n\n- teim-code-review https://zuul.teim.app/t/main/build/2c1b16c4ac50441f814952a5a3c3ee42 : SUCCESS in 11m 27s","accounts_in_message":[],"_revision_number":2},{"id":"1f4b3e8a37fe1fe7165e160ed2376581d5f254e1","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-03 08:24:03.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a84a1b2ea5be4d59bdedca39217602d8\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/105da04cec1146768b5badfa5b640415 : SUCCESS in 4m 43s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/ab77d80746cc4026863c8b97a7eed9ef : SUCCESS in 4m 40s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/36c97007e98a4419899e02dc95528cf0 : SUCCESS in 5m 12s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2c52e97ff8b94badb8e69023a288eeb6 : SUCCESS in 4m 35s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/2a7f06d46a6a4a2ba55331b9397d7843 : SUCCESS in 3m 24s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/a3850cac2cc946b9bac42d525eaeebc8 : SUCCESS in 4m 13s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/b17dd79fb40d405381f24e16cd0c89cb : SUCCESS in 6m 31s (non-voting)\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/dd2664a5485849f1932a6d9221feff44 : SUCCESS in 5m 48s\n- cyborg-tempest-py3 https://zuul.opendev.org/t/openstack/build/8b127d98f95d4a34bcf8138edc963707 : SUCCESS in 52m 41s\n- cyborg-tempest-ipv6 https://zuul.opendev.org/t/openstack/build/fa7decf133df4e209b99eeeea2516caa : SUCCESS in 34m 46s\n- cyborg-grenade https://zuul.opendev.org/t/openstack/build/bec373f3524944b997a1c66acd8c4bfb : SUCCESS in 56m 05s\n- cyborg-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/0d5f54ff2f2d459b902a03648ef14f6b : SUCCESS in 53m 32s\n- cyborg-tempest-srbac https://zuul.opendev.org/t/openstack/build/98dc322ba8af409d8b0c14de37c9ba62 : SUCCESS in 25m 37s","accounts_in_message":[],"_revision_number":2},{"id":"b770252c70ee1848dbf907d6d72ea99365001637","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-09-03 08:28:47.000000000","message":"Patch Set 3: Patch Set 2 was rebased\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"56bc6f04ad2f1bbb6ef23fbca306869d3d8190b7","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-09-03 08:29:23.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"fa08bf4df97204cb923c904f0ad38e2f9cda4a08","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-09-03 08:29:30.000000000","message":"Patch Set 3:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":3},{"id":"ef28e859b33bf1d8802826da5acae42d22a9e76d","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-09-03 08:39:57.000000000","message":"Patch Set 3:\n\n(1 comment)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/04bb085ec4e241929182d2ba2300e911\n\n- teim-code-review https://zuul.teim.app/t/main/build/b09bf856fa7f4de4ab72347c43ec5eeb : SUCCESS in 10m 19s","accounts_in_message":[],"_revision_number":3},{"id":"e712ff2478822035ccf55055786e8243a909d192","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-03 09:42:21.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4d9c7b8e1bbf41f3bda236049c929b38\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/d4bc6b4c6fbf4fec8858c1aa19cf524c : SUCCESS in 4m 53s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/aaab98b361d44c82b966c8c4ef2fc308 : SUCCESS in 6m 05s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f690eb77b58640e2ad250102284192dd : SUCCESS in 8m 20s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/59f98f303f114c7585931fd3c9766e2b : SUCCESS in 3m 59s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/3017ee80d5304e9883d4a265ad20ba89 : SUCCESS in 4m 34s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/83caf08727eb49c18865fb18915ad38f : SUCCESS in 4m 44s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/0d9275c0f1c04550a65aae6d501b44ca : SUCCESS in 7m 39s (non-voting)\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/2a2d1ce1c8a3424aa8b16598fd0721ad : SUCCESS in 4m 01s\n- cyborg-tempest-py3 https://zuul.opendev.org/t/openstack/build/4d64008911c146878b0f8b54661acf39 : SUCCESS in 56m 15s\n- cyborg-tempest-ipv6 https://zuul.opendev.org/t/openstack/build/ecf4145736d54029bdea243cf0ac6402 : SUCCESS in 52m 43s\n- cyborg-grenade https://zuul.opendev.org/t/openstack/build/aa1aad7adcf9410298e930e16f549ae6 : SUCCESS in 55m 47s\n- cyborg-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/50f06e0ea27e44f6804894e4b9fb9b25 : SUCCESS in 51m 40s\n- cyborg-tempest-srbac https://zuul.opendev.org/t/openstack/build/88c7b530a94a4dd98e16a9d75cc5a71f : SUCCESS in 1h 02m 26s","accounts_in_message":[],"_revision_number":3},{"id":"3fdb17da96dd68fe8514df9b494c501fc243abf8","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-09-03 09:45:14.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"364f8485bc84d65906226bde1b92f06a256605e0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-09-03 09:45:42.000000000","message":"Patch Set 4: Patch Set 3 was rebased\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":4},{"id":"b57d55434f3060dcfa611a883f29b7e52eb10e0d","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-09-03 09:45:51.000000000","message":"Patch Set 4:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":4},{"id":"8b56701a152cf3f64612e0d403368a782e007e35","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-09-03 09:57:08.000000000","message":"Patch Set 4:\n\n(1 comment)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/c0e88a338c13484788f1d6aab1e821e7\n\n- teim-code-review https://zuul.teim.app/t/main/build/df72978f1f7c4643b717a5294983654f : SUCCESS in 11m 09s","accounts_in_message":[],"_revision_number":4},{"id":"4d356935ca431b3bf2d350ebc775e3e50ea4212a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-09-03 09:58:59.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"1165807329a8f3175252879119aec98785f5b6dc","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-09-03 09:59:08.000000000","message":"Patch Set 5:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":5},{"id":"ad0b3e20b2636537d88ad197d539f271e95c520a","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-09-03 10:07:49.000000000","message":"Topic set to bp/generic-nvme-driver-with-secure-cleanup","accounts_in_message":[],"_revision_number":5},{"id":"e94683b2392367c38d63a681f6ccc2069aee2007","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-09-03 10:28:28.000000000","message":"Patch Set 5:\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/65e5380d5c6a41a88b75134990c7b510\n\n- teim-code-review https://zuul.teim.app/t/main/build/448aa07cc72644daaab233008f54e5b7 : SUCCESS in 20m 24s","accounts_in_message":[],"_revision_number":5},{"id":"b137df71c7e20c3cb32daf7cf1089a7501a5e696","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-03 11:30:29.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/327d26a5b2d24a4790dcae727b844824\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/0949db064b684bf190ba693f46da288e : SUCCESS in 6m 54s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/716bb9960e304161a4363ddc2a69e256 : SUCCESS in 6m 23s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/347c9aff8f2f4f61aa174b7552df29a7 : SUCCESS in 8m 07s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6d7ff5eb8c194c3f92cb4716284bb70e : SUCCESS in 4m 23s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/a829725ac36c4023a9fadc339c80054d : SUCCESS in 5m 49s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/68e1451baa49434bb0bf9643945e1c78 : SUCCESS in 4m 46s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/277e82f8aebc4e2e9acb6e6fdaad5b56 : SUCCESS in 7m 10s (non-voting)\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/3fefd8c17a4547738925a489d13ed5c4 : SUCCESS in 4m 30s\n- cyborg-tempest-py3 https://zuul.opendev.org/t/openstack/build/9680f5ad5c4843d3a8bad54b6aa2b291 : SUCCESS in 54m 47s\n- cyborg-tempest-ipv6 https://zuul.opendev.org/t/openstack/build/f63e5a1c45f34ba391ed78d1a03fad39 : SUCCESS in 44m 40s\n- cyborg-grenade https://zuul.opendev.org/t/openstack/build/14991ff261274799b3ab4f5244855301 : SUCCESS in 58m 28s\n- cyborg-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/28e39812356e4877b93b95c37d98c94a : SUCCESS in 53m 37s\n- cyborg-tempest-srbac https://zuul.opendev.org/t/openstack/build/5ee87ec8809a4ffe91da674119759e5e : SUCCESS in 1h 01m 52s","accounts_in_message":[],"_revision_number":5},{"id":"46fee2f6e1514215fee627ccfd16f161a52b7f28","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-09-03 11:58:57.000000000","message":"Patch Set 5: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":5},{"id":"b3ed3ee30376c4dfcfb3009f5521fa447904a1fa","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-03 11:59:23.000000000","message":"Patch Set 5: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":5},{"id":"e718d6d20048b2e98647ce83368538bfa9868614","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-03 13:04:06.000000000","message":"Patch Set 5: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/eb16ae9735c344b8b25d398d7c54cdfd\n\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/e56db00ec777404e914e3ab368b701cc : SUCCESS in 5m 12s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5d29faf114a0409c8bcb79f3fa07d7b2 : SUCCESS in 5m 27s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1c1aaef96ed14490a7fade90992bf6ae : SUCCESS in 2m 51s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/989f5c2449dc4d0a8d68d711bdf385b8 : SUCCESS in 4m 16s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/edc24a322d194854872b436692b9fbaa : SUCCESS in 2m 47s\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/367f8682285a4c7f940cfb01b941e2f9 : SUCCESS in 5m 23s\n- cyborg-tempest-py3 https://zuul.opendev.org/t/openstack/build/67115e7f55c348d998b645e1dbef6b15 : SUCCESS in 58m 43s\n- cyborg-tempest-ipv6 https://zuul.opendev.org/t/openstack/build/31c07ade047b4f228155926791b29032 : SUCCESS in 36m 21s\n- cyborg-grenade https://zuul.opendev.org/t/openstack/build/7d32200d372a44d0bb12ed9451caa993 : SUCCESS in 42m 09s\n- cyborg-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/4f1fbd8cbbef4d53b1a9010732825c49 : SUCCESS in 1h 01m 25s\n- cyborg-tempest-srbac https://zuul.opendev.org/t/openstack/build/c670283fd0894f4686b73e33f49aa29f : SUCCESS in 27m 13s","accounts_in_message":[],"_revision_number":5},{"id":"b213a29b2cae698e6e65092313159906a97ffe45","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-03 13:04:06.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":5},{"id":"a7605752a04f5750d7af5c0d3470fed867fe3944","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-03 13:05:14.000000000","message":"Patch Set 5:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/7547ff024ab1467e9ebb94654cd2c5a0\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/32dd807ff0cc435582eddd9eef802850 : SUCCESS in 51s","accounts_in_message":[],"_revision_number":5}],"current_revision_number":5,"current_revision":"772d284fddd0242316023b22d39812d5a0252ffc","revisions":{"dba9654fc47275e559a12c41cb0e1a81794d1335":{"kind":"REWORK","_number":1,"created":"2026-09-03 06:59:29.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/30/1003630/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/30/1003630/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/1003630/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/1003630/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/1003630/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/30/1003630/1"}}},"commit":{"parents":[{"commit":"eec56f974869135f556dbaa933e8fd746edc22be","subject":"Add online data migration and upgrade check for device_state backfill","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/eec56f974869135f556dbaa933e8fd746edc22be"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-09-03 06:38:29.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-09-03 06:45:47.000000000","tz":330},"subject":"Fix device_state filter sentinel and refactor Device object","message":"Fix device_state filter sentinel and refactor Device object\n\ndevice_list_by_filters() now deep-copies the filters dict upfront.\nThe device_state sentinel (NULL_FILTER/NOT_NULL_FILTER) is read from\nthe original parameter before deepcopy, because deepcopy() allocates\na new object and breaks the \u0027is\u0027 identity check, causing the sentinel\nto reach SQLAlchemy and raise a LookupError on the enum column.\n\nDevice._from_db_object() uses super() instead of the explicit parent\nclass name. A new _save(context, updates) helper consolidates the\ndevice_update() + obj_reset_changes() calls shared by save() and the\nNULL device_state healing path.\n\nDevice.create() checks \u0027device_state\u0027 not in self rather than\ninspecting the serialised dict, so an explicitly set value is never\nsilently overridden.\n\nFake device fixtures now include device_state in get_fake_devices_as_dict()\nso all callers receive a realistic value. A new unit test verifies\nthat _from_db_object() does not overwrite a non-NULL device_state\nalready present in the database.\n\nAssisted-By: Claude Opus 4.6\nChange-Id: I6a14573b1797e3948ccb02ebbd092ea94661f59e\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/dba9654fc47275e559a12c41cb0e1a81794d1335"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/dba9654fc47275e559a12c41cb0e1a81794d1335"}]},"branch":"refs/heads/master"},"5ff82f4a951db7137ee637a515106e28438c37e0":{"kind":"REWORK","_number":2,"created":"2026-09-03 07:24:21.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/30/1003630/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/30/1003630/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/1003630/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/1003630/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/1003630/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/30/1003630/2"}}},"commit":{"parents":[{"commit":"eec56f974869135f556dbaa933e8fd746edc22be","subject":"Add online data migration and upgrade check for device_state backfill","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/eec56f974869135f556dbaa933e8fd746edc22be"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-09-03 06:38:29.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-09-03 07:23:27.000000000","tz":330},"subject":"Refactor device_state sentinel handling and Device object","message":"Refactor device_state sentinel handling and Device object\n\ndevice_list_by_filters() now deep-copies the filters dict upfront.\nThe device_state sentinel (NULL_FILTER/NOT_NULL_FILTER) is read from\nthe original parameter before deepcopy because deepcopy() allocates\na new object and \u0027is\u0027 identity checks on the copy would silently fail.\n\nDevice._from_db_object() uses super() instead of the explicit parent\nclass name. A new _save(context, updates) helper consolidates the\ndevice_update() + obj_reset_changes() calls shared by save() and the\nNULL device_state healing path.\n\nDevice.create() checks \u0027device_state\u0027 not in self rather than\ninspecting the serialised dict, so an explicitly set value is never\nsilently overridden.\n\nFake device fixtures now include device_state in\nget_fake_devices_as_dict() so all callers receive a realistic value.\nA new unit test verifies that _from_db_object() does not overwrite a\nnon-NULL device_state already present in the database.\n\nAssisted-By: Claude Opus 4.6\nChange-Id: I6a14573b1797e3948ccb02ebbd092ea94661f59e\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/5ff82f4a951db7137ee637a515106e28438c37e0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/5ff82f4a951db7137ee637a515106e28438c37e0"}]},"branch":"refs/heads/master"},"e3c298a45d4d328107ed7e7fbf545753fd61f459":{"kind":"TRIVIAL_REBASE","_number":3,"created":"2026-09-03 08:28:47.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/30/1003630/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/30/1003630/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/1003630/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/1003630/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/1003630/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/30/1003630/3"}}},"commit":{"parents":[{"commit":"214cebe0182e81bed41d323d6ef0868230346b9e","subject":"Add NVMe driver devstack plugin support","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/214cebe0182e81bed41d323d6ef0868230346b9e"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-09-03 06:38:29.000000000","tz":330},"committer":{"name":"chandan kumar","email":"chkumar@redhat.com","date":"2026-09-03 08:28:47.000000000","tz":0},"subject":"Refactor device_state sentinel handling and Device object","message":"Refactor device_state sentinel handling and Device object\n\ndevice_list_by_filters() now deep-copies the filters dict upfront.\nThe device_state sentinel (NULL_FILTER/NOT_NULL_FILTER) is read from\nthe original parameter before deepcopy because deepcopy() allocates\na new object and \u0027is\u0027 identity checks on the copy would silently fail.\n\nDevice._from_db_object() uses super() instead of the explicit parent\nclass name. A new _save(context, updates) helper consolidates the\ndevice_update() + obj_reset_changes() calls shared by save() and the\nNULL device_state healing path.\n\nDevice.create() checks \u0027device_state\u0027 not in self rather than\ninspecting the serialised dict, so an explicitly set value is never\nsilently overridden.\n\nFake device fixtures now include device_state in\nget_fake_devices_as_dict() so all callers receive a realistic value.\nA new unit test verifies that _from_db_object() does not overwrite a\nnon-NULL device_state already present in the database.\n\nAssisted-By: Claude Opus 4.6\nChange-Id: I6a14573b1797e3948ccb02ebbd092ea94661f59e\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/e3c298a45d4d328107ed7e7fbf545753fd61f459"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/e3c298a45d4d328107ed7e7fbf545753fd61f459"}]},"branch":"refs/heads/master","description":"Rebase","conflicts":{"base":"eec56f974869135f556dbaa933e8fd746edc22be","ours":"5ff82f4a951db7137ee637a515106e28438c37e0","theirs":"214cebe0182e81bed41d323d6ef0868230346b9e","merge_strategy":"recursive","contains_conflicts":false}},"ec791647b178ce284e32ba6d02a5a560285a9d79":{"kind":"TRIVIAL_REBASE","_number":4,"created":"2026-09-03 09:45:42.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/30/1003630/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/30/1003630/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/1003630/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/1003630/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/1003630/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/30/1003630/4"}}},"commit":{"parents":[{"commit":"eec56f974869135f556dbaa933e8fd746edc22be","subject":"Add online data migration and upgrade check for device_state backfill","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/eec56f974869135f556dbaa933e8fd746edc22be"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-09-03 06:38:29.000000000","tz":330},"committer":{"name":"chandan kumar","email":"chkumar@redhat.com","date":"2026-09-03 09:45:42.000000000","tz":0},"subject":"Refactor device_state sentinel handling and Device object","message":"Refactor device_state sentinel handling and Device object\n\ndevice_list_by_filters() now deep-copies the filters dict upfront.\nThe device_state sentinel (NULL_FILTER/NOT_NULL_FILTER) is read from\nthe original parameter before deepcopy because deepcopy() allocates\na new object and \u0027is\u0027 identity checks on the copy would silently fail.\n\nDevice._from_db_object() uses super() instead of the explicit parent\nclass name. A new _save(context, updates) helper consolidates the\ndevice_update() + obj_reset_changes() calls shared by save() and the\nNULL device_state healing path.\n\nDevice.create() checks \u0027device_state\u0027 not in self rather than\ninspecting the serialised dict, so an explicitly set value is never\nsilently overridden.\n\nFake device fixtures now include device_state in\nget_fake_devices_as_dict() so all callers receive a realistic value.\nA new unit test verifies that _from_db_object() does not overwrite a\nnon-NULL device_state already present in the database.\n\nAssisted-By: Claude Opus 4.6\nChange-Id: I6a14573b1797e3948ccb02ebbd092ea94661f59e\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/ec791647b178ce284e32ba6d02a5a560285a9d79"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/ec791647b178ce284e32ba6d02a5a560285a9d79"}]},"branch":"refs/heads/master","description":"Rebase","conflicts":{"base":"214cebe0182e81bed41d323d6ef0868230346b9e","ours":"e3c298a45d4d328107ed7e7fbf545753fd61f459","theirs":"eec56f974869135f556dbaa933e8fd746edc22be","merge_strategy":"recursive","contains_conflicts":false}},"772d284fddd0242316023b22d39812d5a0252ffc":{"kind":"REWORK","_number":5,"created":"2026-09-03 09:58:59.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/30/1003630/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/30/1003630/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/1003630/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/1003630/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/30/1003630/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/30/1003630/5"}}},"commit":{"parents":[{"commit":"eec56f974869135f556dbaa933e8fd746edc22be","subject":"Add online data migration and upgrade check for device_state backfill","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/eec56f974869135f556dbaa933e8fd746edc22be"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-09-03 06:38:29.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-09-03 09:57:35.000000000","tz":330},"subject":"Refactor device_state sentinel handling and Device object","message":"Refactor device_state sentinel handling and Device object\n\ndevice_list_by_filters() now deep-copies the filters dict upfront.\nThe device_state sentinel (NULL_FILTER/NOT_NULL_FILTER) is read from\nthe original parameter before deepcopy because deepcopy() allocates\na new object and \u0027is\u0027 identity checks on the copy would silently fail.\n\nDevice._from_db_object() uses super() instead of the explicit parent\nclass name. A new _save(context, updates) helper consolidates the\ndevice_update() + obj_reset_changes() calls shared by save() and the\nNULL device_state healing path.\n\nDevice.create() checks \u0027device_state\u0027 not in self rather than\ninspecting the serialised dict, so an explicitly set value is never\nsilently overridden.\n\nFake device fixtures now include device_state in\nget_fake_devices_as_dict() so all callers receive a realistic value.\nA new unit test verifies that _from_db_object() does not overwrite a\nnon-NULL device_state already present in the database.\n\nAssisted-By: Claude Opus 4.6\nChange-Id: I6a14573b1797e3948ccb02ebbd092ea94661f59e\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/772d284fddd0242316023b22d39812d5a0252ffc"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/772d284fddd0242316023b22d39812d5a0252ffc"}]},"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":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}},{"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":""}}}]}
