)]}'
{"id":"openstack%2Fcyborg-specs~985349","triplet_id":"openstack%2Fcyborg-specs~master~If6802a8f7b87fb54803e16381843d63f78f7c2d3","project":"openstack/cyborg-specs","branch":"master","topic":"nvme_spec","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-02 11:24:37.000000000","reason":"Change was submitted"},"34452":{"account":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"last_update":"2026-07-02 11:24:37.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-02 11:08:44.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"}},"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-01 12:04:00.000000000","reason":"removed on reply"},"12393":{"account":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"last_update":"2026-07-02 11:24:37.000000000","reason":"Change was submitted"},"7166":{"account":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"last_update":"2026-07-02 11:24:37.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"If6802a8f7b87fb54803e16381843d63f78f7c2d3","subject":"Add generic NVMe driver spec with secure cleanup","status":"MERGED","created":"2026-04-20 09:40:59.000000000","updated":"2026-07-02 16:48:27.000000000","submitted":"2026-07-02 11:24:37.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":360,"unresolved_comment_count":1,"has_review_started":true,"submission_id":"985349-nvme_spec","meta_rev_id":"3522c793119b9f70dd77beea16df396f5720ba8b","_number":985349,"virtual_id_number":985349,"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":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"value":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},{"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-02 11:24:37.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"}],"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":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"all":[{"value":1,"date":"2026-07-02 16:48:27.000000000","post_submit":true,"permitted_voting_range":{"min":1,"max":1},"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"value":2,"date":"2026-07-02 11:08:44.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":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},{"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"]},{"value":0,"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"}],"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":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"value":1,"date":"2026-07-02 11:09:29.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":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},{"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"]},{"value":0,"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"}],"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":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},{"_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"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-04-20 09:41:06.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-04-20 09:53:30.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-05-13 15:22:12.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":"CC"},{"updated":"2026-05-20 15:35:40.000000000","updated_by":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"reviewer":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"state":"REVIEWER"},{"updated":"2026-06-03 16:06:13.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-06-30 15:39:37.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-06-30 23:38:40.000000000","updated_by":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"reviewer":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"state":"CC"},{"updated":"2026-07-01 18:41:31.000000000","updated_by":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"reviewer":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"state":"REVIEWER"}],"messages":[{"id":"83e48cf973327f89afa17573c643750f5e8a4829","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-20 09:40:59.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"67eb014ef5daa01d2d47c3f839dc7c28262bb62b","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-04-20 09:41:06.000000000","message":"Patch Set 1:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":1},{"id":"c12c9e53fb6441175762a8469a7bff663f1ce6f6","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-20 09:53:30.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/4c3b28422a7c497a8766d0f6bbc39844\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/41f89971630f4bb09f5ac03469fb9ab2 : FAILURE in 2m 43s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/affd8bb98ba441c0825f38c16c90f3ee : FAILURE in 3m 27s","accounts_in_message":[],"_revision_number":1},{"id":"059ea17485029890d178319bc5361442a1945c26","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-04-20 10:05:45.000000000","message":"Patch Set 1:\n\nBuild failed (automatic-ci pipeline). To rerun just this ci comment\n\"teim-ci: auto\". To rerun other ci jobs comment \"recheck\".\nNote this ci does run on \"recheck\".\n\nhttps://zuul.teim.app/t/main/buildset/ada87f294fdd4c79ab8a3371d45e981e\n\n- teim-code-review https://zuul.teim.app/t/main/build/d7d7e17ed9ce4128ae43c2c3798427be : FAILURE in 24m 24s","accounts_in_message":[],"_revision_number":1},{"id":"facea24436ebc84233af4aa490544a6744f6d942","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-20 10:13:49.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"7f137ba26cc2f794a687b651172c2b5a2882fc9a","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-04-20 10:13:56.000000000","message":"Patch Set 2:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":2},{"id":"148af4c00e06f667014f2b9128abb21db1368c79","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-04-20 10:29:10.000000000","message":"Patch Set 2:\n\n(14 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/9815dedc559d417faa81e0c0661076d5\n\n- teim-code-review https://zuul.teim.app/t/main/build/26e31250bb814a96873e32b40ea177a7 : SUCCESS in 15m 04s","accounts_in_message":[],"_revision_number":2},{"id":"82dab1a73c58b8ac8e5ee4bfff6c2de9362acfa4","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-20 10:32:48.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/fb4635b9391549dc9e84b0ed3562869f\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/bbbdaa4c8bce48488b7f0aaf8856d639 : SUCCESS in 4m 14s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d5c7d4e56df14ab498ed21db3be62ea2 : SUCCESS in 3m 30s","accounts_in_message":[],"_revision_number":2},{"id":"07bce8d11cbe2aa595b50d6435d6d968915caab3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-29 14:43:42.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"ffa2fb77884f5388a6979d84510def23db804389","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-04-29 14:43:49.000000000","message":"Patch Set 3:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":3},{"id":"93fd8a6f44e337fe3247ef931985dfe553d057df","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-04-29 15:10:29.000000000","message":"Patch Set 3:\n\n(13 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/cf5d3cb27d624267b5258d0b8e10277c\n\n- teim-code-review https://zuul.teim.app/t/main/build/5e947c51bf654f319951292d3b9aabc7 : SUCCESS in 23m 54s","accounts_in_message":[],"_revision_number":3},{"id":"8301cb1c0deab0c3c2aa38803409d024608750f1","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-29 18:12:13.000000000","message":"Patch Set 3: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/504ea6e0630b48ee878abfdaf7d39b9e\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d28be957df374fde8f41d8d167efe58d : SUCCESS in 3m 44s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a34c9960b4a44fdf8c40bcd7bd17966b : FAILURE in 3m 13s","accounts_in_message":[],"_revision_number":3},{"id":"96c2fe36f38b5fa2d2f3a1b9084c914fbda8cc5b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-05-08 12:14:37.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":4},{"id":"cf1daaafa4171e248967bb1e1106ec5d1162c350","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-05-08 12:14:55.000000000","message":"Patch Set 4: Workflow-1","accounts_in_message":[],"_revision_number":4},{"id":"2edc35b6840923a47eda87b40ca9597ecdc3551a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-08 12:20:58.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/af285b97b33543e78e8219fb97e8047e\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/762e61957d254b0e959d4795e9ae7fab : SUCCESS in 3m 34s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7e43d1c2e3e94f8ea64ed6d5c53ba8f3 : SUCCESS in 4m 30s","accounts_in_message":[],"_revision_number":4},{"id":"363e7604ea879b5f92e5eb66b61c9423431f1b7a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-05-11 09:36:54.000000000","message":"Uploaded patch set 5.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n* Workflow-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":5},{"id":"4d5db4f86cce032f4276689960e21a4414ab69d7","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-05-11 09:40:00.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"520fc1dc5bc6d167f77e769a612ebb6aa87bf19d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-11 09:49:52.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a49866fb88ae45e8ac8487fed2fb76b9\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/cfac35d158974986abf2e0d7a823e36f : SUCCESS in 3m 59s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f34de139309e4df18275dbaba03d5b27 : SUCCESS in 2m 57s","accounts_in_message":[],"_revision_number":6},{"id":"b514d2982a9483145ca0298b2972370326a3066e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-05-13 08:12:35.000000000","message":"Uploaded patch set 7.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":7},{"id":"73489a9678b6eca459d86f8cbb55b07497d80451","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-13 08:18:21.000000000","message":"Patch Set 7: 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/0ab279ab15c94712b09f67daa9f6070c\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7eaeefa3e0144d7d84ac8773728d520c : FAILURE in 2m 05s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c66422fd8e244cb8af0e069f8456220d : FAILURE in 4m 05s","accounts_in_message":[],"_revision_number":7},{"id":"631668676bbfb9198cb8cbfeca81d7ac45fd5762","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-05-13 08:23:40.000000000","message":"Uploaded patch set 8.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":8},{"id":"ebc7bb133891edfcc7349f290f633637ad6cb05f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-13 08:29:58.000000000","message":"Patch Set 8: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c73e58d920b04cc2a9ed5941aea300b0\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9aca3c07efbb496a9776218b257303d6 : SUCCESS in 2m 33s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ecbabeb3518f4e46b9cc5f37c1b20843 : SUCCESS in 2m 13s","accounts_in_message":[],"_revision_number":8},{"id":"07cfb6446dc1593863cf4835d0d40fcf2ba4aaf0","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-05-13 15:22:12.000000000","message":"Patch Set 8:\n\n(7 comments)","accounts_in_message":[],"_revision_number":8},{"id":"5d15c10f49ccd940478fecd134bf8cbbb8a5d32c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-05-19 06:12:56.000000000","message":"Uploaded patch set 9.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":9},{"id":"e184f0d96aa4a41cde93298bfdcdb35b1f81d5d3","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-05-19 06:14:44.000000000","message":"Patch Set 9:\n\n(5 comments)","accounts_in_message":[],"_revision_number":9},{"id":"cc22908e8852b296a65561e7c04df99a0e19d33d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-19 06:20:55.000000000","message":"Patch Set 9: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f353ad9cc19b4743bdc4a1d3197f01e8\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8c11b8d65a9b4e9fafcf6e78ea0318d0 : SUCCESS in 2m 10s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/689fd4ac7c1a4f1590d40b70fc9436ad : SUCCESS in 2m 41s","accounts_in_message":[],"_revision_number":9},{"id":"10f50c815eb795fec4261fae5a0e7c5a4f316757","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-05-19 07:19:27.000000000","message":"Uploaded patch set 10.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":10},{"id":"a57e6fab0658fa63713df9e34b405bc7e555cbc3","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-05-19 07:25:22.000000000","message":"Patch Set 9:\n\n(6 comments)","accounts_in_message":[],"_revision_number":9},{"id":"31e68595f7a8778603c0a067437c6abe1a54c36b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-19 07:27:41.000000000","message":"Patch Set 10: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/050f8adcf7aa41d5a1bcbf11511f66cc\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7bf53b8b1d3e45d198e1bda65881b986 : SUCCESS in 3m 01s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/80a120af39864ed1b04b3a4e3443a4da : SUCCESS in 2m 36s","accounts_in_message":[],"_revision_number":10},{"id":"cbbd477b89720f5289c15024c36f3d305e1bddb1","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-05-19 07:32:51.000000000","message":"Patch Set 10:\n\n(1 comment)","accounts_in_message":[],"_revision_number":10},{"id":"e589fdf9e9d0dbc3ea17a46ce3b62b05d2ecdefe","author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"date":"2026-05-20 15:35:40.000000000","message":"Patch Set 10: Code-Review-1\n\n(9 comments)","accounts_in_message":[],"_revision_number":10},{"id":"021287ad55d98a8a0e4369ab96195563565e4e5b","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-06-02 10:16:48.000000000","message":"Patch Set 10:\n\n(6 comments)","accounts_in_message":[],"_revision_number":10},{"id":"978265488b8d3b555248a566a56886f281abd363","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-02 11:48:05.000000000","message":"Patch Set 10:\n\n(1 comment)","accounts_in_message":[],"_revision_number":10},{"id":"78d6aa70398fceec0681c49652e2c855039e5341","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-06-03 16:06:13.000000000","message":"Patch Set 10: Code-Review-1\n\n(62 comments)","accounts_in_message":[],"_revision_number":10},{"id":"238d2dc7bfdc76b0cb4d1c756cf8ff85a3c2ddca","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-08 06:16:32.000000000","message":"Patch Set 10: Workflow-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":10},{"id":"95be92826e01abe5c052c5be5c4ce2a230675f4a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-16 07:04:07.000000000","message":"Uploaded patch set 11.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n* Workflow-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":11},{"id":"bc91374ca1abdcaca925bb403c1ec66de2a51cec","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-16 07:10:06.000000000","message":"Patch Set 11: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/802c7f48de044d049ddf180ebbab9f10\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/58d21e088a1946f38a6c13c49e0b8c24 : SUCCESS in 3m 27s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/03e180c5f1554c1f9f7f3cf72d937e3a : SUCCESS in 2m 15s","accounts_in_message":[],"_revision_number":11},{"id":"58060b030dcbe7b315bec92b80263016f27fb90c","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-16 07:18:16.000000000","message":"Patch Set 11: Workflow-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":11},{"id":"62abc69ea2d4fe61e8f70b6202e8328eb4f110c5","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-06-17 04:45:31.000000000","message":"Patch Set 11:\n\n(19 comments)","accounts_in_message":[],"_revision_number":11},{"id":"b673c95737bca69a56a5bffb9ae658afe7cecb3a","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-06-17 04:46:02.000000000","message":"Patch Set 11:\n\n(1 comment)","accounts_in_message":[],"_revision_number":11},{"id":"6ec310a2e8f810269a651f783e1f386837663403","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-06-17 15:27:52.000000000","message":"Patch Set 11:\n\n(48 comments)","accounts_in_message":[],"_revision_number":11},{"id":"cdcbbda134e8e639434e7e48ef5b2177b983e465","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-19 04:56:28.000000000","message":"Uploaded patch set 12.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n* Workflow-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":12},{"id":"7ced7e93b24d071fde3ed99d78ef8da3c2ef6c84","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-19 04:56:45.000000000","message":"Patch Set 12:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":12},{"id":"efeff99ab500f2f0bd0184246af56ce4959f4c19","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-19 04:57:23.000000000","message":"Patch Set 11: -Workflow\n\n(13 comments)","accounts_in_message":[],"_revision_number":11},{"id":"16699dd390c6dda4eb60d2ba85c4ae4bc477d3ed","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-19 05:04:33.000000000","message":"Patch Set 12: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e0ca9d4430754f99ae5e31f5634047ed\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d4d23ad523d741bfbb3698ba90322e29 : SUCCESS in 2m 52s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/731a1e9c724541838df2c6e1607b5b98 : SUCCESS in 2m 51s","accounts_in_message":[],"_revision_number":12},{"id":"121686438d032edfd72c2ed7d5bb48c42e1b9c87","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-19 05:05:03.000000000","message":"Patch Set 12:\n\n(2 comments)","accounts_in_message":[],"_revision_number":12},{"id":"1c3b28468db78d32198594edf4aaaacd48a29cf2","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-19 05:08:31.000000000","message":"Patch Set 12:\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/775c40d32d15494897e232b749696195\n\n- teim-code-review https://zuul.teim.app/t/main/build/2a07077adb15418dad6cbe529a4c260a : SUCCESS in 11m 35s","accounts_in_message":[],"_revision_number":12},{"id":"4dc771e9eef187a82999ba8682dbea8e05971713","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-19 05:08:34.000000000","message":"Patch Set 12:\n\n(1 comment)","accounts_in_message":[],"_revision_number":12},{"id":"bdc24e7c58526707f7015bb40d75fc3c2d312416","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-19 05:10:08.000000000","message":"Patch Set 12:\n\n(3 comments)","accounts_in_message":[],"_revision_number":12},{"id":"cf0e25bdb7c4367d366b6016300d318620ae275a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-19 05:22:32.000000000","message":"Uploaded patch set 13.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":13},{"id":"c891556b9e7dd6cbeef80fbfc3db50c4ed5c667a","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-19 05:22:40.000000000","message":"Patch Set 13:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":13},{"id":"ec501a2f0bb98e028e1545bec0b45337dbcef2ab","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-19 05:39:13.000000000","message":"Patch Set 13:\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/0e23a5d6345a46d7b1fa5fdccda288dc\n\n- teim-code-review https://zuul.teim.app/t/main/build/3a31b796791a4b019feee9e78c137576 : SUCCESS in 16m 25s","accounts_in_message":[],"_revision_number":13},{"id":"b79d2710841f102cc44698bf79273eabded6e973","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-19 05:40:13.000000000","message":"Patch Set 13: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/778b369976e742a599a38bc55aa59c88\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ae2de0bbabca418db48e7b112d9d346f : SUCCESS in 3m 09s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6515023687bf4d67848c7c82dc3a2430 : SUCCESS in 1m 47s","accounts_in_message":[],"_revision_number":13},{"id":"19b7ca612b596f80d95943c16eafeb45e161b71b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-22 06:09:31.000000000","message":"Uploaded patch set 14.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":14},{"id":"d507443829ec7c6c77888a5ee0a455944ff86937","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-22 06:09:40.000000000","message":"Patch Set 14:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":14},{"id":"e088b55bdaf9f17c7baeb3bcfb4a7c877757b0c9","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-22 06:12:16.000000000","message":"Patch Set 14:\n\n(1 comment)","accounts_in_message":[],"_revision_number":14},{"id":"0b40eae144df708f7cefbaa5f2a73781ea94e812","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-22 06:18:10.000000000","message":"Patch Set 14: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5168e58f97a9418f9818173be1455326\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/33c38ba94d4245958b0945611ad1da44 : SUCCESS in 3m 38s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/07a9007623924f31bcabbb06941d573d : SUCCESS in 2m 01s","accounts_in_message":[],"_revision_number":14},{"id":"d1eb37e72f3b7adce5b2277e5a397628b347ab3a","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-22 06:34:33.000000000","message":"Patch Set 14:\n\nBuild failed (automatic-ci pipeline). To rerun just this ci comment\n\"teim-ci: auto\". To rerun other ci jobs comment \"recheck\".\nNote this ci does run on \"recheck\".\n\nhttps://zuul.teim.app/t/main/buildset/6e3318c464da42408bf3d0913475d319\n\n- teim-code-review https://zuul.teim.app/t/main/build/44f0a0183ddc49f2970fc7977e8cb10e : FAILURE in 24m 44s","accounts_in_message":[],"_revision_number":14},{"id":"683fe5bf678d86698494696f6ba627844d35344f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-23 14:28:42.000000000","message":"Uploaded patch set 15.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":15},{"id":"53880acca9575f8b95319654c2fbeb800e276d17","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-23 14:28:50.000000000","message":"Patch Set 15:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":15},{"id":"5fadc81cf9d167ddd76e3a00378f41c272d789d9","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-23 14:29:45.000000000","message":"Patch Set 15: Workflow-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":15},{"id":"8201cbe968ed04bcaa34b71476d7a701f4f8c4c7","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-23 14:41:05.000000000","message":"Patch Set 15: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/45f9019f59c847f79241d4246be770f0\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/65b2c4a3a7bc4375a43f7a3767dbf4ff : SUCCESS in 5m 24s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b2f0ca6e7b694784a96ee6e2f30ab264 : SUCCESS in 4m 53s","accounts_in_message":[],"_revision_number":15},{"id":"60b13a0bb7da8c04abfe6e28b00458819a26d152","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-23 14:44:38.000000000","message":"Patch Set 15:\n\n(6 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/352ff88ee69b48c78b4a786c586db3f6\n\n- teim-code-review https://zuul.teim.app/t/main/build/a1a92632bda94e73868a583f6ce7dfd2 : SUCCESS in 15m 40s\n\nWarning:\n  The spec does not address what happens to devices in \u0027allocated\u0027 or \u0027error\u0027 state when the operator disables the NVMe driver or changes device_spec. A device in error that no longer matches device_spec may be orphaned. Impact: Operators changing device configuration could strand devices in error state with no documented recovery procedure beyond manual database intervention. Recommendation: Add a note in the Other deployer impact section describing behavior when device_spec changes exclude devices currently in allocated or error state.\n  The spec relies on libvirt managed mode to rebind the device before cleanup begins, but does not specify what happens if the rebind fails or is delayed. The cleanup assumes the device is already host-bound with no verification step. Impact: If libvirt has not yet rebound the device, the /dev/nvmeN controller may not exist, causing cleanup to fail to error state rather than auto-recovering when rebind eventually completes. Recommendation: Document that the agent should verify the controller device exists before transitioning to cleaning state, and consider a retry-with-backoff for controller resolution before failing to error.","accounts_in_message":[],"_revision_number":15},{"id":"5190889856d6b25b9cec12a866ce863444c6de20","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-23 14:58:40.000000000","message":"Uploaded patch set 16: Commit message was updated.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n* Workflow-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":16},{"id":"044301f8e94423d61c2dc5a139e787161c8ac8fb","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-23 14:58:47.000000000","message":"Patch Set 16:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":16},{"id":"c9831b31937d9b2b33507e9ab4314bc2dba7dbe1","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-23 15:04:41.000000000","message":"Patch Set 16: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/7c3e00c72f8249c986a006847ce9f444\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9049efa42270465092c0b76cfbc99f00 : SUCCESS in 4m 18s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/dd50a05319a84b2fa8cc5323cd0f1fda : SUCCESS in 3m 06s","accounts_in_message":[],"_revision_number":16},{"id":"a2b0bfcaf92d28d14b1c56b247c3ba9cd1acc27f","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-23 15:25:25.000000000","message":"Patch Set 16: Workflow-1","accounts_in_message":[],"_revision_number":16},{"id":"472574265830d0304543a1f0919d14757cd13b2e","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-23 15:25:48.000000000","message":"Patch Set 16:\n\n(4 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/5cc1e4a4ebcd41639c230136a65c0a89\n\n- teim-code-review https://zuul.teim.app/t/main/build/83b8be2936fd4b18870e1cb7de1d6862 : SUCCESS in 26m 52s\n\nWarning:\n  The spec references source files that do not exist in cyborg-specs (e.g. cyborg/accelerator/drivers/driver.py, os_traits/hw/nvme module) but does not cross-reference the dependent blueprint or implementation patch series for sequencing. Impact: Reviewers and implementers cannot verify that the proposed code changes are tracked and sequenced correctly relative to this spec. Dependencies on os-traits and futurist are noted but no Gerrit topic or dependent-change relationship is established. Recommendation: Add a cross-reference to the implementation blueprint, note the expected patch topic name, and list any dependent changes (os-traits companion patch, futurist dependency) as explicit Dependencies entries with tracking links.","accounts_in_message":[],"_revision_number":16},{"id":"163347f132ba133539bf8a61e7b19b724445a666","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-06-23 16:02:44.000000000","message":"Patch Set 16:\n\n(4 comments)","accounts_in_message":[],"_revision_number":16},{"id":"21f9f0432dcf95664d95c4bfc785ba8b8f515201","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-24 06:00:02.000000000","message":"Uploaded patch set 17.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n* Workflow-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":17},{"id":"521fe6d36dd480a68ffb04138233acb620511905","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 06:00:09.000000000","message":"Patch Set 17:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":17},{"id":"b65481c2244c0e91192130e709bbffab6db0e09f","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-24 06:03:25.000000000","message":"Patch Set 17:\n\n(4 comments)","accounts_in_message":[],"_revision_number":17},{"id":"b6c8fda169c0ced92db5fa328a947458aedfc883","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-24 06:05:16.000000000","message":"Patch Set 17:\n\n(1 comment)","accounts_in_message":[],"_revision_number":17},{"id":"bea5cfb75bc09b8ace1aa9e1cb3eabad760068a5","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-24 06:09:45.000000000","message":"Patch Set 17: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8c83e7103097438bbae73bc2ac12c61c\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ab0110ad951c408fa6afa198e5df99a7 : SUCCESS in 2m 44s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/66a656e84e9241f2b341bf5b96963085 : SUCCESS in 2m 54s","accounts_in_message":[],"_revision_number":17},{"id":"03e5d31fc50aacbf8d039591ff9c96f52e67fde4","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 06:18:15.000000000","message":"Patch Set 17:\n\nBuild failed (automatic-ci pipeline). To rerun just this ci comment\n\"teim-ci: auto\". To rerun other ci jobs comment \"recheck\".\nNote this ci does run on \"recheck\".\n\nhttps://zuul.teim.app/t/main/buildset/751bf31f54b84211abcd311cf511f2eb\n\n- teim-code-review https://zuul.teim.app/t/main/build/8ec1b703dc7d4623adb9804f1ac30d78 : FAILURE in 17m 57s","accounts_in_message":[],"_revision_number":17},{"id":"31578484e635ad0071270e48a7a8fe51c36b9d69","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-06-26 10:18:08.000000000","message":"Patch Set 17:\n\n(5 comments)","accounts_in_message":[],"_revision_number":17},{"id":"21ad868201ec441db039643b4a2840cedf8807bf","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-26 13:47:12.000000000","message":"Patch Set 17:\n\n(5 comments)","accounts_in_message":[],"_revision_number":17},{"id":"f7869c9812498bfdb94ab0c1e434a770fcfaf437","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-26 14:36:30.000000000","message":"Uploaded patch set 18.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":18},{"id":"b84628941f2bb6b7812743830c67233dd348a2bc","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-26 14:36:37.000000000","message":"Patch Set 18:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":18},{"id":"616581726ea34c4d6fc6b21ae7f45ef1c6100420","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-26 14:46:53.000000000","message":"Patch Set 18: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/886d735cd4ac49fb85d2a2167eeae7b0\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/89ad4e9f222e49f9a8d2af278419467b : SUCCESS in 3m 12s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/9fa2a94e6afa40b8bc8f0984deb92274 : SUCCESS in 1m 52s","accounts_in_message":[],"_revision_number":18},{"id":"8391b9248ff291e4d8a361240ef294b969188e24","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-26 14:57:56.000000000","message":"Patch Set 18:\n\n(10 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/e8f6a8ed238b4408a94437bb0c907a79\n\n- teim-code-review https://zuul.teim.app/t/main/build/26314ca9c34b439cb0f6049d1b67db42 : SUCCESS in 21m 10s\n\nWarning:\n  Commit message body contains a typo (\u0027constriants\u0027 -\u003e \u0027constraints\u0027). The commit carries Assisted-By: Claude Sonnet 4.6 and Signed-off-by with a real name and email, satisfying AI attribution and DCO requirements; the blueprint reference and APIImpact flag are present. Impact: Minor: the typo in the commit message body reduces polish but does not affect correctness. AI attribution and DCO are correctly satisfied. Recommendation: Fix the \u0027constriants\u0027 typo in the commit message body in a follow-up amend if convenient; not a blocker.","accounts_in_message":[],"_revision_number":18},{"id":"12e166c3f1bf9a7ca824330ebf2ff5e8d3243b89","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-28 07:25:40.000000000","message":"Uploaded patch set 19.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":19},{"id":"56e4304525977d29a87400b008a8db2d1e8853b9","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-28 07:25:52.000000000","message":"Patch Set 19:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":19},{"id":"4ee77cc0a17679597bcd18a29ad16fd6f2826e77","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-28 07:44:01.000000000","message":"Patch Set 19: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d916e6c9caf44d478a9c742d63601b46\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/56af109986814d6c8f37af110b7ad22d : SUCCESS in 7m 21s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/89f180f54b304137b491b6ac2717eb24 : SUCCESS in 3m 29s","accounts_in_message":[],"_revision_number":19},{"id":"bf60856f00e91a6ca2bf3ef9cdbbb645c45b247b","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-28 07:47:41.000000000","message":"Patch Set 19:\n\n(8 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/9938fd8d012e4a6e9e4bb8f6d29098cb\n\n- teim-code-review https://zuul.teim.app/t/main/build/453d4fe8542d422dadcdc5d6a8ff2ba3 : SUCCESS in 21m 39s\n\nWarning:\n  The microversion number is intentionally deferred (\u0027claims the next available microversion after its dependencies land\u0027). This is acceptable OpenStack practice, but the actual number must be claimed at merge time. Impact: No blocker; implementers and the API working group need the concrete microversion before the API patch lands to wire up microversion handling correctly. Recommendation: Leave the deferred language in the spec, but track a follow-up to claim the concrete microversion number once merge ordering is known.\n  The commit message correctly includes the APIImpact flag, Assisted-By AI attribution, DCO Signed-off-by, and the filename matches the Launchpad blueprint URL, satisfying the template requirements. Impact: Positive patch-level compliance; no action required. Recommendation: No change needed. Confirm the APIImpact flag remains on any future rebases of this change.\n  All required template sections are present (Problem description, Use Cases, Proposed change, Data model impact, REST API, Security, Notifications, Other end user/deployer impact, Upgrade/Developer impact, Implementation, Dependencies, Testing, References, History) and none were deleted. Impact: The spec is structurally complete and template-compliant, which is a mandatory requirement for cyborg-specs. Recommendation: No change needed to section structure. Focus remaining effort on the content-level findings (JSON schemas, line lengths, cross-cutting impact).","accounts_in_message":[],"_revision_number":19},{"id":"32fd3dac549912b5ed2d6c1281d466ee023f8972","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-06-29 15:54:39.000000000","message":"Patch Set 19:\n\n(5 comments)","accounts_in_message":[],"_revision_number":19},{"id":"2d7b3c6550e1b2d3754f9f0302c7565d236ead47","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-30 12:50:49.000000000","message":"Uploaded patch set 20.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":20},{"id":"852a8ea6631ecbaeb411f454800a42fc01588e45","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-30 12:50:58.000000000","message":"Patch Set 20:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":20},{"id":"6436309281cd5c117b281242713f5f7e1ee520a3","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-30 12:51:54.000000000","message":"Patch Set 20:\n\n(1 comment)","accounts_in_message":[],"_revision_number":20},{"id":"d1c1d37d163b6b087761153286c0deb8190e4901","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-30 12:54:48.000000000","message":"Patch Set 20: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b874e1b98e644aa8b37466ac9aff6a23\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/86a591f578a14e90b65dee35dc13d7de : SUCCESS in 2m 46s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/59377f5b89854be1b347bc47c5bfdf6c : SUCCESS in 1m 47s","accounts_in_message":[],"_revision_number":20},{"id":"dd93736119a6db222ebfacb51a1c5f646249db44","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-06-30 13:01:49.000000000","message":"Patch Set 20:\n\n(1 comment)","accounts_in_message":[],"_revision_number":20},{"id":"ec2960e1aa9590fe7eec89ac1f94814a41e853e6","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-30 13:37:15.000000000","message":"Uploaded patch set 21.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":21},{"id":"660ef3ba466377606130921dca99fdfff71d9965","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-30 13:37:22.000000000","message":"Patch Set 21:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":21},{"id":"e07ba7c0ead7cb9cfbb7aadabacafc92d668d3b0","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-30 13:40:39.000000000","message":"Patch Set 20:\n\n(1 comment)","accounts_in_message":[],"_revision_number":20},{"id":"f2bbc16a2e5110a22b2317ef8679ca073c63ca78","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-30 13:49:13.000000000","message":"Patch Set 21: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9a2358e7f8344a05b01e94ca02d45976\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/233bc7a9600347d69e70a2a8d576c619 : SUCCESS in 3m 32s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ab41d1beba104b6b8fc4bac33575414e : SUCCESS in 3m 09s","accounts_in_message":[],"_revision_number":21},{"id":"996d94b699b731074d6015c3bc443bcda9cca1df","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-30 14:07:11.000000000","message":"Patch Set 21:\n\n(7 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/aa8c5145efed46dc9e7f2097c56a5f2f\n\n- teim-code-review https://zuul.teim.app/t/main/build/f271a0b1b0f048cbb0dedeadf63bd9de : SUCCESS in 17m 32s\n\nWarning:\n  The commit message contains a misspelling: \u0027constriants\u0027 should be \u0027constraints\u0027 (in the bullet \u0027allowing operators to configure cleaning with constriants\u0027). The commit message is part of the change but cannot be anchored to a line in the spec file. Impact: A misspelling in the commit message reduces professionalism of the change record and may confuse keyword-based searches, though it does not affect functionality. Recommendation: Amend the commit message to correct \u0027constriants\u0027 to \u0027constraints\u0027 before the next patchset.\n  AI attribution: the commit carries \u0027Assisted-By: Claude Sonnet 4.6\u0027, which is the correct Predictive-AI footer for AI-assisted work. This satisfies the OpenInfra AI policy. Impact: None - the attribution is present and correctly scoped. Recorded only to confirm it was checked. Recommendation: No change required. Confirm the Assisted-By vs Generated-By distinction matches the actual level of AI involvement before merge.\n  Cleanup runs async via RPC cast; the operator retry (POST /clean) and init_host() reconciliation reuse the locked-in action. The spec does not name the locking for the agent transitioning device_state concurrently with the discovery periodic task. Impact: If update_available_resource and the cleanup thread both write the Device row without coordination, a lost update could corrupt device_state. The spec should name the concurrency control for state transitions. Recommendation: Add a statement in the State Machine or Security section that all device_state transitions are guarded by per-device locking (the spec mentions @utils.synchronized() on line 787 - extend that to cover the state-write path).","accounts_in_message":[],"_revision_number":21},{"id":"b42cb2d4e2f69f928932dd1e3a1110f6609a8765","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-06-30 15:39:37.000000000","message":"Patch Set 21: Code-Review+1\n\n(2 comments)","accounts_in_message":[],"_revision_number":21},{"id":"3f453a291e4c9614e315c3599569ffe42fc30a1e","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-06-30 19:46:58.000000000","message":"Patch Set 21: Code-Review-1\n\n(17 comments)","accounts_in_message":[],"_revision_number":21},{"id":"632b308da857eec01c8fa8306095d056b78ca864","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-06-30 23:38:40.000000000","message":"Patch Set 21:\n\n(3 comments)","accounts_in_message":[],"_revision_number":21},{"id":"922b11619a94ac898f9fe9546e5ab76a65536422","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-06-30 23:40:23.000000000","message":"Patch Set 21:\n\n(1 comment)","accounts_in_message":[],"_revision_number":21},{"id":"3b620fdd82b673ac08a8aa8c1ba1152c8124b056","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-07-01 07:36:39.000000000","message":"Uploaded patch set 22.\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":22},{"id":"1781c7ac37b9a1daa7f4ec177ff2b85d1a0a01c0","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-01 07:36:46.000000000","message":"Patch Set 22:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":22},{"id":"7bf19d4286e2d7fb9c725467d982df36321f2108","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-01 07:47:41.000000000","message":"Patch Set 22: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c518e49f4c3347439d788e61a67dfd48\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7887f1b99d4e409b8ea66acc0d593826 : SUCCESS in 5m 00s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/32c78ea8ce44448f8a8cf72c81f3570a : SUCCESS in 1m 45s","accounts_in_message":[],"_revision_number":22},{"id":"b8b2acc50645b0c0426690441d611d65635cd607","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-07-01 07:56:58.000000000","message":"Patch Set 22:\n\n(12 comments)","accounts_in_message":[],"_revision_number":22},{"id":"ce8cf7166e056b875ba7a2e847e81264102e44f4","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-01 08:07:24.000000000","message":"Patch Set 22:\n\n(8 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/5d3d559b6be549379f38d89633d263eb\n\n- teim-code-review https://zuul.teim.app/t/main/build/a2ed9f9fd8574f69b5fb6ab2c9fb4008 : SUCCESS in 30m 29s\n\nWarning:\n  The commit footer uses \u0027Assisted-By: Claude Sonnet 4.6\u0027. The token is present, satisfying AI-attribution policy. The token value is a model+version string rather than the conventional tool identifier (e.g. \u0027claude-code\u0027). Minor consistency note, not a blocking policy violation. Impact: Affects grep-ability of AI-assisted changes across the project if tokens are not standardized, but does not block merge. Recommendation: Consider standardizing the Assisted-By token to \u0027claude-code\u0027 or \u0027claude-sonnet\u0027 for consistency. No spec-file change required; this is a commit-message-only note.","accounts_in_message":[],"_revision_number":22},{"id":"abc9f8cf8329f47937e884e4974973513e9d75a5","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-07-01 08:12:20.000000000","message":"Uploaded patch set 23.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":23},{"id":"3be63d042766059448342dd684dd6320ec72b401","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-01 08:12:27.000000000","message":"Patch Set 23:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":23},{"id":"798cfd089c5a749c60dd97ada2eeb91c2840081b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-01 08:20:43.000000000","message":"Patch Set 23: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/cf0e1010b03847fab9bd2a7eea1dba12\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7168dff5ecd64bab949c94a4261b13bb : SUCCESS in 3m 21s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/cb9ce0c81d5a45b5aaccd6dd80c99150 : SUCCESS in 2m 46s","accounts_in_message":[],"_revision_number":23},{"id":"2d2cc7a352b667fada77a037e9d5a05614ac936f","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-01 08:33:42.000000000","message":"Patch Set 23:\n\n(12 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/6855f0677e3d490099f6ca3d910f8b61\n\n- teim-code-review https://zuul.teim.app/t/main/build/8daed467a15d458b96a17f9b3d96440d : SUCCESS in 21m 06s\n\nWarning:\n  The async cleanup model splits state: the conductor casts cleanup_device then has no visibility until the agent mutates device_state in the DB. There is no conductor-side watchdog, and notifications are explicitly out of scope, so completion/failure has no operator-visible signal. Impact: If an agent crashes and never restarts, an NVMe device can sit in pending_cleaning/cleaning indefinitely with reserved\u003dtotal, silently removing capacity. The only detection is init_host on a restart that may not happen soon. Recommendation: Define a conductor-side reconciliation/timeout for devices stuck in transitional states, or (since notifications are out of scope) document the operator monitoring expectation (e.g. alert on devices non-available for \u003e N minutes) in the Performance/Deployer impact sections.\n  The spec deprecates the Inspur NVMe and SSD drivers but makes removal contingent on Nova supporting resize of Cyborg-managed devices (earliest 2027.2). It does not state how operators migrate Inspur-managed devices to the generic driver without downtime or data loss. Impact: Enabling the generic driver alongside the deprecated one is allowed only for \u0027independent devices\u0027, yet a given physical NVMe device is currently Inspur-managed. Moving it mid-flight risks double-management or missed cleanup. Recommendation: Add a short migration subsection under Upgrade impact with concrete steps (drain, unmanage, reconfigure device_spec, rediscover) and how device_state is initialised for an already-deployed, possibly dirty device.","accounts_in_message":[],"_revision_number":23},{"id":"cccfbd3a0270cec494709953de9b5bcf06843730","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-01 09:15:11.000000000","message":"Patch Set 23: Code-Review-1\n\n(9 comments)","accounts_in_message":[],"_revision_number":23},{"id":"8f8aaf6d5d372835a70658452c7061fd7f13d087","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-07-01 11:39:51.000000000","message":"Uploaded patch set 24.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":24},{"id":"292347853d595c6753d3514fcb56a0fcdf270d85","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-01 11:39:58.000000000","message":"Patch Set 24:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":24},{"id":"1a1c3ba2dc2640129f2de76f8065e66408d45902","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-07-01 11:42:18.000000000","message":"Patch Set 23:\n\n(4 comments)","accounts_in_message":[],"_revision_number":23},{"id":"d5748148fac7f175e5e52b5ec8c9e2cd5df65668","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-01 11:47:52.000000000","message":"Patch Set 24: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4efd55c100b04bc6a50974c5898560dd\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c7eebb9e0abc45aba8a2bd664d9b05a7 : SUCCESS in 2m 58s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/bd04c92bc3b94fa4bd8c5a84e8529bf0 : SUCCESS in 3m 01s","accounts_in_message":[],"_revision_number":24},{"id":"2cd74ca6f30c972018027688fe1fba9af7e32e52","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-01 11:58:24.000000000","message":"Patch Set 24:\n\n(14 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/5907ec29c8eb40b9b6cdeb3ecbf7c9c1\n\n- teim-code-review https://zuul.teim.app/t/main/build/17e1495543ff4101ae2069291071b39e : SUCCESS in 18m 17s\n\nWarning:\n  device_state is universal (all device types) but the design is framed entirely around NVMe. GPU, FPGA, QAT, NIC, and SSD allocation paths are affected by the new bind guard and reserved\u003dtotal changes without a dedicated compatibility subsection. Impact: Other Cyborg driver maintainers (GPU, FPGA) need to understand that the bind guard and reserved\u003dtotal changes affect their devices. Without clear documentation, this could be missed during implementation review. Recommendation: Add a subsection under Proposed change titled \u0027Impact on Non-NVMe Device Types\u0027 that explicitly states: (1) the bind guard treats NULL or available as allocatable, (2) non-NVMe devices skip the cleanup RPC, (3) the reserved\u003dtotal behavior is new for all types on bind.","accounts_in_message":[],"_revision_number":24},{"id":"a713a3b64cbfa34560b4ec909de921f9ea5dc325","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-07-01 12:03:54.000000000","message":"Uploaded patch set 25.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":25},{"id":"1a7bef7d36a3bc113e53217ee93f1d747b8bd089","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-07-01 12:04:00.000000000","message":"Patch Set 24:\n\n(1 comment)","accounts_in_message":[],"_revision_number":24},{"id":"ba9a5b23b0a3ac071dde73d033c499f8827c8cd9","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-01 12:04:00.000000000","message":"Patch Set 25:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":25},{"id":"d4572c5d8e61ec133b945502c7eeb4e615c662ca","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-01 12:13:32.000000000","message":"Patch Set 25: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/2b33fab97db74dcfa95a202433865dc4\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0ac539c92ec940b8a2f6f5b4c7746a68 : SUCCESS in 3m 31s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f4c65c59d6ac4a7abd7123a52d22c5fe : SUCCESS in 2m 47s","accounts_in_message":[],"_revision_number":25},{"id":"73c66d1fde7b214a963feb7e1c81021d83607397","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-01 12:32:48.000000000","message":"Patch Set 25:\n\n(13 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/8458c9a34f4b403cb5511928ce6d7509\n\n- teim-code-review https://zuul.teim.app/t/main/build/47a9d91392694d6a94787ca5652e9e7e : SUCCESS in 28m 39s\n\nWarning:\n  Commit message uses \u0027Assisted-By: Claude-Code Claude Sonnet 4.6\u0027 for a ~1102-line generative artifact. The style guide says substantial AI-generated content should use \u0027Generated-By:\u0027 (generative) not \u0027Assisted-By:\u0027 (predictive), and the token form should be \u0027claude-code\u0027. Impact: Mislabeling generative output as assistive understates the AI\u0027s role in the artifact and does not follow the OpenStack AI attribution convention the style guide defines, which exists for transparency and DCO accountability. Recommendation: If the spec body was substantially generated by Claude Code, change the trailer to \u0027Generated-By: claude-code\u0027 and keep the human \u0027Signed-off-by\u0027. If AI only assisted with edits, \u0027Assisted-By:\u0027 is acceptable but use the canonical \u0027claude-code\u0027 tool token rather than a free-form model name. This is a commit-message fix, not a file change.\n  The spec applies device_state, the bind guard, and Placement reserved updates to ALL device types (lines 496-501, 570-573), not just NVMe. Every existing device (GPU, FPGA, QAT, etc.) gains a lifecycle field and a new bind-rejection check. The blast radius of the bind-path change is fleet-wide. Impact: A bug or performance regression in the shared bind guard or reserved-invariant logic would affect all Cyborg-managed accelerators, not just the new NVMe feature. The spec frames this as uniform/simpler, but does not assess risk to non-NVMe device workflows. Recommendation: Add a short risk note acknowledging the bind-path change is global, and confirm the no-op cleanup default (lines 83, 911-914) guarantees non-NVMe devices see no behavioral change beyond the new device_state field. Consider gating the bind guard behind supports_cleaning or a config flag if non-NVMe regression risk is non-trivial.","accounts_in_message":[],"_revision_number":25},{"id":"8712e87312ba83b9f7213be728980637aae15407","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-01 13:05:36.000000000","message":"Patch Set 25: Code-Review+2","accounts_in_message":[],"_revision_number":25},{"id":"3c0a6f5bb901501938186746dd602eb76a760e13","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-07-01 15:20:06.000000000","message":"Patch Set 25: Code-Review+1","accounts_in_message":[],"_revision_number":25},{"id":"4f8fb4cb3e872599868ea52bfc612d6328c196ca","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-07-01 18:41:31.000000000","message":"Patch Set 25: Code-Review-1\n\n(3 comments)","accounts_in_message":[],"_revision_number":25},{"id":"5e4055b6b041ca8454c554b9eef6366b9e2051bd","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-01 19:16:29.000000000","message":"Patch Set 25:\n\n(1 comment)","accounts_in_message":[],"_revision_number":25},{"id":"afe3135bda43b9a984dcc1432cb65467ce12930c","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-01 19:16:35.000000000","message":"Patch Set 25: -Code-Review","accounts_in_message":[],"_revision_number":25},{"id":"0418959197bc3c299681df485f84d3062e9f2a31","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-07-02 04:23:42.000000000","message":"Uploaded patch set 26.\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":26},{"id":"ce2c01e9f12719840034e0b30d901934d56ef63c","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-02 04:23:50.000000000","message":"Patch Set 26:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":26},{"id":"904e21afcb41bc581791fc5627112d9d01e2ad94","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-07-02 04:29:14.000000000","message":"Patch Set 26:\n\n(1 comment)","accounts_in_message":[],"_revision_number":26},{"id":"87e5a722d811d623c07de8a4e0ad69ad429182a6","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-02 04:32:46.000000000","message":"Patch Set 26: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a814e3df4d244c298569ec5c81f557a6\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7673e497bf144f86922893630faddb55 : SUCCESS in 3m 25s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4d6e5331f1764bd7a949531d10113ce0 : SUCCESS in 1m 50s","accounts_in_message":[],"_revision_number":26},{"id":"515752e28d87d19a7b7c425965f13f1f5bdf4943","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-02 04:48:06.000000000","message":"Patch Set 26:\n\n(7 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/271f7d04d49d4b4d811c1d0335df949d\n\n- teim-code-review https://zuul.teim.app/t/main/build/25509b708e654de0b67fb9e2e75c0d7a : SUCCESS in 24m 07s\n\nWarning:\n  Commit message AI attribution uses \u0027Assisted-By: Claude-Code Claude Sonnet 4.6\u0027. Per the OpenInfra AI policy, predictive assistance uses \u0027Assisted-By\u0027 while generative use uses \u0027Generated-By\u0027. For a 1103-line design doc, reviewers should confirm which label reflects the AI involvement level. Impact: Accurate AI attribution per the OpenInfra Foundation AI Policy is required for transparency; mislabeling generative output as merely assisted understates AI involvement in a substantial design document. Recommendation: If the spec body was substantially drafted by the AI tool, switch the footer to \u0027Generated-By: claude-code\u0027. If the human authored the prose and the AI provided review/suggestions, \u0027Assisted-By\u0027 is appropriate as written.\n  The spec claims the next available API microversion (lines 699-705) without pinning a number, so device_state and POST /clean microversion will be set by merge ordering. Reviewers should ensure the implementation records the final microversion and lower microversions cleanly omit device_state. Impact: If the API layer does not version-gate the device_state field independently of the object-level compat shim, older clients could receive the new field unexpectedly. Recommendation: Note in the REST API impact section that device_state must be conditionally rendered in the API response based on the request microversion, not solely reliant on the versionedobject downconvert.","accounts_in_message":[],"_revision_number":26},{"id":"feb684ade0a8457ea063ea6603a60a30db01ba4f","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-02 11:08:44.000000000","message":"Patch Set 26: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":26},{"id":"a9df7e60f84316878dbe602bb942e0c9fb5c5f2b","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-02 11:09:29.000000000","message":"Patch Set 26: Workflow+1","accounts_in_message":[],"_revision_number":26},{"id":"01969dd0cb7a80ac12a717e99f2b4d722607f78d","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-02 11:09:48.000000000","message":"Patch Set 26: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":26},{"id":"452ae502e12b32e5a93b7d2019c631a1d6efa3c2","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-02 11:24:37.000000000","message":"Patch Set 26: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/179e7d7dfe0c4939a13a923231053d21\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ea4abb460be84417a04feffe08eabbb3 : SUCCESS in 4m 26s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0df6aac2093f4af79b1a46ce6b1a7bc6 : SUCCESS in 2m 46s","accounts_in_message":[],"_revision_number":26},{"id":"6799adcb70df9cd85bc70e12b6bdf6f31ce3b280","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-02 11:24:37.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":26},{"id":"130e5179acf92b625b38b0547de00191a1ef7362","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-02 11:25:41.000000000","message":"Patch Set 26:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ff2f25dcb1aa4d3498bf1d0b224b51dd\n\n- promote-openstack-specs https://zuul.opendev.org/t/openstack/build/af5dbb9932f24de8a2c2d1c415fb8dfa : SUCCESS in 53s","accounts_in_message":[],"_revision_number":26},{"id":"3522c793119b9f70dd77beea16df396f5720ba8b","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-07-02 16:48:27.000000000","message":"Patch Set 26: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":26}],"current_revision_number":26,"current_revision":"b6c43f73c5d042cf2c8a10834e534b8f3bfe826a","revisions":{"fb7ab4a93449150e01f306b7fd5adfccbe8e16c2":{"kind":"REWORK","_number":1,"created":"2026-04-20 09:40:59.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/1"}}},"commit":{"parents":[{"commit":"abe236e8904a65a3d07acab1701878ae56013f01","subject":"Merge \"Add 2026.2 spec structure\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/abe236e8904a65a3d07acab1701878ae56013f01"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:40:54.000000000","tz":330},"subject":"Add spec for generic NVMe driver with cleanup","message":"Add spec for generic NVMe driver with cleanup\n\nCurrently, Cyborg lacks a comprehensive solution for managing NVMe\ndevice lifecycles. The existing Inspur driver creates vendor lock-in,\nand using PCI passthrough alone provides no secure cleanup mechanism.\nWhen instances are deleted, NVMe devices get reallocated without data\nsanitization, creating security risks and potential data corruption\nfor new workloads.\n\nThis spec proposes a generic NVMe driver that inherits from PciDriver\nand adds secure cleanup capabilities using nvme-cli. The driver will\nmanage the complete lifecycle: discovery, allocation, and secure\nsanitization on deallocation. This enables operators to use mixed\nNVMe hardware from different vendors while ensuring devices are\nproperly cleaned before reuse.\n\nKey features include automated cleanup with configurable timeouts,\nmanual recovery tools for failed cleanups, and extensibility for\nvendor-specific implementations.\n\nAssisted-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/fb7ab4a93449150e01f306b7fd5adfccbe8e16c2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/fb7ab4a93449150e01f306b7fd5adfccbe8e16c2"}]},"branch":"refs/heads/master"},"7be76b0e65d25f340630e631037ff2b91e420bd0":{"kind":"REWORK","_number":2,"created":"2026-04-20 10:13:49.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/2"}}},"commit":{"parents":[{"commit":"abe236e8904a65a3d07acab1701878ae56013f01","subject":"Merge \"Add 2026.2 spec structure\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/abe236e8904a65a3d07acab1701878ae56013f01"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 10:13:36.000000000","tz":330},"subject":"Add spec for generic NVMe driver with cleanup","message":"Add spec for generic NVMe driver with cleanup\n\nCurrently, Cyborg lacks a comprehensive solution for managing NVMe\ndevice lifecycles. The existing Inspur driver creates vendor lock-in,\nand using PCI passthrough alone provides no secure cleanup mechanism.\nWhen instances are deleted, NVMe devices get reallocated without data\nsanitization, creating security risks and potential data corruption\nfor new workloads.\n\nThis spec proposes a generic NVMe driver that inherits from PciDriver\nand adds secure cleanup capabilities using nvme-cli. The driver will\nmanage the complete lifecycle: discovery, allocation, and secure\nsanitization on deallocation. This enables operators to use mixed\nNVMe hardware from different vendors while ensuring devices are\nproperly cleaned before reuse.\n\nKey features include automated cleanup with configurable timeouts,\nmanual recovery tools for failed cleanups, and extensibility for\nvendor-specific implementations.\n\nAssisted-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/7be76b0e65d25f340630e631037ff2b91e420bd0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/7be76b0e65d25f340630e631037ff2b91e420bd0"}]},"branch":"refs/heads/master"},"5186392408c64620be2d1a188ce633cba77ce24c":{"kind":"REWORK","_number":3,"created":"2026-04-29 14:43:42.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/3"}}},"commit":{"parents":[{"commit":"abe236e8904a65a3d07acab1701878ae56013f01","subject":"Merge \"Add 2026.2 spec structure\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/abe236e8904a65a3d07acab1701878ae56013f01"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-29 14:39:56.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\nCyborg has no vendor-neutral path for managing NVMe device lifecycles\nwith data sanitization. The existing Inspur NVMe driver covers only\none vendor, Nova PCI passthrough offers no cleanup at all, and the\ngeneric PCI driver exposes NVMe devices as opaque PCI slots with no\nawareness of tenancy boundaries.\n\nWithout a cleanup story, operators cannot guarantee that a device\nhanded to a new tenant is free of the previous tenant\u0027s data,\ncreating security and compliance risks in multi-tenant deployments.\n\nThis spec introduces a new NVMeDriver class that inherits from\nPciDriver and overrides a cleanup() hook with nvme-cli sanitization.\nA no-op cleanup() base is added to PciDriver so other drivers remain\nsafe on unbind. Vendor drivers can further subclass NVMeDriver to\nsubstitute vendor-specific sanitization tooling while reusing the\ndiscovery and allocation logic.\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/5186392408c64620be2d1a188ce633cba77ce24c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/5186392408c64620be2d1a188ce633cba77ce24c"}]},"branch":"refs/heads/master"},"8568500ca2f79f416d0351ba7f01bd81ed16113f":{"kind":"REWORK","_number":4,"created":"2026-05-08 12:14:37.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/4"}}},"commit":{"parents":[{"commit":"abe236e8904a65a3d07acab1701878ae56013f01","subject":"Merge \"Add 2026.2 spec structure\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/abe236e8904a65a3d07acab1701878ae56013f01"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-05-08 12:13:36.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\nNeither Nova PCI passthrough nor Cyborg\u0027s generic PCI driver sanitizes\nNVMe devices between tenants, leaving residual data on reallocation.\n\nThis spec introduces NVMeDriver (subclass of PciDriver) with three-tier\nsecure erase: cryptographic sanitize (preferred), format --ses\u003d2, and\nformat --ses\u003d1 as a last resort. A new \"cleaning\" device status and a\ncleanup_failed boolean column guard the lifecycle. Cyborg sets\nreserved \u003d total in Placement before releasing the ARQ allocation to\nclose the scheduling race window. Failed or timed-out cleanups land in\n\"maintaining\" and are retried by operators via cyborg-nvme-cleanup.\nCrash recovery, a new API microversion, and three additive Alembic\nmigrations are also covered.\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/8568500ca2f79f416d0351ba7f01bd81ed16113f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/8568500ca2f79f416d0351ba7f01bd81ed16113f"}]},"branch":"refs/heads/master"},"b8ea11538310b248e42d3433cc01bb934732d95b":{"kind":"REWORK","_number":5,"created":"2026-05-11 09:36:54.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/5"}}},"commit":{"parents":[{"commit":"abe236e8904a65a3d07acab1701878ae56013f01","subject":"Merge \"Add 2026.2 spec structure\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/abe236e8904a65a3d07acab1701878ae56013f01"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-05-11 09:36:43.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\nNeither Nova PCI passthrough nor Cyborg\u0027s existing drivers sanitize\nNVMe devices between tenants, and Cyborg\u0027s only native NVMe driver\nis Inspur-specific. This spec introduces NVMeDriver, a subclass of\nPciDriver, with five-tier secure erase on unbind: CES, BES, and OWS\nsanitize (controller-wide, covering deleted namespaces), then format\n--ses\u003d2 and --ses\u003d1 as fallbacks (active namespaces only).\n\nA new \"cleaning\" status and cleanup_failed column guard the lifecycle.\nCyborg sets reserved\u003dtotal in Placement before releasing the ARQ\nallocation to close the scheduling race window. Failed cleanups land\nin \"maintaining\" and are retried via cyborg-nvme-cleanup. Crash\nrecovery uses SSTAT to detect sanitize completion across restarts.\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/b8ea11538310b248e42d3433cc01bb934732d95b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/b8ea11538310b248e42d3433cc01bb934732d95b"}]},"branch":"refs/heads/master"},"aa79159ed276a42edd89ee7a6325a13cbded5d80":{"kind":"REWORK","_number":6,"created":"2026-05-11 09:40:00.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/6"}}},"commit":{"parents":[{"commit":"abe236e8904a65a3d07acab1701878ae56013f01","subject":"Merge \"Add 2026.2 spec structure\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/abe236e8904a65a3d07acab1701878ae56013f01"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-05-11 09:39:49.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\nNeither Nova PCI passthrough nor Cyborg\u0027s existing drivers sanitize\nNVMe devices between tenants, and Cyborg\u0027s only native NVMe driver\nis Inspur-specific. This spec introduces NVMeDriver, a subclass of\nPciDriver, with five-tier secure erase on unbind: CES, BES, and OWS\nsanitize (controller-wide, covering deleted namespaces), then format\n--ses\u003d2 and --ses\u003d1 as fallbacks (active namespaces only).\n\nA new \"cleaning\" status and cleanup_failed column guard the lifecycle.\nCyborg sets reserved\u003dtotal in Placement before releasing the ARQ\nallocation to close the scheduling race window. Failed cleanups land\nin \"maintaining\" and are retried via cyborg-nvme-cleanup. Crash\nrecovery uses SSTAT to detect sanitize completion across restarts.\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/aa79159ed276a42edd89ee7a6325a13cbded5d80"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/aa79159ed276a42edd89ee7a6325a13cbded5d80"}]},"branch":"refs/heads/master"},"2fcf51cbf2bcf25bfee4269704c6fa35b5f438ee":{"kind":"REWORK","_number":7,"created":"2026-05-13 08:12:35.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/7"}}},"commit":{"parents":[{"commit":"abe236e8904a65a3d07acab1701878ae56013f01","subject":"Merge \"Add 2026.2 spec structure\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/abe236e8904a65a3d07acab1701878ae56013f01"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-05-13 08:12:16.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\nNeither Nova PCI passthrough nor Cyborg\u0027s existing drivers sanitize\nNVMe devices between tenants, and Cyborg\u0027s only native NVMe driver\nis Inspur-specific. This spec introduces NVMeDriver, a subclass of\nPciDriver, with five-tier secure erase on unbind: CES, BES, and OWS\nsanitize (controller-wide, covering deleted namespaces), then format\n--ses\u003d2 and --ses\u003d1 as fallbacks (active namespaces only).\n\nA new \"cleaning\" status and cleanup_failed column guard the lifecycle.\nCyborg sets reserved\u003dtotal in Placement before releasing the ARQ\nallocation to close the scheduling race window. Failed cleanups land\nin \"maintaining\" and are retried via cyborg-nvme-cleanup. Crash\nrecovery uses SSTAT to detect sanitize completion across restarts.\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/2fcf51cbf2bcf25bfee4269704c6fa35b5f438ee"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/2fcf51cbf2bcf25bfee4269704c6fa35b5f438ee"}]},"branch":"refs/heads/master"},"746905ed7bd9a96bf90fb0dc25771bb53d7c1469":{"kind":"REWORK","_number":8,"created":"2026-05-13 08:23:40.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/8"}}},"commit":{"parents":[{"commit":"abe236e8904a65a3d07acab1701878ae56013f01","subject":"Merge \"Add 2026.2 spec structure\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/abe236e8904a65a3d07acab1701878ae56013f01"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-05-13 08:23:30.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\nNeither Nova PCI passthrough nor Cyborg\u0027s existing drivers sanitize\nNVMe devices between tenants, and Cyborg\u0027s only native NVMe driver\nis Inspur-specific. This spec introduces NVMeDriver, a subclass of\nPciDriver, with five-tier secure erase on unbind: CES, BES, and OWS\nsanitize (controller-wide, covering deleted namespaces), then format\n--ses\u003d2 and --ses\u003d1 as fallbacks (active namespaces only).\n\nA new \"cleaning\" status and cleanup_failed column guard the lifecycle.\nCyborg sets reserved\u003dtotal in Placement before releasing the ARQ\nallocation to close the scheduling race window. Failed cleanups land\nin \"maintaining\" and are retried via cyborg-nvme-cleanup. Crash\nrecovery uses SSTAT to detect sanitize completion across restarts.\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/746905ed7bd9a96bf90fb0dc25771bb53d7c1469"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/746905ed7bd9a96bf90fb0dc25771bb53d7c1469"}]},"branch":"refs/heads/master"},"8eaebd83a300efdd851377be65746e423da1a562":{"kind":"REWORK","_number":9,"created":"2026-05-19 06:12:56.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/9","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/9","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/9"}}},"commit":{"parents":[{"commit":"abe236e8904a65a3d07acab1701878ae56013f01","subject":"Merge \"Add 2026.2 spec structure\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/abe236e8904a65a3d07acab1701878ae56013f01"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-05-19 06:12:11.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\nNeither Nova PCI passthrough nor Cyborg\u0027s existing drivers sanitize\nNVMe devices between tenants, and Cyborg\u0027s only native NVMe driver\nis Inspur-specific. This spec introduces NVMeDriver, a subclass of\nPciDriver, with five-tier secure erase on unbind: CES (Crypto Erase\nSanitize), BES (Block Erase Sanitize), and OWS (Overwrite Sanitize)\nsanitize (controller-wide, covering deleted namespaces), then format\n--ses\u003d2 and --ses\u003d1 as fallbacks (active namespaces only).\n\nA new \"cleaning\" status and cleanup_failed column guard the lifecycle.\nCyborg sets reserved\u003dtotal in Placement before releasing the ARQ\n(Accelerator Request) allocation to close the scheduling race window.\nFailed cleanups land in \"maintaining\" and are retried via\ncyborg-nvme-cleanup. Crash recovery uses SSTAT (Sanitize Status) to\ndetect sanitize completion across restarts.\n\nImplements: blueprint generic-nvme-driver-with-secure-cleanup\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/8eaebd83a300efdd851377be65746e423da1a562"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/8eaebd83a300efdd851377be65746e423da1a562"}]},"branch":"refs/heads/master"},"c33b0567a0eaaa10cbc47f8daf7d0fbda321f9c7":{"kind":"REWORK","_number":10,"created":"2026-05-19 07:19:27.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/10","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/10","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/10"}}},"commit":{"parents":[{"commit":"abe236e8904a65a3d07acab1701878ae56013f01","subject":"Merge \"Add 2026.2 spec structure\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/abe236e8904a65a3d07acab1701878ae56013f01"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-05-19 07:19:17.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\nNeither Nova PCI passthrough nor Cyborg\u0027s existing drivers sanitize\nNVMe devices between tenants, and Cyborg\u0027s only native NVMe driver\nis Inspur-specific. This spec introduces NVMeDriver, a subclass of\nPciDriver, with five-tier secure erase on unbind: CES (Crypto Erase\nSanitize), BES (Block Erase Sanitize), and OWS (Overwrite Sanitize)\nsanitize (controller-wide, covering deleted namespaces), then format\n--ses\u003d2 and --ses\u003d1 as fallbacks (active namespaces only).\n\nA new \"cleaning\" status and cleanup_failed column guard the lifecycle.\nCyborg sets reserved\u003dtotal in Placement before releasing the ARQ\n(Accelerator Request) allocation to close the scheduling race window.\nFailed cleanups land in \"maintaining\" and are retried via\ncyborg-nvme-cleanup. Crash recovery uses SSTAT (Sanitize Status) to\ndetect sanitize completion across restarts.\n\nImplements: blueprint generic-nvme-driver-with-secure-cleanup\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/c33b0567a0eaaa10cbc47f8daf7d0fbda321f9c7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/c33b0567a0eaaa10cbc47f8daf7d0fbda321f9c7"}]},"branch":"refs/heads/master"},"105dd4f23db7a7d92fbaffe58e7e92aaa76107f5":{"kind":"REWORK","_number":11,"created":"2026-06-16 07:04:07.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/11","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/11","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/11 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/11 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/11 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/11"}}},"commit":{"parents":[{"commit":"981405a8938ed786feaaf63ea1955aa7174a367b","subject":"Add VFIO variant driver managed mode spec","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/981405a8938ed786feaaf63ea1955aa7174a367b"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-16 06:55:18.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\nCyborg lacks automated lifecycle management for NVMe devices. When a\ndevice is detached, tenant data remains and the only native NVMe\ndriver is Inspur-specific. This spec introduces NVMeDriver, a\nvendor-agnostic subclass of PciDriver that manages NVMe device\nlifecycle using standardized nvme-cli commands.\n\nKey design points:\n\n- discover() enumerates devices by device_spec and reports sanitize\ncapabilities (CES, BES, OWS, SES2, SES1) as os-traits to Placement\n- cleanup() runs asynchronously via RPC cast to a futurist thread\npool so instance deletion is not blocked\n- A new device_state field (available, allocated, pending_cleaning,\ncleaning, error) tracks cleanup lifecycle separately from the\nexisting status field\n- No silent fallback to weaker erase methods; failures move the\ndevice to error state for operator remediation via a new\nPOST /v2/devices/{uuid}/clean endpoint (microversion 2.4)\n- Existing Inspur NVMe and SSD drivers are deprecated\n\nImplements: blueprint generic-nvme-driver-with-secure-cleanup\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/105dd4f23db7a7d92fbaffe58e7e92aaa76107f5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/105dd4f23db7a7d92fbaffe58e7e92aaa76107f5"}]},"branch":"refs/heads/master"},"800d6bb1e9f8fb955e648798f49a1b9445e57406":{"kind":"REWORK","_number":12,"created":"2026-06-19 04:56:28.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/12","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/12","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/12 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/12 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/12 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/12"}}},"commit":{"parents":[{"commit":"981405a8938ed786feaaf63ea1955aa7174a367b","subject":"Add VFIO variant driver managed mode spec","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/981405a8938ed786feaaf63ea1955aa7174a367b"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-19 04:54:42.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\nCyborg lacks automated lifecycle management for NVMe devices. When a\ndevice is detached, tenant data remains and the only native NVMe\ndriver is Inspur-specific. This spec introduces NVMeDriver, a\nstandalone driver that manages NVMe device\nlifecycle using standardized nvme-cli commands.\n\nKey design points:\n\n- discover() enumerates devices by device_spec and reports sanitize\ncapabilities (CES, BES, OWS, SES2, SES1) as os-traits to Placement\n- cleanup() runs asynchronously via RPC cast to a futurist thread\npool so instance deletion is not blocked\n- A new device_state field (available, allocated, pending_cleaning,\ncleaning, error) tracks cleanup lifecycle separately from the\nexisting status field\n- No silent fallback to weaker erase methods; failures move the\ndevice to error state for operator remediation via a new\nPOST /v2/devices/{uuid}/clean endpoint (microversion 2.4)\n- Existing Inspur NVMe and SSD drivers are deprecated\n\nImplements: blueprint generic-nvme-driver-with-secure-cleanup\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/800d6bb1e9f8fb955e648798f49a1b9445e57406"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/800d6bb1e9f8fb955e648798f49a1b9445e57406"}]},"branch":"refs/heads/master"},"94ffa8dff841cb3bd936789b3f447e9333616525":{"kind":"REWORK","_number":13,"created":"2026-06-19 05:22:32.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/13","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/13","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/13 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/13 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/13 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/13"}}},"commit":{"parents":[{"commit":"981405a8938ed786feaaf63ea1955aa7174a367b","subject":"Add VFIO variant driver managed mode spec","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/981405a8938ed786feaaf63ea1955aa7174a367b"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-19 05:22:04.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\nCyborg lacks automated lifecycle management for NVMe devices. When a\ndevice is detached, tenant data remains and the only native NVMe\ndriver is Inspur-specific. This spec introduces NVMeDriver, a\nstandalone driver that manages NVMe device\nlifecycle using standardized nvme-cli commands.\n\nKey design points:\n\n- discover() enumerates devices by device_spec and reports sanitize\ncapabilities (CES, BES, OWS, SES2, SES1) as os-traits to Placement\n- cleanup() runs asynchronously via RPC cast to a futurist thread\npool so instance deletion is not blocked\n- A new device_state field (available, allocated, pending_cleaning,\ncleaning, error) tracks cleanup lifecycle separately from the\nexisting status field\n- No silent fallback to weaker erase methods; failures move the\ndevice to error state for operator remediation via a new\nPOST /v2/devices/{uuid}/clean endpoint (microversion 2.4)\n- Existing Inspur NVMe and SSD drivers are deprecated\n\nImplements: blueprint generic-nvme-driver-with-secure-cleanup\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/94ffa8dff841cb3bd936789b3f447e9333616525"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/94ffa8dff841cb3bd936789b3f447e9333616525"}]},"branch":"refs/heads/master"},"7c28ec5dd6d7367a2a293b1b7f1ac426573718ff":{"kind":"REWORK","_number":14,"created":"2026-06-22 06:09:31.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/14","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/14","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/14 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/14 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/14 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/14"}}},"commit":{"parents":[{"commit":"981405a8938ed786feaaf63ea1955aa7174a367b","subject":"Add VFIO variant driver managed mode spec","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/981405a8938ed786feaaf63ea1955aa7174a367b"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-22 06:09:09.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\nCyborg lacks automated lifecycle management for NVMe devices. When a\ndevice is detached, tenant data remains and the only native NVMe\ndriver is Inspur-specific. This spec introduces NVMeDriver, a\nstandalone driver that manages NVMe device\nlifecycle using standardized nvme-cli commands.\n\nKey design points:\n\n- discover() enumerates devices by device_spec and reports sanitize\ncapabilities (CES, BES, OWS, SES2, SES1) as os-traits to Placement\n- cleanup() runs asynchronously via RPC cast to a futurist thread\npool so instance deletion is not blocked\n- A new device_state field (available, allocated, pending_cleaning,\ncleaning, error) tracks cleanup lifecycle separately from the\nexisting status field\n- No silent fallback to weaker erase methods; failures move the\ndevice to error state for operator remediation via a new\nPOST /v2/devices/{uuid}/clean endpoint (microversion 2.4)\n- Existing Inspur NVMe and SSD drivers are deprecated\n\nImplements: blueprint generic-nvme-driver-with-secure-cleanup\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/7c28ec5dd6d7367a2a293b1b7f1ac426573718ff"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/7c28ec5dd6d7367a2a293b1b7f1ac426573718ff"}]},"branch":"refs/heads/master"},"dceca2a5eaabb579f37a88c0c08898cd09e87764":{"kind":"REWORK","_number":15,"created":"2026-06-23 14:28:42.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/15","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/15","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/15 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/15 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/15 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/15"}}},"commit":{"parents":[{"commit":"981405a8938ed786feaaf63ea1955aa7174a367b","subject":"Add VFIO variant driver managed mode spec","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/981405a8938ed786feaaf63ea1955aa7174a367b"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-23 14:28:22.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\nCyborg lacks automated lifecycle management for NVMe devices. When a\ndevice is detached, tenant data remains and the only native NVMe\ndriver is Inspur-specific. This spec introduces NVMeDriver, a\nstandalone driver that manages NVMe device\nlifecycle using standardized nvme-cli commands.\n\nKey design points:\n\n- discover() enumerates devices by device_spec and reports sanitize\ncapabilities (CES, BES, OWS, SES2, SES1) as os-traits to Placement\n- cleanup() runs asynchronously via RPC cast to a futurist thread\npool so instance deletion is not blocked\n- A new device_state field (available, allocated, pending_cleaning,\ncleaning, error) tracks cleanup lifecycle separately from the\nexisting status field\n- No silent fallback to weaker erase methods; failures move the\ndevice to error state for operator remediation via a new\nPOST /v2/devices/{uuid}/clean endpoint (microversion 2.4)\n- Existing Inspur NVMe and SSD drivers are deprecated\n\nImplements: blueprint generic-nvme-driver-with-secure-cleanup\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/dceca2a5eaabb579f37a88c0c08898cd09e87764"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/dceca2a5eaabb579f37a88c0c08898cd09e87764"}]},"branch":"refs/heads/master"},"43ead47d9364497a3395d37fa8261ac03ec38f11":{"kind":"NO_CODE_CHANGE","_number":16,"created":"2026-06-23 14:58:40.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/16","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/16","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/16 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/16 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/16 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/16"}}},"commit":{"parents":[{"commit":"981405a8938ed786feaaf63ea1955aa7174a367b","subject":"Add VFIO variant driver managed mode spec","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/981405a8938ed786feaaf63ea1955aa7174a367b"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-23 14:56:39.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\n  OpenStack lacks automated lifecycle management for NVMe devices.\n  When a Cyborg-managed device is detached from an instance, tenant\n  data remains on the device, and the only native NVMe driver is\n  Inspur-specific. This spec introduces NVMeDriver, a standalone\n  driver that manages NVMe device lifecycle using standardized\n  nvme-cli commands.\n\n  Key design points:\n\n  - discover() enumerates devices by device_spec, detects hardware\n    capabilities via nvme id-ctrl, and reports NVMe capability\n    traits (CES, BES, WZS) to Placement\n  - Cleanup runs asynchronously via RPC cast to a futurist thread\n    pool so instance deletion is not blocked\n  - A new device_state field (available, allocated,\n    pending_cleaning, cleaning, error) tracks cleanup lifecycle\n    separately from the existing status field\n  - No runtime fallback to weaker erase methods; failures move the\n    device to error state for operator remediation via a new\n    POST /v2/devices/{uuid}/clean endpoint\n  - Existing Inspur NVMe and SSD drivers are deprecated\n\nImplements: blueprint generic-nvme-driver-with-secure-cleanup\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/43ead47d9364497a3395d37fa8261ac03ec38f11"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/43ead47d9364497a3395d37fa8261ac03ec38f11"}]},"branch":"refs/heads/master"},"7234886a4ac989d550800bf0ff439e9af13ea3b7":{"kind":"REWORK","_number":17,"created":"2026-06-24 06:00:02.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/17","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/17","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/17 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/17 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/17 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/17"}}},"commit":{"parents":[{"commit":"981405a8938ed786feaaf63ea1955aa7174a367b","subject":"Add VFIO variant driver managed mode spec","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/981405a8938ed786feaaf63ea1955aa7174a367b"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-24 05:58:34.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\n  OpenStack lacks automated lifecycle management for NVMe devices.\n  When a Cyborg-managed device is detached from an instance, tenant\n  data remains on the device, and the only native NVMe driver is\n  Inspur-specific. This spec introduces NVMeDriver, a standalone\n  driver that manages NVMe device lifecycle using standardized\n  nvme-cli commands.\n\n  Key design points:\n\n  - discover() enumerates devices by device_spec, detects hardware\n    capabilities via nvme id-ctrl, and reports NVMe capability\n    traits (CES, BES, WZS) to Placement\n  - Introduces clear_mode and clear_method in device_spec for allowing\n    operating to configure cleaning.\n  - Cleanup runs asynchronously via RPC cast to a futurist thread\n    pool so instance deletion is not blocked\n  - A new device_state field (available, allocated,\n    pending_cleaning, cleaning, error) tracks cleanup lifecycle\n    separately from the existing status field\n  - No runtime fallback to weaker erase methods; failures move the\n    device to error state for operator remediation via a new\n    POST /v2/devices/{uuid}/clean endpoint\n  - Existing Inspur NVMe and SSD drivers are deprecated\n\nblueprint: generic-nvme-driver-with-secure-cleanup\n\nAPIImpact\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/7234886a4ac989d550800bf0ff439e9af13ea3b7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/7234886a4ac989d550800bf0ff439e9af13ea3b7"}]},"branch":"refs/heads/master"},"a974972a29cfa54e3de6922b0423221f16171d66":{"kind":"REWORK","_number":18,"created":"2026-06-26 14:36:30.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/18","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/18","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/18 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/18 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/18 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/18"}}},"commit":{"parents":[{"commit":"981405a8938ed786feaaf63ea1955aa7174a367b","subject":"Add VFIO variant driver managed mode spec","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/981405a8938ed786feaaf63ea1955aa7174a367b"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-26 14:35:29.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\n  OpenStack lacks automated lifecycle management for NVMe devices.\n  When a Cyborg-managed device is detached from an instance, tenant\n  data remains on the device, and the only native NVMe driver is\n  Inspur-specific. This spec introduces NVMeDriver, a standalone\n  driver that manages NVMe device lifecycle using standardized\n  nvme-cli commands.\n\n  Key design points:\n\n  - discover() enumerates devices by device_spec, detects hardware\n    capabilities via nvme id-ctrl, and reports NVMe capability\n    traits (CES, BES, WZS) to Placement\n  - Introduces clear_mode and clear_method in device_spec for allowing\n    operators to configure cleaning with constriants.\n  - Cleanup runs asynchronously via RPC cast to a futurist thread\n    pool so instance deletion is not blocked\n  - A new device_state field (available, allocated,\n    pending_cleaning, cleaning, error) tracks cleanup lifecycle\n    separately from the existing status field\n  - No runtime fallback to weaker erase methods; failures move the\n    device to error state for operator remediation via a new\n    POST /v2/devices/{uuid}/clean endpoint\n  - Existing Inspur NVMe and SSD drivers are deprecated\n\nblueprint: generic-nvme-driver-with-secure-cleanup\n\nAPIImpact\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/a974972a29cfa54e3de6922b0423221f16171d66"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/a974972a29cfa54e3de6922b0423221f16171d66"}]},"branch":"refs/heads/master"},"9436c6cb877ab12f9e42609448a37e6d94d8b8b8":{"kind":"REWORK","_number":19,"created":"2026-06-28 07:25:40.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/19","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/19","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/19 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/19 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/19 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/19"}}},"commit":{"parents":[{"commit":"981405a8938ed786feaaf63ea1955aa7174a367b","subject":"Add VFIO variant driver managed mode spec","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/981405a8938ed786feaaf63ea1955aa7174a367b"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-28 07:25:18.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\n  OpenStack lacks automated lifecycle management for NVMe devices.\n  When a Cyborg-managed device is detached from an instance, tenant\n  data remains on the device, and the only native NVMe driver is\n  Inspur-specific. This spec introduces NVMeDriver, a standalone\n  driver that manages NVMe device lifecycle using standardized\n  nvme-cli commands.\n\n  Key design points:\n\n  - discover() enumerates devices by device_spec, detects hardware\n    capabilities via nvme id-ctrl, and reports NVMe capability\n    traits (CES, BES, WZS) to Placement\n  - Introduces clear_mode and clear_method in device_spec for allowing\n    operators to configure cleaning with constriants.\n  - Cleanup runs asynchronously via RPC cast to a futurist thread\n    pool so instance deletion is not blocked\n  - A new device_state field (available, allocated,\n    pending_cleaning, cleaning, error) tracks cleanup lifecycle\n    separately from the existing status field\n  - No runtime fallback to weaker erase methods; failures move the\n    device to error state for operator remediation via a new\n    POST /v2/devices/{uuid}/clean endpoint\n  - Existing Inspur NVMe and SSD drivers are deprecated\n\nblueprint: generic-nvme-driver-with-secure-cleanup\n\nAPIImpact\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/9436c6cb877ab12f9e42609448a37e6d94d8b8b8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/9436c6cb877ab12f9e42609448a37e6d94d8b8b8"}]},"branch":"refs/heads/master"},"69241f2d9ffd812b5039a3ca6d5a857c60e963fa":{"kind":"REWORK","_number":20,"created":"2026-06-30 12:50:49.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/20","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/20","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/20 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/20 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/20 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/20"}}},"commit":{"parents":[{"commit":"981405a8938ed786feaaf63ea1955aa7174a367b","subject":"Add VFIO variant driver managed mode spec","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/981405a8938ed786feaaf63ea1955aa7174a367b"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-30 12:50:29.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\n  OpenStack lacks automated lifecycle management for NVMe devices.\n  When a Cyborg-managed device is detached from an instance, tenant\n  data remains on the device, and the only native NVMe driver is\n  Inspur-specific. This spec introduces NVMeDriver, a standalone\n  driver that manages NVMe device lifecycle using standardized\n  nvme-cli commands.\n\n  Key design points:\n\n  - discover() enumerates devices by device_spec, detects hardware\n    capabilities via nvme id-ctrl, and reports NVMe capability\n    traits (CES, BES, WZS) to Placement\n  - Introduces clear_mode and clear_method in device_spec for allowing\n    operators to configure cleaning with constriants.\n  - Cleanup runs asynchronously via RPC cast to a futurist thread\n    pool so instance deletion is not blocked\n  - A new device_state field (available, allocated,\n    pending_cleaning, cleaning, error) tracks cleanup lifecycle\n    separately from the existing status field\n  - No runtime fallback to weaker erase methods; failures move the\n    device to error state for operator remediation via a new\n    POST /v2/devices/{uuid}/clean endpoint\n  - Existing Inspur NVMe and SSD drivers are deprecated\n\nblueprint: generic-nvme-driver-with-secure-cleanup\n\nAPIImpact\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/69241f2d9ffd812b5039a3ca6d5a857c60e963fa"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/69241f2d9ffd812b5039a3ca6d5a857c60e963fa"}]},"branch":"refs/heads/master"},"2f9710187ba66cd6696cb7725b97106c0e76e2c8":{"kind":"REWORK","_number":21,"created":"2026-06-30 13:37:15.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/21","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/21","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/21 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/21 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/21 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/21"}}},"commit":{"parents":[{"commit":"981405a8938ed786feaaf63ea1955aa7174a367b","subject":"Add VFIO variant driver managed mode spec","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/981405a8938ed786feaaf63ea1955aa7174a367b"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-30 13:32:19.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\n  OpenStack lacks automated lifecycle management for NVMe devices.\n  When a Cyborg-managed device is detached from an instance, tenant\n  data remains on the device, and the only native NVMe driver is\n  Inspur-specific. This spec introduces NVMeDriver, a standalone\n  driver that manages NVMe device lifecycle using standardized\n  nvme-cli commands.\n\n  Key design points:\n\n  - discover() enumerates devices by device_spec, detects hardware\n    capabilities via nvme id-ctrl, and reports NVMe capability\n    traits (CES, BES, WZS) to Placement\n  - Introduces clear_mode and clear_method in device_spec for allowing\n    operators to configure cleaning with constriants.\n  - Cleanup runs asynchronously via RPC cast to a futurist thread\n    pool so instance deletion is not blocked\n  - A new device_state field (available, allocated,\n    pending_cleaning, cleaning, error) tracks cleanup lifecycle\n    separately from the existing status field\n  - No runtime fallback to weaker erase methods; failures move the\n    device to error state for operator remediation via a new\n    POST /v2/devices/{uuid}/clean endpoint\n  - Existing Inspur NVMe and SSD drivers are deprecated\n\nblueprint: generic-nvme-driver-with-secure-cleanup\n\nAPIImpact\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/2f9710187ba66cd6696cb7725b97106c0e76e2c8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/2f9710187ba66cd6696cb7725b97106c0e76e2c8"}]},"branch":"refs/heads/master"},"8909064b10ee6b305e0b90e1ff03348b4a91187c":{"kind":"REWORK","_number":22,"created":"2026-07-01 07:36:39.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/22","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/22","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/22 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/22 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/22 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/22"}}},"commit":{"parents":[{"commit":"981405a8938ed786feaaf63ea1955aa7174a367b","subject":"Add VFIO variant driver managed mode spec","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/981405a8938ed786feaaf63ea1955aa7174a367b"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-07-01 07:32:07.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\nOpenStack lacks automated lifecycle management for NVMe devices.\nWhen a Cyborg-managed device is detached from an instance, tenant\ndata remains on the device, and the only native NVMe driver is\nInspur-specific. This spec introduces NVMeDriver, a standalone\ndriver that manages NVMe device lifecycle using standardized\nnvme-cli commands.\n\nKey design points:\n\n- discover() enumerates devices by device_spec, detects hardware\ncapabilities via nvme id-ctrl, and reports NVMe capability\ntraits (CES, BES, WZS) to Placement\n- Introduces clear_strategy and clear_action in device_spec for\nallowing operators to configure cleaning with constraints.\n- Cleanup runs asynchronously via RPC cast to a futurist thread\npool so instance deletion is not blocked\n- A new device_state field (available, allocated,\npending_cleaning, cleaning, error) tracks cleanup lifecycle\nseparately from the existing status field\n- No runtime fallback to weaker erase methods; failures move the\ndevice to error state for operator remediation via a new\nPOST /v2/devices/{uuid}/clean endpoint\n- Existing Inspur NVMe and SSD drivers are deprecated\n\nblueprint: generic-nvme-driver-with-secure-cleanup\n\nAPIImpact\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/8909064b10ee6b305e0b90e1ff03348b4a91187c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/8909064b10ee6b305e0b90e1ff03348b4a91187c"}]},"branch":"refs/heads/master"},"b3ad25d4c749c4e41f988dca422c15338bdd461d":{"kind":"REWORK","_number":23,"created":"2026-07-01 08:12:20.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/23","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/23","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/23 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/23 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/23 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/23"}}},"commit":{"parents":[{"commit":"981405a8938ed786feaaf63ea1955aa7174a367b","subject":"Add VFIO variant driver managed mode spec","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/981405a8938ed786feaaf63ea1955aa7174a367b"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-07-01 08:11:59.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\nOpenStack lacks automated lifecycle management for NVMe devices.\nWhen a Cyborg-managed device is detached from an instance, tenant\ndata remains on the device, and the only native NVMe driver is\nInspur-specific. This spec introduces NVMeDriver, a standalone\ndriver that manages NVMe device lifecycle using standardized\nnvme-cli commands.\n\nKey design points:\n\n- discover() enumerates devices by device_spec, detects hardware\ncapabilities via nvme id-ctrl, and reports NVMe capability\ntraits (CES, BES, WZS) to Placement\n- Introduces clear_strategy and clear_action in device_spec for\nallowing operators to configure cleaning with constraints.\n- Cleanup runs asynchronously via RPC cast to a futurist thread\npool so instance deletion is not blocked\n- A new device_state field (available, allocated,\npending_cleaning, cleaning, error) tracks cleanup lifecycle\nseparately from the existing status field\n- No runtime fallback to weaker erase methods; failures move the\ndevice to error state for operator remediation via a new\nPOST /v2/devices/{uuid}/clean endpoint\n- Existing Inspur NVMe and SSD drivers are deprecated\n\nblueprint: generic-nvme-driver-with-secure-cleanup\n\nAPIImpact\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/b3ad25d4c749c4e41f988dca422c15338bdd461d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/b3ad25d4c749c4e41f988dca422c15338bdd461d"}]},"branch":"refs/heads/master"},"689716d94eb86f80903a16a71a891e975dc24cf2":{"kind":"REWORK","_number":24,"created":"2026-07-01 11:39:51.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/24","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/24","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/24 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/24 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/24 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/24"}}},"commit":{"parents":[{"commit":"7be8542247822ef67c9427a59939fbbd4b2c544e","subject":"Merge \"move attribute spec to impletment\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/7be8542247822ef67c9427a59939fbbd4b2c544e"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-07-01 11:39:20.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\nOpenStack lacks automated lifecycle management for NVMe devices.\nWhen a Cyborg-managed device is detached from an instance, tenant\ndata remains on the device, and the only native NVMe driver is\nInspur-specific. This spec introduces NVMeDriver, a standalone\ndriver that manages NVMe device lifecycle using standardized\nnvme-cli commands.\n\nKey design points:\n\n- discover() enumerates devices by device_spec, detects hardware\ncapabilities via nvme id-ctrl, and reports NVMe capability\ntraits (CES, BES, WZS) to Placement\n- Introduces clear_strategy and clear_action in device_spec for\nallowing operators to configure cleaning with constraints.\n- Cleanup runs asynchronously via RPC cast to a futurist thread\npool so instance deletion is not blocked\n- A new device_state field (available, allocated,\npending_cleaning, cleaning, error) tracks cleanup lifecycle\nseparately from the existing status field\n- No runtime fallback to weaker erase methods; failures move the\ndevice to error state for operator remediation via a new\nPOST /v2/devices/{uuid}/clean endpoint\n- Existing Inspur NVMe and SSD drivers are deprecated\n\nblueprint: generic-nvme-driver-with-secure-cleanup\n\nAPIImpact\n\nAssisted-By: Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/689716d94eb86f80903a16a71a891e975dc24cf2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/689716d94eb86f80903a16a71a891e975dc24cf2"}]},"branch":"refs/heads/master"},"815d5ed46eb88a8fb0c5f0173491996d4238fdf6":{"kind":"REWORK","_number":25,"created":"2026-07-01 12:03:54.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/25","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/25","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/25 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/25 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/25 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/25"}}},"commit":{"parents":[{"commit":"7be8542247822ef67c9427a59939fbbd4b2c544e","subject":"Merge \"move attribute spec to impletment\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/7be8542247822ef67c9427a59939fbbd4b2c544e"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-07-01 12:03:34.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\nOpenStack lacks automated lifecycle management for NVMe devices.\nWhen a Cyborg-managed device is detached from an instance, tenant\ndata remains on the device, and the only native NVMe driver is\nInspur-specific. This spec introduces NVMeDriver, a standalone\ndriver that manages NVMe device lifecycle using standardized\nnvme-cli commands.\n\nKey design points:\n\n- discover() enumerates devices by device_spec, detects hardware\ncapabilities via nvme id-ctrl, and reports NVMe capability\ntraits (CES, BES, WZS) to Placement\n- Introduces clear_strategy and clear_action in device_spec for\nallowing operators to configure cleaning with constraints.\n- Cleanup runs asynchronously via RPC cast to a futurist thread\npool so instance deletion is not blocked\n- A new device_state field (available, allocated,\npending_cleaning, cleaning, error) tracks cleanup lifecycle\nseparately from the existing status field\n- No runtime fallback to weaker erase methods; failures move the\ndevice to error state for operator remediation via a new\nPOST /v2/devices/{uuid}/clean endpoint\n- Existing Inspur NVMe and SSD drivers are deprecated\n\nImplements: blueprint generic-nvme-driver-with-secure-cleanup\n\nAPIImpact\n\nAssisted-By: Claude-Code Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/815d5ed46eb88a8fb0c5f0173491996d4238fdf6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/815d5ed46eb88a8fb0c5f0173491996d4238fdf6"}]},"branch":"refs/heads/master"},"b6c43f73c5d042cf2c8a10834e534b8f3bfe826a":{"kind":"REWORK","_number":26,"created":"2026-07-02 04:23:42.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/49/985349/26","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg-specs","ref":"refs/changes/49/985349/26","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/26 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/26 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/26 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg-specs refs/changes/49/985349/26"}}},"commit":{"parents":[{"commit":"7be8542247822ef67c9427a59939fbbd4b2c544e","subject":"Merge \"move attribute spec to impletment\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/7be8542247822ef67c9427a59939fbbd4b2c544e"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-20 09:38:49.000000000","tz":330},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-07-02 04:23:21.000000000","tz":330},"subject":"Add generic NVMe driver spec with secure cleanup","message":"Add generic NVMe driver spec with secure cleanup\n\nOpenStack lacks automated lifecycle management for NVMe devices.\nWhen a Cyborg-managed device is detached from an instance, tenant\ndata remains on the device, and the only native NVMe driver is\nInspur-specific. This spec introduces NVMeDriver, a standalone\ndriver that manages NVMe device lifecycle using standardized\nnvme-cli commands.\n\nKey design points:\n\n- discover() enumerates devices by device_spec, detects hardware\ncapabilities via nvme id-ctrl, and reports NVMe capability\ntraits (CES, BES, WZS) to Placement\n- Introduces clear_strategy and clear_action in device_spec for\nallowing operators to configure cleaning with constraints.\n- Cleanup runs asynchronously via RPC cast to a futurist thread\npool so instance deletion is not blocked\n- A new device_state field (available, allocated,\npending_cleaning, cleaning, error) tracks cleanup lifecycle\nseparately from the existing status field\n- No runtime fallback to weaker erase methods; failures move the\ndevice to error state for operator remediation via a new\nPOST /v2/devices/{uuid}/clean endpoint\n- Existing Inspur NVMe and SSD drivers are deprecated\n\nImplements: blueprint generic-nvme-driver-with-secure-cleanup\n\nAPIImpact\n\nAssisted-By: Claude-Code Claude Sonnet 4.6\nChange-Id: If6802a8f7b87fb54803e16381843d63f78f7c2d3\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-specs/commit/b6c43f73c5d042cf2c8a10834e534b8f3bfe826a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg-specs/commit/b6c43f73c5d042cf2c8a10834e534b8f3bfe826a"}]},"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":""}}}]}
