)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"f931efc54acf811a240bcd9a0dd3ccb5adbb9cbb","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Sofia Enriquez \u003clsofia.enriquez@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-01-19 14:03:50 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement is_luks_inside_qcow2 funtion"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Since I896f70d204ad103e968ab242ba9045ca984827c4 Cinder supports"},{"line_number":10,"context_line":"NFS encryption. However, attaching or booting from an NFS"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"6ef5b7ca_31f0e1a0","line":7,"range":{"start_line":7,"start_character":31,"end_line":7,"end_character":38},"updated":"2023-03-30 20:55:38.000000000","message":"function","commit_id":"52c084fee9e4beea2cf5ac12e6c9f2d93c0f68d5"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"21161c8bb98ad1719deae417158a73b94d4e91f5","unresolved":true,"context_lines":[{"line_number":20,"context_line":"the formatting is skipped."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Co-Author-By: Eric Harney \u003ceharney@redhat.com\u003e"},{"line_number":23,"context_line":"Closes-Bug: #1987311"},{"line_number":24,"context_line":"Change-Id: Ia9bc5fab596dadae33f6f208fedd9170d134092b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9cc74a9b_34881063","line":23,"updated":"2023-03-23 14:31:55.000000000","message":"im not sure this should be considerd a bug fix.\n\nthis is really a feature.","commit_id":"52c084fee9e4beea2cf5ac12e6c9f2d93c0f68d5"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"9966e09c98ebf6072f4552c37a64eae012c94557","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"790e9142_af493353","updated":"2022-08-31 15:40:46.000000000","message":"Add Co-Author-By: Eric Harney \u003ceharney@redhat.com\u003e","commit_id":"6633c75e0caf26fba358539946ec3ebbd4f69e8c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7d7c0bfae114ce2a22045ebbd40e93e509fc08aa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"4bddaffe_7424495e","updated":"2022-08-27 00:21:18.000000000","message":"If you would prefer that I write the method I suggested inline and rebase this patch on top of it, please let me know.","commit_id":"6633c75e0caf26fba358539946ec3ebbd4f69e8c"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"0a6a82721be254f0a312a24562db9a5fe901db05","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"10543a5c_46167fdc","in_reply_to":"4bddaffe_7424495e","updated":"2022-08-29 19:00:56.000000000","message":"Hello melwitt, \nwould you mind helping me writing the method?\nThank you in advance\nSofia","commit_id":"6633c75e0caf26fba358539946ec3ebbd4f69e8c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"0ff7d0ac71d01bb9aaac64fbc69ed0d0e81a1f74","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"878ae8cd_cf723d05","updated":"2022-09-01 22:38:08.000000000","message":"We will want to have test coverage for this change to assert that the volume is not formatted for a NFS volume.\n\nWould also like to have a code comment explaining why (because NFS uses LUKS inside qcow2 instead of raw LUKS) we will exclude NFS volume.","commit_id":"1dcf5ab1a49ff6565c21324701f18e2ffe4cd28b"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"bc1e25cbe954717eb08d6ac04c920b2c153f465c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"77528495_4d97acc7","in_reply_to":"878ae8cd_cf723d05","updated":"2023-01-17 20:07:16.000000000","message":"NFS uses LUKS inside qcow2 in order to create snapshots","commit_id":"1dcf5ab1a49ff6565c21324701f18e2ffe4cd28b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"f931efc54acf811a240bcd9a0dd3ccb5adbb9cbb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"3c16a316_a4d6307f","updated":"2023-03-30 20:55:38.000000000","message":"Could we add/enable a tempest test for encrypted NFS volume attach to help catch regressions? I know there\u0027s already tests for attaching encrypted volumes but I couldn\u0027t find how/why they don\u0027t fail for NFS currently or if they don\u0027t run.","commit_id":"52c084fee9e4beea2cf5ac12e6c9f2d93c0f68d5"}],"nova/tests/unit/virt/libvirt/test_utils.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"f931efc54acf811a240bcd9a0dd3ccb5adbb9cbb","unresolved":true,"context_lines":[{"line_number":113,"context_line":"            \"luks+qcow2://foo/bar\"))"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    @mock.patch(\u0027nova.virt.images.privileged_qemu_img_info\u0027)"},{"line_number":116,"context_line":"    def test_is_luks_inside_qcow2_unecrypted_image(self, qemu_img_info):"},{"line_number":117,"context_line":"        qemu_img_info.return_value \u003d mock.Mock(file_format\u003d\"qcow2\")"},{"line_number":118,"context_line":"        self.assertFalse(libvirt_utils.is_luks_inside_qcow2("},{"line_number":119,"context_line":"            \"qcow2://foo/bar\"))"}],"source_content_type":"text/x-python","patch_set":5,"id":"73d74bee_2e226421","line":116,"range":{"start_line":116,"start_character":34,"end_line":116,"end_character":44},"updated":"2023-03-30 20:55:38.000000000","message":"unencrypted","commit_id":"52c084fee9e4beea2cf5ac12e6c9f2d93c0f68d5"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"065977698dade39290f90adc22d88d92e03cbdcd","unresolved":true,"context_lines":[{"line_number":2060,"context_line":"            protocol \u003d connection_info.get(\u0027driver_volume_type\u0027)"},{"line_number":2061,"context_line":"            if device_path and protocol !\u003d \u0027nfs\u0027:"},{"line_number":2062,"context_line":"                root_helper \u003d utils.get_root_helper()"},{"line_number":2063,"context_line":"                if not luks_encryptor.is_luks(root_helper, device_path):"},{"line_number":2064,"context_line":"                    encryptor \u003d self._get_volume_encryptor(connection_info,"},{"line_number":2065,"context_line":"                                                           encryption)"},{"line_number":2066,"context_line":"                    encryptor._format_volume(passphrase, **encryption)"}],"source_content_type":"text/x-python","patch_set":1,"id":"939d3f96_e3907ba0","line":2063,"range":{"start_line":2063,"start_character":23,"end_line":2063,"end_character":45},"updated":"2022-08-22 18:30:22.000000000","message":"There\u0027s some subtlety here not mentioned in the commit message -- is_luks() returns false for the NFS case, because NFS is using LUKS inside of qcow2 and not regular LUKS.\n\nThis means that this detection isn\u0027t the right check in that case (and neither is the _format_volume() call below).","commit_id":"6633c75e0caf26fba358539946ec3ebbd4f69e8c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"fa88c58f257035b9a847f55218741618a3d684ae","unresolved":true,"context_lines":[{"line_number":2060,"context_line":"            protocol \u003d connection_info.get(\u0027driver_volume_type\u0027)"},{"line_number":2061,"context_line":"            if device_path and protocol !\u003d \u0027nfs\u0027:"},{"line_number":2062,"context_line":"                root_helper \u003d utils.get_root_helper()"},{"line_number":2063,"context_line":"                if not luks_encryptor.is_luks(root_helper, device_path):"},{"line_number":2064,"context_line":"                    encryptor \u003d self._get_volume_encryptor(connection_info,"},{"line_number":2065,"context_line":"                                                           encryption)"},{"line_number":2066,"context_line":"                    encryptor._format_volume(passphrase, **encryption)"}],"source_content_type":"text/x-python","patch_set":1,"id":"4e638bbe_3ed40538","line":2063,"range":{"start_line":2063,"start_character":23,"end_line":2063,"end_character":45},"in_reply_to":"0b543865_8eb780da","updated":"2022-08-31 17:50:07.000000000","message":"Oh, I had thought encrypted NFS would always return is_luks_inside_qcow2 \u003d True.\n\nIf not, then I guess there is no way around other than checking the protocol.\n\nSomething I want to make sure I understand, if the NFS volume is supposed to be encrypted but does not identify as luks inside qcow2, that means it does not need to be formatted in any way and it will work fine?\n\nAre there any other protocols that should be handled the same way that we should add to the check? Would also be nice to include a code comment explaining why not NFS to help ppl reading the code later on.","commit_id":"6633c75e0caf26fba358539946ec3ebbd4f69e8c"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"d21eaea5cb6933c135ae303063ee7f3b635371d6","unresolved":false,"context_lines":[{"line_number":2060,"context_line":"            protocol \u003d connection_info.get(\u0027driver_volume_type\u0027)"},{"line_number":2061,"context_line":"            if device_path and protocol !\u003d \u0027nfs\u0027:"},{"line_number":2062,"context_line":"                root_helper \u003d utils.get_root_helper()"},{"line_number":2063,"context_line":"                if not luks_encryptor.is_luks(root_helper, device_path):"},{"line_number":2064,"context_line":"                    encryptor \u003d self._get_volume_encryptor(connection_info,"},{"line_number":2065,"context_line":"                                                           encryption)"},{"line_number":2066,"context_line":"                    encryptor._format_volume(passphrase, **encryption)"}],"source_content_type":"text/x-python","patch_set":1,"id":"b5823d1d_72ccbf69","line":2063,"range":{"start_line":2063,"start_character":23,"end_line":2063,"end_character":45},"in_reply_to":"1faa915a_38450c0b","updated":"2023-01-20 11:31:33.000000000","message":"Done","commit_id":"6633c75e0caf26fba358539946ec3ebbd4f69e8c"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"bc1e25cbe954717eb08d6ac04c920b2c153f465c","unresolved":true,"context_lines":[{"line_number":2060,"context_line":"            protocol \u003d connection_info.get(\u0027driver_volume_type\u0027)"},{"line_number":2061,"context_line":"            if device_path and protocol !\u003d \u0027nfs\u0027:"},{"line_number":2062,"context_line":"                root_helper \u003d utils.get_root_helper()"},{"line_number":2063,"context_line":"                if not luks_encryptor.is_luks(root_helper, device_path):"},{"line_number":2064,"context_line":"                    encryptor \u003d self._get_volume_encryptor(connection_info,"},{"line_number":2065,"context_line":"                                                           encryption)"},{"line_number":2066,"context_line":"                    encryptor._format_volume(passphrase, **encryption)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1faa915a_38450c0b","line":2063,"range":{"start_line":2063,"start_character":23,"end_line":2063,"end_character":45},"in_reply_to":"4dfa86f7_ccc89630","updated":"2023-01-17 20:07:16.000000000","message":"\u003e Something I want to make sure I understand, if the NFS volume is supposed to be encrypted but does not identify as luks inside qcow2, that means it does not need to be formatted in any way and it will work fine?\n\nSorry if I wasn\u0027t clear enough in the commit message. NFS volume is supposed to be encrypted but does identify as luks inside qcow2. Cinder already formats it. \n\n\u003e Are there any other protocols that should be handled the same way that we should add to the check? Would also be nice to include a code comment explaining why not NFS to help ppl reading the code later on.\n\nThere are no qcow2 block devices so far, but in the future there may be others, but so far only NFS.","commit_id":"6633c75e0caf26fba358539946ec3ebbd4f69e8c"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"0f42ecfdf48dcdf3774708b20607becbd0ddf172","unresolved":true,"context_lines":[{"line_number":2060,"context_line":"            protocol \u003d connection_info.get(\u0027driver_volume_type\u0027)"},{"line_number":2061,"context_line":"            if device_path and protocol !\u003d \u0027nfs\u0027:"},{"line_number":2062,"context_line":"                root_helper \u003d utils.get_root_helper()"},{"line_number":2063,"context_line":"                if not luks_encryptor.is_luks(root_helper, device_path):"},{"line_number":2064,"context_line":"                    encryptor \u003d self._get_volume_encryptor(connection_info,"},{"line_number":2065,"context_line":"                                                           encryption)"},{"line_number":2066,"context_line":"                    encryptor._format_volume(passphrase, **encryption)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5c55473b_a6f24180","line":2063,"range":{"start_line":2063,"start_character":23,"end_line":2063,"end_character":45},"in_reply_to":"4e638bbe_3ed40538","updated":"2022-09-01 21:26:16.000000000","message":"As far as I understand NFS will be the only case. We are still looking for the corner cases. However, adding is_luks_inside_qcow2  looks like the right approach to me. ","commit_id":"6633c75e0caf26fba358539946ec3ebbd4f69e8c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"0ff7d0ac71d01bb9aaac64fbc69ed0d0e81a1f74","unresolved":true,"context_lines":[{"line_number":2060,"context_line":"            protocol \u003d connection_info.get(\u0027driver_volume_type\u0027)"},{"line_number":2061,"context_line":"            if device_path and protocol !\u003d \u0027nfs\u0027:"},{"line_number":2062,"context_line":"                root_helper \u003d utils.get_root_helper()"},{"line_number":2063,"context_line":"                if not luks_encryptor.is_luks(root_helper, device_path):"},{"line_number":2064,"context_line":"                    encryptor \u003d self._get_volume_encryptor(connection_info,"},{"line_number":2065,"context_line":"                                                           encryption)"},{"line_number":2066,"context_line":"                    encryptor._format_volume(passphrase, **encryption)"}],"source_content_type":"text/x-python","patch_set":1,"id":"4dfa86f7_ccc89630","line":2063,"range":{"start_line":2063,"start_character":23,"end_line":2063,"end_character":45},"in_reply_to":"5c55473b_a6f24180","updated":"2022-09-01 22:38:08.000000000","message":"\u003e As far as I understand NFS will be the only case. We are still looking for the corner cases. However, adding is_luks_inside_qcow2  looks like the right approach to me. \n\nOK, cool.\n\nAdding is_luks_inside_qcow2 unfortunately will not work for this scenario where we are deciding whether to format the volume in this manner, because the NFS volume apparently will or can also be missing encryption headers when we get  here.","commit_id":"6633c75e0caf26fba358539946ec3ebbd4f69e8c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7d7c0bfae114ce2a22045ebbd40e93e509fc08aa","unresolved":true,"context_lines":[{"line_number":2060,"context_line":"            protocol \u003d connection_info.get(\u0027driver_volume_type\u0027)"},{"line_number":2061,"context_line":"            if device_path and protocol !\u003d \u0027nfs\u0027:"},{"line_number":2062,"context_line":"                root_helper \u003d utils.get_root_helper()"},{"line_number":2063,"context_line":"                if not luks_encryptor.is_luks(root_helper, device_path):"},{"line_number":2064,"context_line":"                    encryptor \u003d self._get_volume_encryptor(connection_info,"},{"line_number":2065,"context_line":"                                                           encryption)"},{"line_number":2066,"context_line":"                    encryptor._format_volume(passphrase, **encryption)"}],"source_content_type":"text/x-python","patch_set":1,"id":"f93efa53_77014ff3","line":2063,"range":{"start_line":2063,"start_character":23,"end_line":2063,"end_character":45},"in_reply_to":"939d3f96_e3907ba0","updated":"2022-08-27 00:21:18.000000000","message":"Hm, I wonder if it might be better if we added a method into nova/virt/libvirt/utils.py that can check \"is luks\" properly for luks-inside-qcow2 (btw, this is going to be the default format for nova ephemeral disk encryption) instead of making this protocol specific. I think we\u0027ll want to be able to detect luks-inside-qcow2 in general.\n\nI was thinking something along the lines of, for example:\n\n from os_brick.encryptors import luks as luks_encryptor\n\n from nova import utils\n from nova.virt import images\n\n def is_luks(path):\n\n     def is_luks_inside_qcow2(path):\n         img_info \u003d images.privileged_qemu_img_info(path)\n         if img_info.format_specific:\n             return (\n                 img_info.file_format \u003d\u003d \u0027qcow2\u0027 and\n                 img_info.format_specific.get(\u0027data\u0027, {})\n                 .get(\u0027encrypt\u0027, {})\n                 .get(\u0027format\u0027, {}) \u003d\u003d \u0027luks\u0027\n             )\n         return False\n\n     root_helper \u003d utils.get_root_helper()\n     return (\n         luks_encryptor.is_luks(root_helper, path) or\n         is_luks_inside_qcow2(path)\n     )\n\nand then call that here:\n\n if not libvirt_utils.is_luks(path):","commit_id":"6633c75e0caf26fba358539946ec3ebbd4f69e8c"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"5109650eac88a52093e0ab4af527610387ad1837","unresolved":true,"context_lines":[{"line_number":2060,"context_line":"            protocol \u003d connection_info.get(\u0027driver_volume_type\u0027)"},{"line_number":2061,"context_line":"            if device_path and protocol !\u003d \u0027nfs\u0027:"},{"line_number":2062,"context_line":"                root_helper \u003d utils.get_root_helper()"},{"line_number":2063,"context_line":"                if not luks_encryptor.is_luks(root_helper, device_path):"},{"line_number":2064,"context_line":"                    encryptor \u003d self._get_volume_encryptor(connection_info,"},{"line_number":2065,"context_line":"                                                           encryption)"},{"line_number":2066,"context_line":"                    encryptor._format_volume(passphrase, **encryption)"}],"source_content_type":"text/x-python","patch_set":1,"id":"0b543865_8eb780da","line":2063,"range":{"start_line":2063,"start_character":23,"end_line":2063,"end_character":45},"in_reply_to":"eb7b2d77_2ad05a12","updated":"2022-08-31 15:21:20.000000000","message":"I\u0027m unsure about a corner case here -- if is_luks and is_luks_inside_qcow2 both return False, presumably it isn\u0027t correct to call _format_volume() at line 2066 for the NFS case?  (Which would create a LUKS-formatted file instead of LUKS inside qcow2.)","commit_id":"6633c75e0caf26fba358539946ec3ebbd4f69e8c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2f76956890611512764573a8e12c7d922228a44e","unresolved":true,"context_lines":[{"line_number":2060,"context_line":"            protocol \u003d connection_info.get(\u0027driver_volume_type\u0027)"},{"line_number":2061,"context_line":"            if device_path and protocol !\u003d \u0027nfs\u0027:"},{"line_number":2062,"context_line":"                root_helper \u003d utils.get_root_helper()"},{"line_number":2063,"context_line":"                if not luks_encryptor.is_luks(root_helper, device_path):"},{"line_number":2064,"context_line":"                    encryptor \u003d self._get_volume_encryptor(connection_info,"},{"line_number":2065,"context_line":"                                                           encryption)"},{"line_number":2066,"context_line":"                    encryptor._format_volume(passphrase, **encryption)"}],"source_content_type":"text/x-python","patch_set":1,"id":"eb7b2d77_2ad05a12","line":2063,"range":{"start_line":2063,"start_character":23,"end_line":2063,"end_character":45},"in_reply_to":"f93efa53_77014ff3","updated":"2022-08-27 00:27:18.000000000","message":"Another option, if we wanted to keep os-brick encryptor references in driver.py only, the new utils method could be just is_luks_inside_qcow2() and then here would be:\n\n is_luks \u003d (\n     luks_encryptor.is_luks(root_helper, device_path) or\n     libvirt_utils.is_luks_inside_qcow2(device_path)\n )\n if not is_luks:","commit_id":"6633c75e0caf26fba358539946ec3ebbd4f69e8c"}],"nova/virt/libvirt/utils.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"f931efc54acf811a240bcd9a0dd3ccb5adbb9cbb","unresolved":true,"context_lines":[{"line_number":550,"context_line":"    :returns: True if the image is a qcow2 file with luks inside, False"},{"line_number":551,"context_line":"              otherwise"},{"line_number":552,"context_line":"    \"\"\""},{"line_number":553,"context_line":"    img_info \u003d images.privileged_qemu_img_info(image_path)"},{"line_number":554,"context_line":"    if img_info.format_specific:"},{"line_number":555,"context_line":"        return ("},{"line_number":556,"context_line":"            img_info.file_format \u003d\u003d \u0027qcow2\u0027 and"}],"source_content_type":"text/x-python","patch_set":5,"id":"2702e89f_10a58c75","line":553,"range":{"start_line":553,"start_character":22,"end_line":553,"end_character":33},"updated":"2023-03-30 20:55:38.000000000","message":"Are we sure we need root to get the image info? Or could we use normal images.qemu_img_info() here?","commit_id":"52c084fee9e4beea2cf5ac12e6c9f2d93c0f68d5"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"782af4e9a92a19d98cf6a4060c52e6d7f81e5308","unresolved":true,"context_lines":[{"line_number":550,"context_line":"    :returns: True if the image is a qcow2 file with luks inside, False"},{"line_number":551,"context_line":"              otherwise"},{"line_number":552,"context_line":"    \"\"\""},{"line_number":553,"context_line":"    img_info \u003d images.privileged_qemu_img_info(image_path)"},{"line_number":554,"context_line":"    if img_info.format_specific:"},{"line_number":555,"context_line":"        return ("},{"line_number":556,"context_line":"            img_info.file_format \u003d\u003d \u0027qcow2\u0027 and"}],"source_content_type":"text/x-python","patch_set":5,"id":"0f73ebad_10eb236e","line":553,"range":{"start_line":553,"start_character":22,"end_line":553,"end_character":33},"in_reply_to":"2702e89f_10a58c75","updated":"2023-03-31 09:39:13.000000000","message":"we shoudl not need elevated privladge in general i wonder if the file is not owned by nova adn that is why this is being used.\n\ni assume its owned by the user the cinder volume driver is running as.","commit_id":"52c084fee9e4beea2cf5ac12e6c9f2d93c0f68d5"}],"releasenotes/notes/bug-1987311-d4e00a5962f5fa2c.yaml":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"f931efc54acf811a240bcd9a0dd3ccb5adbb9cbb","unresolved":true,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    `Bug #1987311 \u003chttps://bugs.launchpad.net/nova/+bug/1987311\u003e`_: Fixed"},{"line_number":5,"context_line":"    attach LUKS inside qcow2 volumes to intances."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"b94eafda_898effcb","line":5,"range":{"start_line":5,"start_character":40,"end_line":5,"end_character":48},"updated":"2023-03-30 20:55:38.000000000","message":"instances","commit_id":"52c084fee9e4beea2cf5ac12e6c9f2d93c0f68d5"}]}
