)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"572d0eb63401b8d4d0b66226a5e1acf2dad9b72a","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     melanie witt \u003cmelwittt@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2025-10-01 20:49:10 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Opt-in to new TPM secret security via resize"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Users with pre-existing instances can opt-in to the new scheme of TPM"},{"line_number":10,"context_line":"secret security by resizing their instance to a flavor that has a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"d0a130b4_43563434","line":7,"updated":"2025-10-02 23:09:57.000000000","message":"Note to self: prepend this sentence with `TPM: `","commit_id":"bacc485a4f7b008af8cc5fc10fcacd18b44e3edb"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"e6e4d6eae08273bcb38d2a23f47db20bee3a9a0a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     melanie witt \u003cmelwittt@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2025-10-01 20:49:10 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Opt-in to new TPM secret security via resize"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Users with pre-existing instances can opt-in to the new scheme of TPM"},{"line_number":10,"context_line":"secret security by resizing their instance to a flavor that has a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"cfe58411_39260ca7","line":7,"in_reply_to":"d0a130b4_43563434","updated":"2025-10-08 06:22:23.000000000","message":"Done","commit_id":"bacc485a4f7b008af8cc5fc10fcacd18b44e3edb"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"e8a758db23acddf49131bf52bcc8c844138de01d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"a7801eb2_3da675fa","updated":"2025-10-01 20:59:21.000000000","message":"recheck dep updated","commit_id":"bacc485a4f7b008af8cc5fc10fcacd18b44e3edb"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7be4ae07baa8bb7bb26535b8d675022f209d72c3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"aab8ea08_f7ae4327","updated":"2025-10-10 06:21:53.000000000","message":"recheck nova.exception.HypervisorUnavailable: Connection to the hypervisor is broken on host","commit_id":"2f0b74a7f804a7b38b84d6c108c9d08bf5c4a7c1"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7268613dfee53cb1b41b4982de0411da69fc2dec","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"b6a10680_89fa0809","updated":"2025-10-21 03:09:38.000000000","message":"recheck Error: creating build container: copying system image from manifest list: determining manifest MIME type for docker://quay.io/centos/centos:stream9: reading manifest sha256:dcaa7a83c4e2825b27beb29f10c501ef0ff37e94e022e2c1ae8b40c5af7624f9 in quay.io/centos/centos: received unexpected HTTP status: 500 Internal Server Error","commit_id":"125682f0dd53595a939b987afbc690e3a4ca0cc1"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"02f6d5cc2eb2ffb02fc2ce6aa4df4d15c2e8a6b0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"fd9d597b_815afe1e","updated":"2025-11-19 06:32:36.000000000","message":"minor nit, otherwise LGTM.","commit_id":"751b51ac3dce46f2e4831c3004a21fffd0601b01"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"af2c6f2a7c8d8ebd16b63d9c32b3939cf9de6ff8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"89567e87_96e03011","updated":"2025-11-24 19:50:03.000000000","message":"recheck ssh timeout","commit_id":"5c5c64776ca74f5745f888b5eb41fba76f3403bf"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"1b00d47ebdc0763dc457f069e5a5fc5d04e8fe48","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"d639d718_3abd2ac3","updated":"2026-02-18 18:49:00.000000000","message":"recheck RuntimeError: Failed command: /usr/bin/podman run --rm --ipc\u003dhost --stop-signal\u003dSIGTERM --net\u003dhost --entrypoint /usr/bin/ceph --init -e CONTAINER_IMAGE\u003dquay.io/ceph/ceph:v20 -e NODE_NAME\u003dnp7169995d233b4 -v /var/log/ceph/9607fd43-96e2-4b42-9fc0-edc760e2d237:/var/log/ceph:z -v /tmp/ceph-tmpf9c25t2d:/etc/ceph/ceph.client.admin.keyring:z -v /tmp/ceph-tmpao6yduyl:/etc/ceph/ceph.conf:z quay.io/ceph/ceph:v20 orch set backend cephadm: Error ENOTSUP: Warning: due to ceph-mgr restart, some PG states may not be up to date\nModule \u0027orchestrator\u0027 is not enabled/loaded (required by command \u0027orch set backend\u0027): use `ceph mgr module enable orchestrator` to enable it","commit_id":"d3fd1695479e15a8cea7fedf9f1f3c12ab4ee872"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"fd5871f6061f7bdc877051c803de124446684f48","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":45,"id":"e779f5d1_11356580","updated":"2026-04-04 09:10:24.000000000","message":"recheck dep updated","commit_id":"9a4ec10ae29e909263f06f364da41d68ba6f82b0"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"ae63b2ec55b1a9b687b46cdb3c6b1e9da3045239","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":46,"id":"215b0868_d7e0ff0a","updated":"2026-04-06 00:47:09.000000000","message":"recheck dep updated","commit_id":"478f1f6fd797f005c7b1b8bfcb17e75f26665592"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"938c2b3d33eb9080f7a02c52a773535464735348","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":46,"id":"b86be959_13fbf4af","updated":"2026-04-05 00:07:30.000000000","message":"recheck dep updated","commit_id":"478f1f6fd797f005c7b1b8bfcb17e75f26665592"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"62aa5595daaf05a111a43d7dbe88eebf9b2c3139","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":46,"id":"c72267e1_08581c79","updated":"2026-04-05 18:28:02.000000000","message":"recheck dep updated","commit_id":"478f1f6fd797f005c7b1b8bfcb17e75f26665592"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7c5bb622c290d92eb08673ff1ad5087473c1dcdd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":46,"id":"f1a6076a_d4b2053a","updated":"2026-04-05 21:00:03.000000000","message":"recheck dep updated","commit_id":"478f1f6fd797f005c7b1b8bfcb17e75f26665592"}],"nova/crypto.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3c2f881ffa30288a3bf2bfedb863a6e43dc44d5a","unresolved":true,"context_lines":[{"line_number":204,"context_line":"    key_mgr \u003d _get_key_manager()"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    secret_uuid \u003d instance.system_metadata.get(\u0027vtpm_secret_uuid\u0027)"},{"line_number":207,"context_line":"    if secret_uuid is not None:"},{"line_number":208,"context_line":"        # Try to retrieve the secret from the key manager"},{"line_number":209,"context_line":"        try:"},{"line_number":210,"context_line":"            secret_obj \u003d key_mgr.get(context, secret_uuid)"}],"source_content_type":"text/x-python","patch_set":41,"id":"6b631f4e_dbb4c77f","line":207,"updated":"2026-02-27 18:50:01.000000000","message":"If this condition is true, and `secret` was passed in then we\u0027re likely in trouble right? Meaning, if this was called with `secret` set to something, but the instance already has one, we\u0027re not going to _change_ it to what was passed.\n\nCan we put something like this in?\n```\nif secret_uuid is not None:\n    if secret is not None:\n        raise InternalExplody(\u0027Someone is confused - instance has a secret defined and my caller expected me to create/set it\u0027)\n```\nIdeally that never happens but if it does, there should be some evidence and not just a silent ignore right? Maybe `LOG.warning()` would be more conservative, but if it really should never happen it seems better to be explicit.","commit_id":"345a2b8b8b884179c63f4aaac87fef161f900f7b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"f4c433cb18f16ab98502a557b24c2e81f5e06d4d","unresolved":true,"context_lines":[{"line_number":204,"context_line":"    key_mgr \u003d _get_key_manager()"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    secret_uuid \u003d instance.system_metadata.get(\u0027vtpm_secret_uuid\u0027)"},{"line_number":207,"context_line":"    if secret_uuid is not None:"},{"line_number":208,"context_line":"        # Try to retrieve the secret from the key manager"},{"line_number":209,"context_line":"        try:"},{"line_number":210,"context_line":"            secret_obj \u003d key_mgr.get(context, secret_uuid)"}],"source_content_type":"text/x-python","patch_set":41,"id":"e20ece1f_8d3aba37","line":207,"in_reply_to":"6b631f4e_dbb4c77f","updated":"2026-03-04 00:24:58.000000000","message":"We\u0027re not going to change it but we will instead be create a new Barbican secret that has the same string passphrase as an existing secret. This is the expected state that we will have two Barbican secrets (temporarily) that have the same string passphrase/password.\n\nThis seemed to me the best way to handle a resize from user/host to deployment or vice versa. Keep the existing secret intact until resize revert or confirm. And then depending on revert or confirm, delete the appropriate Barbican secret.","commit_id":"345a2b8b8b884179c63f4aaac87fef161f900f7b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3c2f881ffa30288a3bf2bfedb863a6e43dc44d5a","unresolved":true,"context_lines":[{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    # If we get here, the instance has no vtpm_secret_uuid. Create a new one"},{"line_number":228,"context_line":"    # and register it with the key manager."},{"line_number":229,"context_line":"    if secret is None:"},{"line_number":230,"context_line":"        secret \u003d base64.b64encode(os.urandom(_VTPM_SECRET_BYTE_LENGTH))"},{"line_number":231,"context_line":"    # Castellan ManagedObject"},{"line_number":232,"context_line":"    cmo \u003d passphrase.Passphrase("}],"source_content_type":"text/x-python","patch_set":41,"id":"39af348d_687d5b2a","line":229,"updated":"2026-02-27 18:50:01.000000000","message":"Feels like this needs an addition to the comment above. I guess depending on what your definition of \"create\" is. I read that as \"generate it\" in which case we may or may not, depending on if it was passed in.","commit_id":"345a2b8b8b884179c63f4aaac87fef161f900f7b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"f4c433cb18f16ab98502a557b24c2e81f5e06d4d","unresolved":true,"context_lines":[{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    # If we get here, the instance has no vtpm_secret_uuid. Create a new one"},{"line_number":228,"context_line":"    # and register it with the key manager."},{"line_number":229,"context_line":"    if secret is None:"},{"line_number":230,"context_line":"        secret \u003d base64.b64encode(os.urandom(_VTPM_SECRET_BYTE_LENGTH))"},{"line_number":231,"context_line":"    # Castellan ManagedObject"},{"line_number":232,"context_line":"    cmo \u003d passphrase.Passphrase("}],"source_content_type":"text/x-python","patch_set":41,"id":"3afdc53f_06883de2","line":229,"in_reply_to":"39af348d_687d5b2a","updated":"2026-03-04 00:24:58.000000000","message":"Yeah this is sort of decoupled from the Barbican secret objects themselves. The secret value itself will be duplicated temporarily as one user owned Barbican secret and one Nova service user owned Barbican secret for an unconfirmed resize going from \u0027user\u0027/\u0027host\u0027 to \u0027deployment\u0027 or vice versa.","commit_id":"345a2b8b8b884179c63f4aaac87fef161f900f7b"}],"nova/tests/functional/libvirt/test_vtpm.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3c2f881ffa30288a3bf2bfedb863a6e43dc44d5a","unresolved":true,"context_lines":[{"line_number":282,"context_line":"    @ddt.data(\u0027host\u0027, \u0027deployment\u0027)"},{"line_number":283,"context_line":"    def test_tpm_secret_security_instance_opt_in_resize_confirm("},{"line_number":284,"context_line":"            self, secret_security):"},{"line_number":285,"context_line":"        \"\"\"Test that a \u0027user\u0027 instance can opt-in to live migration."},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        Only instances using the new \u0027host\u0027 or \u0027deployment\u0027 TPM secret security"},{"line_number":288,"context_line":"        policies are able to live migrate."}],"source_content_type":"text/x-python","patch_set":41,"id":"ab0e70b6_ccf34197","line":285,"updated":"2026-02-27 18:50:01.000000000","message":"Er, this is really testing that they an convert/opt-in-to some other security mode. Since live migrations aren\u0027t a thing a user does (or usually even knows about) this seems a bit incorrect. I first saw this while skimming and thought it was testing live migration, which it\u0027s not.","commit_id":"345a2b8b8b884179c63f4aaac87fef161f900f7b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"16982df8bcb4b109ac1691e952a54b279641249f","unresolved":false,"context_lines":[{"line_number":282,"context_line":"    @ddt.data(\u0027host\u0027, \u0027deployment\u0027)"},{"line_number":283,"context_line":"    def test_tpm_secret_security_instance_opt_in_resize_confirm("},{"line_number":284,"context_line":"            self, secret_security):"},{"line_number":285,"context_line":"        \"\"\"Test that a \u0027user\u0027 instance can opt-in to live migration."},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        Only instances using the new \u0027host\u0027 or \u0027deployment\u0027 TPM secret security"},{"line_number":288,"context_line":"        policies are able to live migrate."}],"source_content_type":"text/x-python","patch_set":41,"id":"ec01e2cb_f9d06f2c","line":285,"in_reply_to":"9d24c483_d6564685","updated":"2026-03-04 00:51:46.000000000","message":"Done","commit_id":"345a2b8b8b884179c63f4aaac87fef161f900f7b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"f4c433cb18f16ab98502a557b24c2e81f5e06d4d","unresolved":true,"context_lines":[{"line_number":282,"context_line":"    @ddt.data(\u0027host\u0027, \u0027deployment\u0027)"},{"line_number":283,"context_line":"    def test_tpm_secret_security_instance_opt_in_resize_confirm("},{"line_number":284,"context_line":"            self, secret_security):"},{"line_number":285,"context_line":"        \"\"\"Test that a \u0027user\u0027 instance can opt-in to live migration."},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        Only instances using the new \u0027host\u0027 or \u0027deployment\u0027 TPM secret security"},{"line_number":288,"context_line":"        policies are able to live migrate."}],"source_content_type":"text/x-python","patch_set":41,"id":"9d24c483_d6564685","line":285,"in_reply_to":"ab0e70b6_ccf34197","updated":"2026-03-04 00:24:58.000000000","message":"Yeah that\u0027s true. My brain was probably just thinking about how there is no practical reason to convert to another security mode other than to obtain live migration but you are right, this test is not live migrating anything so I can make this sentence not mention that.","commit_id":"345a2b8b8b884179c63f4aaac87fef161f900f7b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3c2f881ffa30288a3bf2bfedb863a6e43dc44d5a","unresolved":true,"context_lines":[{"line_number":336,"context_line":"            # secret owned by the user."},{"line_number":337,"context_line":"            orig_secret_uuid \u003d self.assertInstanceHasSecret(server,"},{"line_number":338,"context_line":"                                                            user_id\u003d\u0027fake\u0027)"},{"line_number":339,"context_line":"            self.assertEqual(secret_uuid, orig_secret_uuid)"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"        # Confirm the resize."},{"line_number":342,"context_line":"        with mock.patch("}],"source_content_type":"text/x-python","patch_set":41,"id":"5dca3c38_04c9303b","line":339,"updated":"2026-02-27 18:50:01.000000000","message":"This would pass even if we did nothing right? Don\u0027t we want/need to assert that it\u0027s now non-ephemeral? Per my question in the other patch, I\u0027m not sure what we\u0027re actually doing to convert in the host case (I\u0027m sure I\u0027m missing it) but I came here looking for some assertion...but I think you\u0027re just asserting that the uuid didn\u0027t change and not that we did the thing we actually claimed, which is change its state in libvirt right?","commit_id":"345a2b8b8b884179c63f4aaac87fef161f900f7b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"16982df8bcb4b109ac1691e952a54b279641249f","unresolved":false,"context_lines":[{"line_number":336,"context_line":"            # secret owned by the user."},{"line_number":337,"context_line":"            orig_secret_uuid \u003d self.assertInstanceHasSecret(server,"},{"line_number":338,"context_line":"                                                            user_id\u003d\u0027fake\u0027)"},{"line_number":339,"context_line":"            self.assertEqual(secret_uuid, orig_secret_uuid)"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"        # Confirm the resize."},{"line_number":342,"context_line":"        with mock.patch("}],"source_content_type":"text/x-python","patch_set":41,"id":"1bf75153_34321c71","line":339,"in_reply_to":"3ab56e8c_c9b8c302","updated":"2026-03-04 00:51:46.000000000","message":"Done","commit_id":"345a2b8b8b884179c63f4aaac87fef161f900f7b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"f4c433cb18f16ab98502a557b24c2e81f5e06d4d","unresolved":true,"context_lines":[{"line_number":336,"context_line":"            # secret owned by the user."},{"line_number":337,"context_line":"            orig_secret_uuid \u003d self.assertInstanceHasSecret(server,"},{"line_number":338,"context_line":"                                                            user_id\u003d\u0027fake\u0027)"},{"line_number":339,"context_line":"            self.assertEqual(secret_uuid, orig_secret_uuid)"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"        # Confirm the resize."},{"line_number":342,"context_line":"        with mock.patch("}],"source_content_type":"text/x-python","patch_set":41,"id":"3ab56e8c_c9b8c302","line":339,"in_reply_to":"5dca3c38_04c9303b","updated":"2026-03-04 00:24:58.000000000","message":"Yes you are right, I checked and we could actually assert about \"ephemeral\" and \"private\" in here, so I will add that in the next PS.","commit_id":"345a2b8b8b884179c63f4aaac87fef161f900f7b"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"02f6d5cc2eb2ffb02fc2ce6aa4df4d15c2e8a6b0","unresolved":true,"context_lines":[{"line_number":1962,"context_line":"            crypto.delete_encryption_secret(use_context, instance.uuid,"},{"line_number":1963,"context_line":"                                            old_vtpm_secret_uuid)"},{"line_number":1964,"context_line":"            instance.system_metadata.pop(\u0027old_vtpm_secret_uuid\u0027)"},{"line_number":1965,"context_line":"        if old_vtpm_secret_uuid:"},{"line_number":1966,"context_line":"            instance.save()"},{"line_number":1967,"context_line":""},{"line_number":1968,"context_line":"    def _cleanup_resize_vtpm("}],"source_content_type":"text/x-python","patch_set":21,"id":"c5c50c3e_6b82d6a6","line":1965,"range":{"start_line":1965,"start_character":11,"end_line":1965,"end_character":31},"updated":"2025-11-19 06:32:36.000000000","message":"Why do we need this extra if statement ? we can move instance.save() in previous if block, as both if statements are same.","commit_id":"751b51ac3dce46f2e4831c3004a21fffd0601b01"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"01e825a12733a9909f3f6e8993d10a953fa02d75","unresolved":false,"context_lines":[{"line_number":1962,"context_line":"            crypto.delete_encryption_secret(use_context, instance.uuid,"},{"line_number":1963,"context_line":"                                            old_vtpm_secret_uuid)"},{"line_number":1964,"context_line":"            instance.system_metadata.pop(\u0027old_vtpm_secret_uuid\u0027)"},{"line_number":1965,"context_line":"        if old_vtpm_secret_uuid:"},{"line_number":1966,"context_line":"            instance.save()"},{"line_number":1967,"context_line":""},{"line_number":1968,"context_line":"    def _cleanup_resize_vtpm("}],"source_content_type":"text/x-python","patch_set":21,"id":"496b0e29_abae23c4","line":1965,"range":{"start_line":1965,"start_character":11,"end_line":1965,"end_character":31},"in_reply_to":"b53fde15_c0649232","updated":"2025-11-22 06:12:18.000000000","message":"Done","commit_id":"751b51ac3dce46f2e4831c3004a21fffd0601b01"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"ff8d12ec882e93658a09cb0d7deba44365755382","unresolved":true,"context_lines":[{"line_number":1962,"context_line":"            crypto.delete_encryption_secret(use_context, instance.uuid,"},{"line_number":1963,"context_line":"                                            old_vtpm_secret_uuid)"},{"line_number":1964,"context_line":"            instance.system_metadata.pop(\u0027old_vtpm_secret_uuid\u0027)"},{"line_number":1965,"context_line":"        if old_vtpm_secret_uuid:"},{"line_number":1966,"context_line":"            instance.save()"},{"line_number":1967,"context_line":""},{"line_number":1968,"context_line":"    def _cleanup_resize_vtpm("}],"source_content_type":"text/x-python","patch_set":21,"id":"b53fde15_c0649232","line":1965,"range":{"start_line":1965,"start_character":11,"end_line":1965,"end_character":31},"in_reply_to":"c5c50c3e_6b82d6a6","updated":"2025-11-19 19:51:46.000000000","message":"Oh, yeah this doesn\u0027t need to be separated. It might have been from an earlier version when it made sense (I hope haha). I will remove it.","commit_id":"751b51ac3dce46f2e4831c3004a21fffd0601b01"}],"nova/vtpm.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3c2f881ffa30288a3bf2bfedb863a6e43dc44d5a","unresolved":true,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"            # Clear the secret UUID in the system metadata so a new secret"},{"line_number":197,"context_line":"            # will be created."},{"line_number":198,"context_line":"            instance.system_metadata.pop(\u0027vtpm_secret_uuid\u0027, None)"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"            # Create a new secret owned by the new request context with the"},{"line_number":201,"context_line":"            # same passphrase. This will set vtpm_secret_uuid in system"}],"source_content_type":"text/x-python","patch_set":41,"id":"78bd9774_d57da842","line":198,"updated":"2026-02-27 18:50:01.000000000","message":"I really hate whenever we have to do this. I wish we had a better way to tag a _migration_ with some things to restore instead of just `old_%(prop)s` in sysmeta, but I digress.","commit_id":"345a2b8b8b884179c63f4aaac87fef161f900f7b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"f4c433cb18f16ab98502a557b24c2e81f5e06d4d","unresolved":true,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"            # Clear the secret UUID in the system metadata so a new secret"},{"line_number":197,"context_line":"            # will be created."},{"line_number":198,"context_line":"            instance.system_metadata.pop(\u0027vtpm_secret_uuid\u0027, None)"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"            # Create a new secret owned by the new request context with the"},{"line_number":201,"context_line":"            # same passphrase. This will set vtpm_secret_uuid in system"}],"source_content_type":"text/x-python","patch_set":41,"id":"ccf64b82_7075dde2","line":198,"in_reply_to":"78bd9774_d57da842","updated":"2026-03-04 00:24:58.000000000","message":"Yeah, agree it\u0027s not lovely. I am open for better ideas, just went for the simple thing to start out.","commit_id":"345a2b8b8b884179c63f4aaac87fef161f900f7b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3c2f881ffa30288a3bf2bfedb863a6e43dc44d5a","unresolved":true,"context_lines":[{"line_number":210,"context_line":"                             nova_context.get_nova_service_user_context())"},{"line_number":211,"context_line":"        elif from_security \u003d\u003d \u0027deployment\u0027:"},{"line_number":212,"context_line":"            swap_vtpm_secret(nova_context.get_nova_service_user_context(),"},{"line_number":213,"context_line":"                             context)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        instance.save()"}],"source_content_type":"text/x-python","patch_set":41,"id":"1ab3058b_c33226a3","line":213,"updated":"2026-02-27 18:50:01.000000000","message":"Er, I must be missing something... we never do anything for user-\u003ehost or host-\u003euser?","commit_id":"345a2b8b8b884179c63f4aaac87fef161f900f7b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"23bc9c8ec58fc400e686dc66e0150413444f7f96","unresolved":false,"context_lines":[{"line_number":210,"context_line":"                             nova_context.get_nova_service_user_context())"},{"line_number":211,"context_line":"        elif from_security \u003d\u003d \u0027deployment\u0027:"},{"line_number":212,"context_line":"            swap_vtpm_secret(nova_context.get_nova_service_user_context(),"},{"line_number":213,"context_line":"                             context)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        instance.save()"}],"source_content_type":"text/x-python","patch_set":41,"id":"9a2afd38_b16547f7","line":213,"in_reply_to":"1ab3058b_c33226a3","updated":"2026-02-27 20:12:53.000000000","message":"Duh, sorry, missed L129","commit_id":"345a2b8b8b884179c63f4aaac87fef161f900f7b"}]}
