)]}'
{"id":"openstack%2Foslo.utils~978097","triplet_id":"openstack%2Foslo.utils~master~Id423e3b047bcad706c39dbf7b49025475e154aa3","project":"openstack/oslo.utils","branch":"master","topic":"LUKS-image-encryption","attention_set":{},"removed_from_attention_set":{"15334":{"account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"last_update":"2026-04-15 17:18:51.000000000","reason":"\u003cGERRIT_ACCOUNT_15334\u003e replied on the change","reason_account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}},"4393":{"account":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"last_update":"2026-05-21 23:30:40.000000000","reason":"Change was submitted"},"4523":{"account":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"last_update":"2026-05-21 23:30:40.000000000","reason":"Change was submitted"},"33742":{"account":{"_account_id":33742,"name":"Jonas Schäfer","email":"jonas.schaefer@cloudandheat.com","username":"jssfr"},"last_update":"2026-03-19 07:18:28.000000000","reason":"\u003cGERRIT_ACCOUNT_33742\u003e replied on the change","reason_account":{"_account_id":33742,"name":"Jonas Schäfer","email":"jonas.schaefer@cloudandheat.com","username":"jssfr"}}},"hashtags":[],"change_id":"Id423e3b047bcad706c39dbf7b49025475e154aa3","subject":"LUKSInspector: Decrypt the first block","status":"MERGED","created":"2026-02-26 16:03:22.000000000","updated":"2026-05-21 23:31:31.000000000","submitted":"2026-05-21 23:30:40.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":38,"unresolved_comment_count":1,"has_review_started":true,"submission_id":"978097-LUKS-image-encryption","meta_rev_id":"f2cf641554c7898b838aa05adc77638a476fb05a","_number":978097,"virtual_id_number":978097,"owner":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},{"value":0,"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-05-21 23:30:39.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"all":[{"value":2,"date":"2026-05-20 18:07:53.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":2,"date":"2026-05-21 06:18:37.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},{"value":0,"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"all":[{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":1,"date":"2026-05-21 06:18:37.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},{"value":0,"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Backport-Candidate":{"all":[{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},{"value":0,"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do Not Backport","-1":"Not A Backport Candidate"," 0":"Backport Review Needed","+1":"Proposed Backport","+2":"Should Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"}],"REVIEWER":[{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-02-26 16:04:47.000000000","updated_by":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"reviewer":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"state":"CC"},{"updated":"2026-02-26 18:07:32.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-03-04 08:17:59.000000000","updated_by":{"_account_id":33742,"name":"Jonas Schäfer","email":"jonas.schaefer@cloudandheat.com","username":"jssfr"},"reviewer":{"_account_id":33742,"name":"Jonas Schäfer","email":"jonas.schaefer@cloudandheat.com","username":"jssfr"},"state":"CC"},{"updated":"2026-03-06 14:39:20.000000000","updated_by":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"reviewer":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"state":"CC"},{"updated":"2026-03-18 13:48:13.000000000","updated_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"reviewer":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"state":"CC"},{"updated":"2026-03-19 07:18:28.000000000","updated_by":{"_account_id":33742,"name":"Jonas Schäfer","email":"jonas.schaefer@cloudandheat.com","username":"jssfr"},"reviewer":{"_account_id":33742,"name":"Jonas Schäfer","email":"jonas.schaefer@cloudandheat.com","username":"jssfr"},"state":"REMOVED"},{"updated":"2026-05-20 18:07:53.000000000","updated_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"reviewer":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"state":"REVIEWER"},{"updated":"2026-05-21 06:18:37.000000000","updated_by":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"reviewer":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"state":"REVIEWER"}],"messages":[{"id":"0e33db882d5d4706aa491b13511a0ca6fe5eac93","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-02-26 16:03:22.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"fcbf91b6691ee9e0dc08886d3a219eac25de006e","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-02-26 16:04:47.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"18c0e08e2be2327f6074855430fafc949dc21344","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-02-26 16:08:46.000000000","message":"Topic set to inspect-luks-content","accounts_in_message":[],"_revision_number":1},{"id":"5e41e70d5dbff4344eb56fddf6a54825cca95428","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-26 18:07:32.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/4f2ee56f78584e9d9cc061c85f59e648\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/3d8f26234ded4ba388d6d6bcf96f880a : FAILURE in 2m 44s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/7adac51e98c54eed96a244e74e283dff : SUCCESS in 1h 50m 03s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/20e8191c00b44998bc787e6e528c6995 : SUCCESS in 10m 42s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b0228b60e1c64c5ea433f6c8b2f303ea : SUCCESS in 4m 27s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/c8c66077715941d1812940d0935a1ac6 : SUCCESS in 4m 23s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/7cea979137b3459098228009ae7885c1 : SUCCESS in 4m 35s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/400b81a192ce428f8716f5091204e064 : SUCCESS in 7m 44s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d9273d95c28c44b3aa813ef6cc9fed92 : SUCCESS in 3m 32s","accounts_in_message":[],"_revision_number":1},{"id":"20e08500127c3c8934c223809a70b127fad4e6e6","author":{"_account_id":33742,"name":"Jonas Schäfer","email":"jonas.schaefer@cloudandheat.com","username":"jssfr"},"date":"2026-03-04 08:17:59.000000000","message":"Patch Set 1:\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"d2e729dee4665f314fe77a61a53ab4cfc8f742f3","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-03-04 16:46:53.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"b851182ae549165c201df342a0f78477e96385e2","author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"date":"2026-03-06 14:54:35.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"d4f7acb2831dd20b7a27cf5a21a2837dcde58d3b","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-03-06 15:47:13.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"79b80ae5b524529e0dae320524cd1780326dbaa1","author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"date":"2026-03-17 16:22:02.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"9e504e49902ea48c6cfc16da712cb804f0ce8e3f","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-03-18 13:48:13.000000000","message":"Patch Set 1:\n\n(6 comments)","accounts_in_message":[],"_revision_number":1},{"id":"ffda4d57097130e24bcc9f584b598a7efc3dd01f","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-03-18 14:02:04.000000000","message":"Patch Set 1:\n\n(5 comments)","accounts_in_message":[],"_revision_number":1},{"id":"aa9cd3b6c058895198c1004394657fbd5ea23a6f","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-03-18 14:33:11.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"d3328de0e688d657282f5d026f79d32577244498","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-03-18 14:38:36.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"0a9b49f88d882fd6c5e223493797512dc132241b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-03-18 16:48:37.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":2},{"id":"c60472c4bf81532122a42b797e3229c891464755","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-03-18 16:49:09.000000000","message":"Patch Set 2: Workflow-1\n\n(3 comments)","accounts_in_message":[],"_revision_number":2},{"id":"24174acf3cef196d8ecaa7e2e06b8ee25041ba21","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-18 17:02:37.000000000","message":"Patch Set 2: 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/072273a0becf4f9b8522ab3a6313ced2\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/253c79cf5a2a47fab10a4f78b3bf94fd : FAILURE in 2m 26s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/cf255f79cc9046fbbc1704faa2b10b2b : FAILURE in 12m 56s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/410701f744a446cb8c2e4222ab318bdf : FAILURE in 3m 47s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/67356a0d303442bfa0cd082555a8f368 : SUCCESS in 3m 28s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/f60a0350d34e48f58b28185f07af3482 : FAILURE in 2m 38s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/d9c7730b44f44aa0af833272cf9aec1f : FAILURE in 2m 38s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/1c6df51f3e324cf3a7617535e0010a1f : FAILURE in 5m 50s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/42cb3a98fafa48a0bbe5858d5edd6d51 : SUCCESS in 2m 44s","accounts_in_message":[],"_revision_number":2},{"id":"956b1dfc077fc16cfbea3b5d5270596f79686f4d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-03-18 20:35:05.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified-1\n* Workflow-1\n","accounts_in_message":[],"_revision_number":3},{"id":"110555d5b9cddc81a4213033c4e650dcbe075b4b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-18 21:12:46.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/f20236b571ee4b9bb90449c147be2005\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/40f8c1080c35410baca3ad4509ad1bd4 : FAILURE in 3m 01s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/c8971eac695446f180fcd62f54850169 : FAILURE in 28m 56s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/5da860a36766494ab699717f0c1cd894 : FAILURE in 3m 11s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/9b28d9129a614aa5b29484fe0fff7315 : SUCCESS in 2m 27s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/a3eed25000194750a4c1b937d7a53b59 : FAILURE in 3m 33s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/397b1f2e23dc4398bcfe9890acaec46e : FAILURE in 4m 07s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/7f68055643004ce1826c3f5366e0bca1 : FAILURE in 3m 23s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/aa4b7c5f56494db3a4d4da7f756ac602 : SUCCESS in 5m 36s","accounts_in_message":[],"_revision_number":3},{"id":"bbf1459f36cec9fc9cb7f63b58dec8341a5ab998","tag":"autogenerated:gerrit:deleteReviewer","author":{"_account_id":33742,"name":"Jonas Schäfer","email":"jonas.schaefer@cloudandheat.com","username":"jssfr"},"date":"2026-03-19 07:18:28.000000000","message":"Removed cc \u003cGERRIT_ACCOUNT_33742\u003e.","accounts_in_message":[{"_account_id":33742,"name":"Jonas Schäfer","email":"jonas.schaefer@cloudandheat.com","username":"jssfr"}],"_revision_number":3},{"id":"faad19496600f2373a04dfdc0b35f4ca0de7b539","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-04-10 17:53:35.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":4},{"id":"0e6db6455beab1612180ec05b684c41bc710110a","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-04-10 18:08:10.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"0c76005a19ef1764948d4670edd893b10b87866f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-10 19:47:22.000000000","message":"Patch Set 4: Verified-1\n\n(5 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/d78b803efd634878a99d23996dc38f89\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/e6df1022224d445cafadd2fc679e2ed0 : FAILURE in 2m 39s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/3b37e319643d4b8db1696935aa0aefd3 : SUCCESS in 1h 48m 17s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/fab76e89f74347a9965c412b3e81c8e6 : SUCCESS in 7m 38s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1fbdf5d660f24962b0394c345d14085f : FAILURE in 2m 46s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/00cf027e52bf4a88ae8f4fa94407f58f : SUCCESS in 4m 17s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/b05aadcae8fa40d180eb5fca80dc53c2 : SUCCESS in 4m 37s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/d8ba2f5cd7974408a186325d040475bb : SUCCESS in 6m 56s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8bb9792840ba4a4aa4a16418800b0e81 : SUCCESS in 3m 35s","accounts_in_message":[],"_revision_number":4},{"id":"45b89e00fa47ca74d0cbe1377fbfce035cd77d0d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-04-14 19:46:56.000000000","message":"Uploaded patch set 5.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":5},{"id":"83b23b77a813f415ea90a36a6b8e1bd155e19082","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-04-14 21:31:32.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"d3c0e18382a24f758e191fe499c1ed6164396159","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-04-14 21:40:22.000000000","message":"Uploaded patch set 7.","accounts_in_message":[],"_revision_number":7},{"id":"092692881c53c258631c31a6fe8d35533ce9d37f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-14 23:43:18.000000000","message":"Patch Set 7: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/34e86c21f9aa44a9b22c134cd4d5fc84\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/66f509c1fd1546e1863ccceadcdb1413 : SUCCESS in 2m 27s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/257b3f95608444c18e9ec73869ec0215 : SUCCESS in 1h 57m 15s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/aabfa2781cd14e31a06e74666d35dc9f : SUCCESS in 5m 50s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f6f126e5353c4e62b7544cd58605f42e : SUCCESS in 4m 04s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/95d366e644fc4c2dbdd5afc46835f928 : SUCCESS in 5m 42s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/8754b10c3c0f4afb849e817a5d3e8392 : SUCCESS in 4m 49s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/a88cc453c425426b8916b49884e77468 : SUCCESS in 5m 53s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/76b631c5b70546e0b875bf3a851c8925 : SUCCESS in 3m 18s","accounts_in_message":[],"_revision_number":7},{"id":"94928ccdc1b6a071b4d4a432f1cc3be24f44d45c","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-04-15 14:22:52.000000000","message":"Patch Set 7:\n\n(3 comments)","accounts_in_message":[],"_revision_number":7},{"id":"c16d072782a01c18c0d01b36c64859c5f801e211","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-04-15 14:27:22.000000000","message":"Patch Set 7:\n\n(2 comments)","accounts_in_message":[],"_revision_number":7},{"id":"201e7cf57babad8cf690960b285e876220bae180","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-04-15 14:55:37.000000000","message":"Patch Set 7:\n\n(1 comment)","accounts_in_message":[],"_revision_number":7},{"id":"ca2fd4a5f07f1c0ec96bdfa856fff01269e81bc0","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-04-15 15:08:20.000000000","message":"Patch Set 7:\n\n(1 comment)","accounts_in_message":[],"_revision_number":7},{"id":"d84cc57d6824e8f6fe3380942e89d09895f470c6","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-04-15 17:18:51.000000000","message":"Patch Set 7:\n\n(1 comment)","accounts_in_message":[],"_revision_number":7},{"id":"c1dbeb6edb9e027aa289a3ab199833302e86f058","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-04-15 18:50:44.000000000","message":"Uploaded patch set 8.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":8},{"id":"7cfd6ff50d0ecc3231d947f8dc03974a26934c6c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-15 20:44:26.000000000","message":"Patch Set 8: Verified-1\n\n(2 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/4d24517a62364d5c93020f8549fe7c9a\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/5b3741b9a57546b795a07bd5c0aefb3a : SUCCESS in 2m 40s\n- requirements-check https://zuul.opendev.org/t/openstack/build/2f3e8313cea94b7da8c8be110e770eea : SUCCESS in 2m 31s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/525d97e66cee417e8b2ae88b75d5e939 : SUCCESS in 1h 48m 25s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/38f7962994714f358a1a7e39d99985ab : SUCCESS in 4m 29s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/bee212c482cb485a89a7fc671b3ed49e : FAILURE in 4m 33s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/0ad2797de6fe474ea52965635881e64d : SUCCESS in 4m 41s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/fbf9cb9d1ce44eab8fdf025a934b8e05 : SUCCESS in 4m 16s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/1ade72275eaf4b7181efc4724023caef : SUCCESS in 7m 40s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8080fbaea4cd45b3b482ead19f249645 : SUCCESS in 3m 25s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/5ca51d5315584841bc08aa8650bca493 : SUCCESS in 3m 08s","accounts_in_message":[],"_revision_number":8},{"id":"72c0859be6a633a9a7c507afdcea09472a2acb3a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-04-15 20:58:56.000000000","message":"Uploaded patch set 9.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":9},{"id":"e9911253564b1927943e8b6a8cb8174a395798f9","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-15 22:27:34.000000000","message":"Patch Set 9: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/93af402009134622a64b11014eca9250\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/14e58a64128447b5a6625a7ccb46de30 : SUCCESS in 4m 05s\n- requirements-check https://zuul.opendev.org/t/openstack/build/0cdf4347e1384e909493a0284ee5ac63 : SUCCESS in 1m 50s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/26182de718264cdfac818f9916300885 : SUCCESS in 1h 24m 53s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/a0fc5f39409b48e5bbd97913fd0608f5 : SUCCESS in 8m 34s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/507a1ad52d8e412aa93902c9c54171d9 : SUCCESS in 2m 34s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/0bf004b86bba47649b70d8b502039f7f : SUCCESS in 6m 16s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/42956d5d20654cf7aea0ed6dc099a1da : SUCCESS in 4m 14s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/4b6dac4153dc4308a88600795dc920b0 : SUCCESS in 7m 30s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/355eaa77aaab44228de5f50f06c1af3c : SUCCESS in 3m 39s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/18edff8f9a4841de8d163e4ba32b9b48 : SUCCESS in 3m 16s","accounts_in_message":[],"_revision_number":9},{"id":"c18cfbf9f9c7068844e0d9d8b565585f6600c03d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-05-13 14:04:43.000000000","message":"Uploaded patch set 10.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":10},{"id":"fd45f0daea6e2d558355f6d662d457fc79acc393","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-13 15:57:54.000000000","message":"Patch Set 10: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/da7e000d7ba94fecb9d6ccc89ba96e54\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/837e21d1e5084fa5a3f2618fc399e776 : SUCCESS in 1m 56s\n- requirements-check https://zuul.opendev.org/t/openstack/build/b74879e5a9e94a2092c53d7e52aa5564 : SUCCESS in 3m 24s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/2a61966ba1e644478b50b853729e9bb3 : SUCCESS in 1h 45m 54s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/0e05b08a8486409f81a90b208473d901 : SUCCESS in 11m 34s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/39a1f754df664f6f86890c51e6ee93ba : SUCCESS in 5m 37s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/da818d1b7b2149e8828dec7a906982f3 : SUCCESS in 4m 53s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/d9f6658e00784e4d9cf0e7748b98af13 : SUCCESS in 3m 06s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/e2c2a6e51cae4b3d95c7a25d3c38e272 : SUCCESS in 4m 39s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2f3a80ff08624e5faa5da11fe1ee5668 : SUCCESS in 3m 17s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/d591caa527324b6eb7466749228848d0 : SUCCESS in 4m 20s","accounts_in_message":[],"_revision_number":10},{"id":"e82521f607bacbccb5000db00e0b6475fabb4771","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-05-20 18:07:53.000000000","message":"Patch Set 10: Code-Review+2\n\n(2 comments)","accounts_in_message":[],"_revision_number":10},{"id":"4160e9fb18fd3754edfd28564c23a513fac4429f","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-05-20 18:08:10.000000000","message":"Patch Set 10:\n\n(1 comment)","accounts_in_message":[],"_revision_number":10},{"id":"cf35c217a322761637f9d1397fdf1b1a0566a3e8","author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"date":"2026-05-21 06:18:37.000000000","message":"Patch Set 10: Code-Review+2 Workflow+1\n\n(2 comments)","accounts_in_message":[],"_revision_number":10},{"id":"9d59fa7092534699bf3e98269feac15aa378c0dc","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-21 07:59:58.000000000","message":"Patch Set 10: Verified-2\n\nThis change depends on a change that failed to merge.\n\nChange https://review.opendev.org/c/openstack/oslo.utils/+/978096 is needed.","accounts_in_message":[],"_revision_number":10},{"id":"1592208bcd84c7479c422293bed9c36122a961cd","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-05-21 13:46:49.000000000","message":"Patch Set 10:\n\n(1 comment)","accounts_in_message":[],"_revision_number":10},{"id":"a419b51d3763d1d53b776e6804bb9270f046168a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-21 15:21:01.000000000","message":"Patch Set 10: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5e089d99de6b4a248134cbc72d7eaac0\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/69993bdb5e324a20b4eeec003a5b1f0f : SUCCESS in 2m 38s\n- requirements-check https://zuul.opendev.org/t/openstack/build/bde1481531e747119db213c1c4e1e184 : SUCCESS in 2m 23s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/402e5ae834b34499a9963729c689de7f : SUCCESS in 1h 32m 22s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/e3d67cba7982449384879267835daba1 : SUCCESS in 4m 36s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/83d033c4fa8943b59a006ce9c554963c : SUCCESS in 2m 41s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/8973f569b30446c5b6dd0a2a38dd2aa2 : SUCCESS in 6m 15s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/a21119b035294d67afb29386eb58ef7a : SUCCESS in 2m 40s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/2df67bbb88f54069b209b6436fd13f43 : SUCCESS in 4m 11s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c95fafa0017042cca121622a51c1fd47 : SUCCESS in 5m 06s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/a4c7e5f7ea004128b1e2b79d633b270c : SUCCESS in 3m 03s","accounts_in_message":[],"_revision_number":10},{"id":"11eb48e3ecda99fafef65b5d738bc5aca3a0a9ea","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-21 21:44:18.000000000","message":"Patch Set 10: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":10},{"id":"61329c369c7ac0ce5fd06f6201e573fb966fd9d3","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-21 23:30:39.000000000","message":"Patch Set 10: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5d5674359945462091211f69c3b0e00a\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/0ad1bc720b424ab59fee4b9fc8ef35ff : SUCCESS in 3m 17s\n- requirements-check https://zuul.opendev.org/t/openstack/build/913825c7bc27428c9b7c0673ed535d98 : SUCCESS in 2m 13s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/b9d3d044231541af9c2d01467916fdea : SUCCESS in 1h 43m 44s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0da770ae68a84d14acc4896ddcb3528f : SUCCESS in 5m 34s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/4bde5e63c7d54c1db4c204668ad4e3bc : SUCCESS in 3m 45s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/5e3c94aeaa404fcd8abab734c0e05ab6 : SUCCESS in 2m 18s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/432ce962ac854561bf0d7623609f23a5 : SUCCESS in 3m 15s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0bef40dd8f7f40958350a15f88448ea4 : SUCCESS in 2m 04s","accounts_in_message":[],"_revision_number":10},{"id":"9c86e851fc397df25516a558e12ebc616578cb98","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-21 23:30:40.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":10},{"id":"f2cf641554c7898b838aa05adc77638a476fb05a","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-21 23:31:31.000000000","message":"Patch Set 10:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ac04ae36acda4bb1aa21d460cc027f29\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a84dd0ac83724171bdb61d4486fb5c4f : SUCCESS in 41s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/f4b890ed33b54d55a0f97b7169d4ae7e : SUCCESS in 38s","accounts_in_message":[],"_revision_number":10}],"current_revision_number":10,"current_revision":"e4984bf5396613a516563d6d4a0a872a6d6cd632","revisions":{"7c729ad0e3f61d6990b412253835f53cc88caa68":{"kind":"REWORK","_number":1,"created":"2026-02-26 16:03:22.000000000","uploader":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"ref":"refs/changes/97/978097/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.utils","ref":"refs/changes/97/978097/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/1"}}},"commit":{"parents":[{"commit":"a11f03b22367c9aae1cf4e82315716956e8f3f6b","subject":"Add data param to FileInspector and associated tools","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/a11f03b22367c9aae1cf4e82315716956e8f3f6b"}]}],"author":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2026-02-19 19:30:54.000000000","tz":-480},"committer":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2026-02-26 16:03:05.000000000","tz":-480},"subject":"WIP: LUKSInspector: Decrypt the first block","message":"WIP: LUKSInspector: Decrypt the first block\n\nThis works for me to be able to decrypt and detect a GPT inside a\nLUKS stream with the default encryption values that qemu-img uses\nto create a file with \u0027-f luks\u0027. It will also detect a LUKS with qcow2\ninside. Note that merely LUKS-encrypting a qcow2 file is not\nconsidered a safety violation in oslo (although it should be in glance,\nnova, etc), the inner file will be safety checked and a failure will\ncascade to be a failure of the LUKS inspector itself.\n\nNote that the #noqa tags on the hash and algorithm things are because\nwe\u0027re constrained by what is allowed in the LUKS format and we are\nnot \"using\" these for security, we\u0027re just honoring what may be in\nthe file according to the spec. If we want to remove these, we will\nreject images that are legit according to LUKS if they use those\nhashes.\n\nAlso note that claude generated most of the actual decryption stuff,\nand I have yet to run through all of it with a fine-toothed comb.\nThis was to POC that it\u0027s doable and that was a fast way to get there.\nSince this stuff fails safe (i.e. if decryption fails we will report\nfailure to inspect) I think this is a fairly reasonable use of such\ntechnology.\n\nGenerated-By: Claude Sonnet 4.5\nChange-Id: Id423e3b047bcad706c39dbf7b49025475e154aa3\nSigned-off-by: Dan Smith \u003cdansmith@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/7c729ad0e3f61d6990b412253835f53cc88caa68"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/7c729ad0e3f61d6990b412253835f53cc88caa68"}]},"branch":"refs/heads/master"},"02be1585881f21e6d48a85b068852a7deddf4e67":{"kind":"REWORK","_number":2,"created":"2026-03-18 16:48:37.000000000","uploader":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"ref":"refs/changes/97/978097/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.utils","ref":"refs/changes/97/978097/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/2"}}},"commit":{"parents":[{"commit":"e63513cda89648f802a972e8793fd377a11dbdb0","subject":"Add params to FileInspector and associated tools","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/e63513cda89648f802a972e8793fd377a11dbdb0"}]}],"author":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2026-02-19 19:30:54.000000000","tz":-480},"committer":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2026-03-18 16:48:22.000000000","tz":-420},"subject":"WIP: LUKSInspector: Decrypt the first block","message":"WIP: LUKSInspector: Decrypt the first block\n\nThis works for me to be able to decrypt and detect a GPT inside a\nLUKS stream with the default encryption values that qemu-img uses\nto create a file with \u0027-f luks\u0027. It will also detect a LUKS with qcow2\ninside. Note that merely LUKS-encrypting a qcow2 file is not\nconsidered a safety violation in oslo (although it should be in glance,\nnova, etc), the inner file will be safety checked and a failure will\ncascade to be a failure of the LUKS inspector itself.\n\nNote that the #noqa tags on the hash and algorithm things are because\nwe\u0027re constrained by what is allowed in the LUKS format and we are\nnot \"using\" these for security, we\u0027re just honoring what may be in\nthe file according to the spec. If we want to remove these, we will\nreject images that are legit according to LUKS if they use those\nhashes.\n\nAlso note that claude generated most of the actual decryption stuff,\nand I have yet to run through all of it with a fine-toothed comb.\nThis was to POC that it\u0027s doable and that was a fast way to get there.\nSince this stuff fails safe (i.e. if decryption fails we will report\nfailure to inspect) I think this is a fairly reasonable use of such\ntechnology.\n\nGenerated-By: Claude Sonnet 4.5\nChange-Id: Id423e3b047bcad706c39dbf7b49025475e154aa3\nSigned-off-by: Dan Smith \u003cdansmith@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/02be1585881f21e6d48a85b068852a7deddf4e67"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/02be1585881f21e6d48a85b068852a7deddf4e67"}]},"branch":"refs/heads/master"},"048c5c0867c29d97208c226864f144009e2c0fc9":{"kind":"REWORK","_number":3,"created":"2026-03-18 20:35:05.000000000","uploader":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"ref":"refs/changes/97/978097/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.utils","ref":"refs/changes/97/978097/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/3"}}},"commit":{"parents":[{"commit":"2652492b7dc21d6032adf317c8d7fe644218d87e","subject":"Add params to FileInspector and associated tools","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/2652492b7dc21d6032adf317c8d7fe644218d87e"}]}],"author":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2026-02-19 19:30:54.000000000","tz":-480},"committer":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2026-03-18 20:34:55.000000000","tz":-420},"subject":"WIP: LUKSInspector: Decrypt the first block","message":"WIP: LUKSInspector: Decrypt the first block\n\nThis works for me to be able to decrypt and detect a GPT inside a\nLUKS stream with the default encryption values that qemu-img uses\nto create a file with \u0027-f luks\u0027. It will also detect a LUKS with qcow2\ninside. Note that merely LUKS-encrypting a qcow2 file is not\nconsidered a safety violation in oslo (although it should be in glance,\nnova, etc), the inner file will be safety checked and a failure will\ncascade to be a failure of the LUKS inspector itself.\n\nNote that the #noqa tags on the hash and algorithm things are because\nwe\u0027re constrained by what is allowed in the LUKS format and we are\nnot \"using\" these for security, we\u0027re just honoring what may be in\nthe file according to the spec. If we want to remove these, we will\nreject images that are legit according to LUKS if they use those\nhashes.\n\nAlso note that claude generated most of the actual decryption stuff,\nand I have yet to run through all of it with a fine-toothed comb.\nThis was to POC that it\u0027s doable and that was a fast way to get there.\nSince this stuff fails safe (i.e. if decryption fails we will report\nfailure to inspect) I think this is a fairly reasonable use of such\ntechnology.\n\nGenerated-By: Claude Sonnet 4.5\nChange-Id: Id423e3b047bcad706c39dbf7b49025475e154aa3\nSigned-off-by: Dan Smith \u003cdansmith@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/048c5c0867c29d97208c226864f144009e2c0fc9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/048c5c0867c29d97208c226864f144009e2c0fc9"}]},"branch":"refs/heads/master"},"a92df26df328a0b564b9a25a5cd841079c54c3d5":{"kind":"REWORK","_number":4,"created":"2026-04-10 17:53:35.000000000","uploader":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"ref":"refs/changes/97/978097/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.utils","ref":"refs/changes/97/978097/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/4"}}},"commit":{"parents":[{"commit":"5566c5118860a38223634b50fe9aaefd84e547bf","subject":"Add params to FileInspector and associated tools","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/5566c5118860a38223634b50fe9aaefd84e547bf"}]}],"author":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2026-02-19 19:30:54.000000000","tz":-480},"committer":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2026-04-10 17:51:59.000000000","tz":-420},"subject":"LUKSInspector: Decrypt the first block","message":"LUKSInspector: Decrypt the first block\n\nThis works for me to be able to decrypt and detect a GPT inside a\nLUKS stream with the default encryption values that qemu-img uses\nto create a file with \u0027-f luks\u0027. It will also detect a LUKS with qcow2\ninside. Note that merely LUKS-encrypting a qcow2 file is not\nconsidered a safety violation in oslo (although it should be in glance,\nnova, etc), the inner file will be safety checked and a failure will\ncascade to be a failure of the LUKS inspector itself.\n\nNote that the #noqa tags on the hash and algorithm things are because\nwe\u0027re constrained by what is allowed in the LUKS format and we are\nnot \"using\" these for security, we\u0027re just honoring what may be in\nthe file according to the spec. If we want to remove these, we will\nreject images that are legit according to LUKS if they use those\nhashes.\n\nGenerated-By: Claude Sonnet 4.5\nChange-Id: Id423e3b047bcad706c39dbf7b49025475e154aa3\nSigned-off-by: Dan Smith \u003cdansmith@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/a92df26df328a0b564b9a25a5cd841079c54c3d5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/a92df26df328a0b564b9a25a5cd841079c54c3d5"}]},"branch":"refs/heads/master"},"e0adcf70406137a8cbab315f1629b600270c52df":{"kind":"REWORK","_number":5,"created":"2026-04-14 19:46:56.000000000","uploader":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"ref":"refs/changes/97/978097/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.utils","ref":"refs/changes/97/978097/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/5"}}},"commit":{"parents":[{"commit":"5566c5118860a38223634b50fe9aaefd84e547bf","subject":"Add params to FileInspector and associated tools","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/5566c5118860a38223634b50fe9aaefd84e547bf"}]}],"author":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2026-02-19 19:30:54.000000000","tz":-480},"committer":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2026-04-14 19:46:45.000000000","tz":-420},"subject":"LUKSInspector: Decrypt the first block","message":"LUKSInspector: Decrypt the first block\n\nThis works for me to be able to decrypt and detect a GPT inside a\nLUKS stream with the default encryption values that qemu-img uses\nto create a file with \u0027-f luks\u0027. It will also detect a LUKS with qcow2\ninside. Note that merely LUKS-encrypting a qcow2 file is not\nconsidered a safety violation in oslo (although it should be in glance,\nnova, etc), the inner file will be safety checked and a failure will\ncascade to be a failure of the LUKS inspector itself.\n\nNote that the #noqa tags on the hash and algorithm things are because\nwe\u0027re constrained by what is allowed in the LUKS format and we are\nnot \"using\" these for security, we\u0027re just honoring what may be in\nthe file according to the spec. If we want to remove these, we will\nreject images that are legit according to LUKS if they use those\nhashes.\n\nGenerated-By: Claude Sonnet 4.5\nChange-Id: Id423e3b047bcad706c39dbf7b49025475e154aa3\nSigned-off-by: Dan Smith \u003cdansmith@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/e0adcf70406137a8cbab315f1629b600270c52df"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/e0adcf70406137a8cbab315f1629b600270c52df"}]},"branch":"refs/heads/master"},"4efee729459a8744cc16a5ea0d5c85df24404d27":{"kind":"REWORK","_number":6,"created":"2026-04-14 21:31:32.000000000","uploader":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"ref":"refs/changes/97/978097/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.utils","ref":"refs/changes/97/978097/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/6"}}},"commit":{"parents":[{"commit":"5566c5118860a38223634b50fe9aaefd84e547bf","subject":"Add params to FileInspector and associated tools","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/5566c5118860a38223634b50fe9aaefd84e547bf"}]}],"author":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2026-02-19 19:30:54.000000000","tz":-480},"committer":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2026-04-14 21:31:25.000000000","tz":-420},"subject":"LUKSInspector: Decrypt the first block","message":"LUKSInspector: Decrypt the first block\n\nThis works for me to be able to decrypt and detect a GPT inside a\nLUKS stream with the default encryption values that qemu-img uses\nto create a file with \u0027-f luks\u0027. It will also detect a LUKS with qcow2\ninside. Note that merely LUKS-encrypting a qcow2 file is not\nconsidered a safety violation in oslo (although it should be in glance,\nnova, etc), the inner file will be safety checked and a failure will\ncascade to be a failure of the LUKS inspector itself.\n\nNote that the #noqa tags on the hash and algorithm things are because\nwe\u0027re constrained by what is allowed in the LUKS format and we are\nnot \"using\" these for security, we\u0027re just honoring what may be in\nthe file according to the spec. If we want to remove these, we will\nreject images that are legit according to LUKS if they use those\nhashes.\n\nGenerated-By: Claude Sonnet 4.5\nChange-Id: Id423e3b047bcad706c39dbf7b49025475e154aa3\nSigned-off-by: Dan Smith \u003cdansmith@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/4efee729459a8744cc16a5ea0d5c85df24404d27"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/4efee729459a8744cc16a5ea0d5c85df24404d27"}]},"branch":"refs/heads/master"},"a182d3f1e25e18344ec83eff026e49c5289fc5d8":{"kind":"REWORK","_number":7,"created":"2026-04-14 21:40:22.000000000","uploader":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"ref":"refs/changes/97/978097/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.utils","ref":"refs/changes/97/978097/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/7"}}},"commit":{"parents":[{"commit":"5566c5118860a38223634b50fe9aaefd84e547bf","subject":"Add params to FileInspector and associated tools","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/5566c5118860a38223634b50fe9aaefd84e547bf"}]}],"author":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2026-02-19 19:30:54.000000000","tz":-480},"committer":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2026-04-14 21:40:16.000000000","tz":-420},"subject":"LUKSInspector: Decrypt the first block","message":"LUKSInspector: Decrypt the first block\n\nThis works for me to be able to decrypt and detect a GPT inside a\nLUKS stream with the default encryption values that qemu-img uses\nto create a file with \u0027-f luks\u0027. It will also detect a LUKS with qcow2\ninside. Note that merely LUKS-encrypting a qcow2 file is not\nconsidered a safety violation in oslo (although it should be in glance,\nnova, etc), the inner file will be safety checked and a failure will\ncascade to be a failure of the LUKS inspector itself.\n\nNote that the #noqa tags on the hash and algorithm things are because\nwe\u0027re constrained by what is allowed in the LUKS format and we are\nnot \"using\" these for security, we\u0027re just honoring what may be in\nthe file according to the spec. If we want to remove these, we will\nreject images that are legit according to LUKS if they use those\nhashes.\n\nGenerated-By: Claude Sonnet 4.5\nChange-Id: Id423e3b047bcad706c39dbf7b49025475e154aa3\nSigned-off-by: Dan Smith \u003cdansmith@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/a182d3f1e25e18344ec83eff026e49c5289fc5d8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/a182d3f1e25e18344ec83eff026e49c5289fc5d8"}]},"branch":"refs/heads/master"},"671a44677d93c9cbf361d850a9ec118837d69830":{"kind":"REWORK","_number":8,"created":"2026-04-15 18:50:44.000000000","uploader":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"ref":"refs/changes/97/978097/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.utils","ref":"refs/changes/97/978097/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/8"}}},"commit":{"parents":[{"commit":"77899930a7812a138aad1ea68dbdc43f69e2a779","subject":"Add params to FileInspector and associated tools","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/77899930a7812a138aad1ea68dbdc43f69e2a779"}]}],"author":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2026-02-19 19:30:54.000000000","tz":-480},"committer":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2026-04-15 18:49:27.000000000","tz":-420},"subject":"LUKSInspector: Decrypt the first block","message":"LUKSInspector: Decrypt the first block\n\nThis works for me to be able to decrypt and detect a GPT inside a\nLUKS stream with the default encryption values that qemu-img uses\nto create a file with \u0027-f luks\u0027. It will also detect a LUKS with qcow2\ninside. Note that merely LUKS-encrypting a qcow2 file is not\nconsidered a safety violation in oslo (although it should be in glance,\nnova, etc), the inner file will be safety checked and a failure will\ncascade to be a failure of the LUKS inspector itself.\n\nNote that the #noqa tags on the hash and algorithm things are because\nwe\u0027re constrained by what is allowed in the LUKS format and we are\nnot \"using\" these for security, we\u0027re just honoring what may be in\nthe file according to the spec. If we want to remove these, we will\nreject images that are legit according to LUKS if they use those\nhashes.\n\nSince this new _luks module requires cryptography, this adds an extra\nvariant of the package (image-inspection) that brings that in.\nWe\u0027ll expect users of the library that want inspection (even without\nLUKS support) to have required that extra.\n\nGenerated-By: Claude Sonnet 4.5\nChange-Id: Id423e3b047bcad706c39dbf7b49025475e154aa3\nSigned-off-by: Dan Smith \u003cdansmith@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/671a44677d93c9cbf361d850a9ec118837d69830"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/671a44677d93c9cbf361d850a9ec118837d69830"}]},"branch":"refs/heads/master"},"4c435c545e1f169e87d1187a56c5a6ab9a742b52":{"kind":"REWORK","_number":9,"created":"2026-04-15 20:58:56.000000000","uploader":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"ref":"refs/changes/97/978097/9","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.utils","ref":"refs/changes/97/978097/9","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/9"}}},"commit":{"parents":[{"commit":"77899930a7812a138aad1ea68dbdc43f69e2a779","subject":"Add params to FileInspector and associated tools","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/77899930a7812a138aad1ea68dbdc43f69e2a779"}]}],"author":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2026-02-19 19:30:54.000000000","tz":-480},"committer":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2026-04-15 20:58:48.000000000","tz":-420},"subject":"LUKSInspector: Decrypt the first block","message":"LUKSInspector: Decrypt the first block\n\nThis works for me to be able to decrypt and detect a GPT inside a\nLUKS stream with the default encryption values that qemu-img uses\nto create a file with \u0027-f luks\u0027. It will also detect a LUKS with qcow2\ninside. Note that merely LUKS-encrypting a qcow2 file is not\nconsidered a safety violation in oslo (although it should be in glance,\nnova, etc), the inner file will be safety checked and a failure will\ncascade to be a failure of the LUKS inspector itself.\n\nNote that the #noqa tags on the hash and algorithm things are because\nwe\u0027re constrained by what is allowed in the LUKS format and we are\nnot \"using\" these for security, we\u0027re just honoring what may be in\nthe file according to the spec. If we want to remove these, we will\nreject images that are legit according to LUKS if they use those\nhashes.\n\nSince this new _luks module requires cryptography, this adds an extra\nvariant of the package (image-inspection) that brings that in.\nWe\u0027ll expect users of the library that want inspection (even without\nLUKS support) to have required that extra.\n\nGenerated-By: Claude Sonnet 4.5\nChange-Id: Id423e3b047bcad706c39dbf7b49025475e154aa3\nSigned-off-by: Dan Smith \u003cdansmith@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/4c435c545e1f169e87d1187a56c5a6ab9a742b52"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/4c435c545e1f169e87d1187a56c5a6ab9a742b52"}]},"branch":"refs/heads/master"},"e4984bf5396613a516563d6d4a0a872a6d6cd632":{"kind":"REWORK","_number":10,"created":"2026-05-13 14:04:43.000000000","uploader":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"ref":"refs/changes/97/978097/10","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.utils","ref":"refs/changes/97/978097/10","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.utils refs/changes/97/978097/10"}}},"commit":{"parents":[{"commit":"0ae38e346dc972d8f056777300679f834e75b513","subject":"Add params to FileInspector and associated tools","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/0ae38e346dc972d8f056777300679f834e75b513"}]}],"author":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2026-02-19 19:30:54.000000000","tz":-480},"committer":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2026-05-13 14:04:26.000000000","tz":-420},"subject":"LUKSInspector: Decrypt the first block","message":"LUKSInspector: Decrypt the first block\n\nThis works for me to be able to decrypt and detect a GPT inside a\nLUKS stream with the default encryption values that qemu-img uses\nto create a file with \u0027-f luks\u0027. It will also detect a LUKS with qcow2\ninside. Note that merely LUKS-encrypting a qcow2 file is not\nconsidered a safety violation in oslo (although it should be in glance,\nnova, etc), the inner file will be safety checked and a failure will\ncascade to be a failure of the LUKS inspector itself.\n\nNote that the #noqa tags on the hash and algorithm things are because\nwe\u0027re constrained by what is allowed in the LUKS format and we are\nnot \"using\" these for security, we\u0027re just honoring what may be in\nthe file according to the spec. If we want to remove these, we will\nreject images that are legit according to LUKS if they use those\nhashes.\n\nSince this new _luks module requires cryptography, this adds an extra\nvariant of the package (image-inspection) that brings that in.\nWe\u0027ll expect users of the library that want inspection (even without\nLUKS support) to have required that extra.\n\nGenerated-By: Claude Sonnet 4.5\nChange-Id: Id423e3b047bcad706c39dbf7b49025475e154aa3\nSigned-off-by: Dan Smith \u003cdansmith@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/e4984bf5396613a516563d6d4a0a872a6d6cd632"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/e4984bf5396613a516563d6d4a0a872a6d6cd632"}]},"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":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"}},{"label":"Backport-Candidate","status":"MAY"}]}],"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":"Backport-Candidate","description":"Backport candidate status","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"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":""}}}]}
