)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"314959565936703a05d24e215f751b53724cf114","unresolved":true,"context_lines":[{"line_number":18,"context_line":"to clearly differentiate between volume encryption and ephemeral disk"},{"line_number":19,"context_line":"encryption."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"[1] https://libvirt.org/formatdomain.html#hard-drives-floppy-disks-cdroms"},{"line_number":22,"context_line":"[2] https://bugzilla.redhat.com/show_bug.cgi?id\u003d1371022#c13"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Related to blueprint ephemeral-encryption-libvirt"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"72a95787_ef2bab75","line":21,"updated":"2024-02-13 06:04:37.000000000","message":"note for others this is one of the few tiems they did not add an example of the encyption element usage but this is the relevent text\n\nencryption\nSince libvirt 3.9.0 , the encryption can be a sub-element of the source element for encrypted storage sources. If present, specifies how the storage source is encrypted See the Storage Encryption page for more information. Note that the \u0027qcow\u0027 format of encryption is broken and thus is no longer supported for use with disk images. ( Since libvirt 4.5.0 )","commit_id":"d5db7faf31f31d9d5ee8bdc9e4efa60a767aac88"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"314959565936703a05d24e215f751b53724cf114","unresolved":true,"context_lines":[{"line_number":19,"context_line":"encryption."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"[1] https://libvirt.org/formatdomain.html#hard-drives-floppy-disks-cdroms"},{"line_number":22,"context_line":"[2] https://bugzilla.redhat.com/show_bug.cgi?id\u003d1371022#c13"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Related to blueprint ephemeral-encryption-libvirt"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"9a375541_0d9f7430","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":59},"updated":"2024-02-13 06:04:37.000000000","message":"i had to log in to see this for some reason which is odd because the bz is not set as private as far as i can see\n\n\n```\nActually I don\u0027t think this works properly. For the image to actually use LUKS the \u003cencryption\u003e element must be a subelement of \u003csource\u003e. You\u0027ve created a non-encrypted image.\n\nAdditionally while testing it I found a bug in the code where we actually wouldn\u0027t format the LUKS image due to a logic bug.\n\nMoving back to ASSIGNED. The fix for creation of the LUKS disk is trivial but I\u0027ll also need to improve documentation.\n```\n\nthe context was \n```\n   \u003cdisk type\u003d\u0027file\u0027 device\u003d\u0027disk\u0027\u003e\n      \u003cdriver name\u003d\u0027qemu\u0027 type\u003d\u0027raw\u0027/\u003e\n      \u003csource file\u003d\u0027/var/lib/libvirt/images/luks-dest\u0027/\u003e\n      \u003ctarget dev\u003d\u0027vda\u0027 bus\u003d\u0027virtio\u0027/\u003e\n      \u003cencryption format\u003d\u0027luks\u0027\u003e\n        \u003csecret type\u003d\u0027passphrase\u0027 usage\u003d\u0027/var/lib/libvirt/images/luks-dest\u0027/\u003e\n      \u003c/encryption\u003e\n    \u003c/disk\u003e\n```\n\nthe corret form is \n```\n   \u003cdisk type\u003d\u0027file\u0027 device\u003d\u0027disk\u0027\u003e\n      \u003cdriver name\u003d\u0027qemu\u0027 type\u003d\u0027raw\u0027/\u003e\n      \u003csource file\u003d\u0027/var/lib/libvirt/images/luks-dest\u0027\u003e\n        \u003cencryption format\u003d\u0027luks\u0027\u003e\n          \u003csecret type\u003d\u0027passphrase\u0027 usage\u003d\u0027/var/lib/libvirt/images/luks-dest\u0027/\u003e\n        \u003c/encryption\u003e\n      \u003c/source\u003e\n      \u003ctarget dev\u003d\u0027vda\u0027 bus\u003d\u0027virtio\u0027/\u003e\n    \u003c/disk\u003e\n```","commit_id":"d5db7faf31f31d9d5ee8bdc9e4efa60a767aac88"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dcce152d98784a9a9fdad9e0016cba3e3f6f68fd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"f6b963bd_679d3a7b","updated":"2024-02-01 09:25:51.000000000","message":"i know there is a rebase comming so im not going to +2 but i dont really see anything that needs adressing so ill review again when the next set are up","commit_id":"a313ccaeecff2f6bf300c07dd57f1081cfd61b65"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"346ca1881e1ae0930b5740839ed4605a4f59014d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"4f83c990_fc1f18ee","updated":"2024-02-06 22:17:13.000000000","message":"recheck https://review.opendev.org/c/openstack/nova/+/908182 has merged","commit_id":"d5db7faf31f31d9d5ee8bdc9e4efa60a767aac88"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"2f9b9bbb32cbe3bc3e0ae9d5725eb53551d943aa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"d15f25b6_aeeaf07c","updated":"2024-02-14 10:40:23.000000000","message":"Good I learn about parametric testing with @ddt.\nJust a cosmetic -1, probably not deserved but some people insist on me to put more -1. :)","commit_id":"28384d1d1c493754686ee5f5501ce86d908709ba"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"8fb1831cbe499bef8f59dba95e42424ee699b0d5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"be4c0543_132a1d65","updated":"2024-03-01 15:46:02.000000000","message":"recheck dep failed in gate","commit_id":"e91aaaf5511d86558d852043a28a4c9b5e2a9bc2"}],"nova/tests/unit/virt/libvirt/test_config.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dcce152d98784a9a9fdad9e0016cba3e3f6f68fd","unresolved":false,"context_lines":[{"line_number":949,"context_line":"        s.type \u003d \"passphrase\""},{"line_number":950,"context_line":"        s.uuid \u003d uuids.secret"},{"line_number":951,"context_line":"        e.secret \u003d s"},{"line_number":952,"context_line":"        setattr(d, encryption, e)"},{"line_number":953,"context_line":""},{"line_number":954,"context_line":"        xml \u003d d.to_xml()"},{"line_number":955,"context_line":"        if encryption \u003d\u003d \u0027volume_encryption\u0027:"}],"source_content_type":"text/x-python","patch_set":7,"id":"1eb22bff_a0366723","line":952,"updated":"2024-02-01 09:25:51.000000000","message":"i was wondering why you were doing setattr for a sec as i was like\n\nits encyption in either case so its the same…\nthe change here is encyption is not a string its a vairbale and your passing in \nvolume_encyption or ephemeral_encyption using ddt\n\nso ya using setattr to set that dynmically makes sense","commit_id":"a313ccaeecff2f6bf300c07dd57f1081cfd61b65"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"2f9b9bbb32cbe3bc3e0ae9d5725eb53551d943aa","unresolved":true,"context_lines":[{"line_number":980,"context_line":"        self.assertXmlEqual(expected_xml, xml)"},{"line_number":981,"context_line":""},{"line_number":982,"context_line":"    def test_config_disk_encryption_parse(self):"},{"line_number":983,"context_line":"        xml \u003d \"\"\""},{"line_number":984,"context_line":"\u003cdisk type\u003d\"file\" device\u003d\"disk\"\u003e"},{"line_number":985,"context_line":"  \u003cdriver name\u003d\"qemu\" type\u003d\"qcow2\" cache\u003d\"none\" io\u003d\"native\"/\u003e"},{"line_number":986,"context_line":"  \u003csource file\u003d\"/tmp/hello.qcow2\"\u003e"}],"source_content_type":"text/x-python","patch_set":11,"id":"162fffb9_0a3aac4f","line":983,"range":{"start_line":983,"start_character":8,"end_line":983,"end_character":17},"updated":"2024-02-14 10:40:23.000000000","message":"Any reason why this xml block is not indented ?","commit_id":"28384d1d1c493754686ee5f5501ce86d908709ba"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"27d5724aaf25def8ecbeee41d1ff5f246fbd0a73","unresolved":true,"context_lines":[{"line_number":980,"context_line":"        self.assertXmlEqual(expected_xml, xml)"},{"line_number":981,"context_line":""},{"line_number":982,"context_line":"    def test_config_disk_encryption_parse(self):"},{"line_number":983,"context_line":"        xml \u003d \"\"\""},{"line_number":984,"context_line":"\u003cdisk type\u003d\"file\" device\u003d\"disk\"\u003e"},{"line_number":985,"context_line":"  \u003cdriver name\u003d\"qemu\" type\u003d\"qcow2\" cache\u003d\"none\" io\u003d\"native\"/\u003e"},{"line_number":986,"context_line":"  \u003csource file\u003d\"/tmp/hello.qcow2\"\u003e"}],"source_content_type":"text/x-python","patch_set":11,"id":"c9f42a2d_6c633610","line":983,"range":{"start_line":983,"start_character":8,"end_line":983,"end_character":17},"in_reply_to":"162fffb9_0a3aac4f","updated":"2024-02-14 17:17:48.000000000","message":"Generally we (or at least I) don\u0027t introduce new code styling changes if I\u0027m making a change to an existing code block. That way it\u0027s easier to see and review what I\u0027ve changed, rather than it appearing as though I changed the entire block.\n\nAs for why someone originally didn\u0027t indent this, I would guess it was for the sake of the printed output (in the event of a test failure, perhaps) because the indentation will be reflected in the output.\n\nFor example:\n```\n$ cat t.py \ns1 \u003d \"\"\"\n\u003cdisk type\u003d\"file\" device\u003d\"disk\"\u003e\n  \u003cdriver name\u003d\"qemu\" type\u003d\"qcow2\" cache\u003d\"none\" io\u003d\"native\"/\u003e\n  \u003csource file\u003d\"/tmp/hello.qcow2\"\u003e\n    \u003cencryption format\u003d\u0027luks\u0027\u003e\n      \u003csecret type\u003d\u0027passphrase\u0027 uuid\u003d\u0027%s\u0027/\u003e\n    \u003c/encryption\u003e\n  \u003c/source\u003e\n  \u003ctarget bus\u003d\"ide\" dev\u003d\"/dev/hda\"/\u003e\n  \u003cserial\u003e%s\u003c/serial\u003e\n  \u003cboot order\u003d\"1\"/\u003e\n\u003c/disk\u003e\"\"\"\n\ns2 \u003d \"\"\"\n    \u003cdisk type\u003d\"file\" device\u003d\"disk\"\u003e\n      \u003cdriver name\u003d\"qemu\" type\u003d\"qcow2\" cache\u003d\"none\" io\u003d\"native\"/\u003e\n      \u003csource file\u003d\"/tmp/hello.qcow2\"\u003e\n        \u003cencryption format\u003d\u0027luks\u0027\u003e\n          \u003csecret type\u003d\u0027passphrase\u0027 uuid\u003d\u0027%s\u0027/\u003e\n        \u003c/encryption\u003e\n      \u003c/source\u003e\n      \u003ctarget bus\u003d\"ide\" dev\u003d\"/dev/hda\"/\u003e\n      \u003cserial\u003e%s\u003c/serial\u003e\n      \u003cboot order\u003d\"1\"/\u003e\n    \u003c/disk\u003e\"\"\"\n\nprint(s1)\nprint (\u0027\\nvs\u0027)\nprint(s2)\n```\n\nOutput:\n```\n$ python3 t.py \n\n\u003cdisk type\u003d\"file\" device\u003d\"disk\"\u003e\n  \u003cdriver name\u003d\"qemu\" type\u003d\"qcow2\" cache\u003d\"none\" io\u003d\"native\"/\u003e\n  \u003csource file\u003d\"/tmp/hello.qcow2\"\u003e\n    \u003cencryption format\u003d\u0027luks\u0027\u003e\n      \u003csecret type\u003d\u0027passphrase\u0027 uuid\u003d\u0027%s\u0027/\u003e\n    \u003c/encryption\u003e\n  \u003c/source\u003e\n  \u003ctarget bus\u003d\"ide\" dev\u003d\"/dev/hda\"/\u003e\n  \u003cserial\u003e%s\u003c/serial\u003e\n  \u003cboot order\u003d\"1\"/\u003e\n\u003c/disk\u003e\n\nvs\n\n    \u003cdisk type\u003d\"file\" device\u003d\"disk\"\u003e\n      \u003cdriver name\u003d\"qemu\" type\u003d\"qcow2\" cache\u003d\"none\" io\u003d\"native\"/\u003e\n      \u003csource file\u003d\"/tmp/hello.qcow2\"\u003e\n        \u003cencryption format\u003d\u0027luks\u0027\u003e\n          \u003csecret type\u003d\u0027passphrase\u0027 uuid\u003d\u0027%s\u0027/\u003e\n        \u003c/encryption\u003e\n      \u003c/source\u003e\n      \u003ctarget bus\u003d\"ide\" dev\u003d\"/dev/hda\"/\u003e\n      \u003cserial\u003e%s\u003c/serial\u003e\n      \u003cboot order\u003d\"1\"/\u003e\n    \u003c/disk\u003e\n\n```","commit_id":"28384d1d1c493754686ee5f5501ce86d908709ba"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ea856f94fd41093b385bcd3d8a331967ebef1e89","unresolved":false,"context_lines":[{"line_number":980,"context_line":"        self.assertXmlEqual(expected_xml, xml)"},{"line_number":981,"context_line":""},{"line_number":982,"context_line":"    def test_config_disk_encryption_parse(self):"},{"line_number":983,"context_line":"        xml \u003d \"\"\""},{"line_number":984,"context_line":"\u003cdisk type\u003d\"file\" device\u003d\"disk\"\u003e"},{"line_number":985,"context_line":"  \u003cdriver name\u003d\"qemu\" type\u003d\"qcow2\" cache\u003d\"none\" io\u003d\"native\"/\u003e"},{"line_number":986,"context_line":"  \u003csource file\u003d\"/tmp/hello.qcow2\"\u003e"}],"source_content_type":"text/x-python","patch_set":11,"id":"6e9420c0_51447b05","line":983,"range":{"start_line":983,"start_character":8,"end_line":983,"end_character":17},"in_reply_to":"2f12e31c_66dd85f0","updated":"2024-02-29 20:20:30.000000000","message":"Done","commit_id":"28384d1d1c493754686ee5f5501ce86d908709ba"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e76bf60d4cd920a812ed4b8b51331148b639fb19","unresolved":true,"context_lines":[{"line_number":980,"context_line":"        self.assertXmlEqual(expected_xml, xml)"},{"line_number":981,"context_line":""},{"line_number":982,"context_line":"    def test_config_disk_encryption_parse(self):"},{"line_number":983,"context_line":"        xml \u003d \"\"\""},{"line_number":984,"context_line":"\u003cdisk type\u003d\"file\" device\u003d\"disk\"\u003e"},{"line_number":985,"context_line":"  \u003cdriver name\u003d\"qemu\" type\u003d\"qcow2\" cache\u003d\"none\" io\u003d\"native\"/\u003e"},{"line_number":986,"context_line":"  \u003csource file\u003d\"/tmp/hello.qcow2\"\u003e"}],"source_content_type":"text/x-python","patch_set":11,"id":"2f12e31c_66dd85f0","line":983,"range":{"start_line":983,"start_character":8,"end_line":983,"end_character":17},"in_reply_to":"c9f42a2d_6c633610","updated":"2024-02-22 09:25:04.000000000","message":"yes we generall prefer to use the current style of not indenting it\n\nor to call textwrap.dedent( on the block if it is indented.\n\nhttps://opendev.org/openstack/nova/src/branch/master/nova/tests/fixtures/libvirt.py#L263-L289\n\nthe extra spaces does matter in some cases depending on how we use it","commit_id":"28384d1d1c493754686ee5f5501ce86d908709ba"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7f35d8387bff079f75d781719969245a2451ae4f","unresolved":true,"context_lines":[{"line_number":962,"context_line":"                  \u003cboot order\u003d\"1\"/\u003e"},{"line_number":963,"context_line":"                  \u003cencryption format\u003d\u0027luks\u0027\u003e"},{"line_number":964,"context_line":"                    \u003csecret type\u003d\u0027passphrase\u0027 uuid\u003d\u0027%s\u0027/\u003e"},{"line_number":965,"context_line":"                  \u003c/encryption\u003e"},{"line_number":966,"context_line":"                \u003c/disk\u003e\"\"\" % (uuids.serial, uuids.secret)"},{"line_number":967,"context_line":"        elif encryption \u003d\u003d \u0027ephemeral_encryption\u0027:"},{"line_number":968,"context_line":"            expected_xml \u003d \"\"\""}],"source_content_type":"text/x-python","patch_set":13,"id":"d33a62f4_cbe4fbaa","line":965,"updated":"2024-02-27 19:40:08.000000000","message":"I was going to ask elsewhere, but I think this answers my question. But just to be sure: we\u0027re putting `\u003cencryption\u003e` underneath `\u003csource\u003e` only for ephemeral and (continuing to) not for volumes right?\n\nI wanted to make sure we don\u0027t need migration code for existing volume XMLs and I think from the generation and parsing code that I\u0027m reading, that we\u0027ll continue to use the old format for volumes without any confusion. Correct?","commit_id":"84a736ad2502731c67eed23cfcca0e905b4b9adc"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ea856f94fd41093b385bcd3d8a331967ebef1e89","unresolved":false,"context_lines":[{"line_number":962,"context_line":"                  \u003cboot order\u003d\"1\"/\u003e"},{"line_number":963,"context_line":"                  \u003cencryption format\u003d\u0027luks\u0027\u003e"},{"line_number":964,"context_line":"                    \u003csecret type\u003d\u0027passphrase\u0027 uuid\u003d\u0027%s\u0027/\u003e"},{"line_number":965,"context_line":"                  \u003c/encryption\u003e"},{"line_number":966,"context_line":"                \u003c/disk\u003e\"\"\" % (uuids.serial, uuids.secret)"},{"line_number":967,"context_line":"        elif encryption \u003d\u003d \u0027ephemeral_encryption\u0027:"},{"line_number":968,"context_line":"            expected_xml \u003d \"\"\""}],"source_content_type":"text/x-python","patch_set":13,"id":"aece8623_17e42db8","line":965,"in_reply_to":"36a80287_03088ca3","updated":"2024-02-29 20:20:30.000000000","message":"Acknowledged","commit_id":"84a736ad2502731c67eed23cfcca0e905b4b9adc"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f21b04446fd698a53f3ea609236ac33acbfa4110","unresolved":true,"context_lines":[{"line_number":962,"context_line":"                  \u003cboot order\u003d\"1\"/\u003e"},{"line_number":963,"context_line":"                  \u003cencryption format\u003d\u0027luks\u0027\u003e"},{"line_number":964,"context_line":"                    \u003csecret type\u003d\u0027passphrase\u0027 uuid\u003d\u0027%s\u0027/\u003e"},{"line_number":965,"context_line":"                  \u003c/encryption\u003e"},{"line_number":966,"context_line":"                \u003c/disk\u003e\"\"\" % (uuids.serial, uuids.secret)"},{"line_number":967,"context_line":"        elif encryption \u003d\u003d \u0027ephemeral_encryption\u0027:"},{"line_number":968,"context_line":"            expected_xml \u003d \"\"\""}],"source_content_type":"text/x-python","patch_set":13,"id":"36a80287_03088ca3","line":965,"in_reply_to":"7d5a315b_fd5edd00","updated":"2024-02-27 20:55:35.000000000","message":"I think the doc says that it\u0027s \"always valid\" under `\u003csource\u003e`. But, based on what I see here I don\u0027t think there\u0027s a strong benefit from having them the same given how the parsing code code works. I imagine (especially at this point) that it\u0027s not worth the migration pain to be pure here and is always something we could do later.","commit_id":"84a736ad2502731c67eed23cfcca0e905b4b9adc"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"79db45699d245af07dfdafb943ab87ec473ad7f7","unresolved":true,"context_lines":[{"line_number":962,"context_line":"                  \u003cboot order\u003d\"1\"/\u003e"},{"line_number":963,"context_line":"                  \u003cencryption format\u003d\u0027luks\u0027\u003e"},{"line_number":964,"context_line":"                    \u003csecret type\u003d\u0027passphrase\u0027 uuid\u003d\u0027%s\u0027/\u003e"},{"line_number":965,"context_line":"                  \u003c/encryption\u003e"},{"line_number":966,"context_line":"                \u003c/disk\u003e\"\"\" % (uuids.serial, uuids.secret)"},{"line_number":967,"context_line":"        elif encryption \u003d\u003d \u0027ephemeral_encryption\u0027:"},{"line_number":968,"context_line":"            expected_xml \u003d \"\"\""}],"source_content_type":"text/x-python","patch_set":13,"id":"7d5a315b_fd5edd00","line":965,"in_reply_to":"d33a62f4_cbe4fbaa","updated":"2024-02-27 20:42:51.000000000","message":"Right, we will use the old/existing format for volumes.\n\nI couldn\u0027t find definitive info or documentation about whether `\u003cencryption\u003e` under `\u003csource\u003e` is valid for the volume encryption stuff. Initially I had done a naive unilateral change from the existing `\u003cencryption\u003e` at-the-same-level as `\u003csource\u003e` (and not as a sub element) for both local disks and volumes but it broke something and made some encrypted volume tempest tests fail when I ran tempest with that code. That means some additional change to the volume related encryption XML handling would be needed and I don\u0027t know enough at present to know what else needs to change and how.\n\nBecause of that I changed it to be targeted only to ephemeral encryption where I know for sure that\u0027s where it needs to be.","commit_id":"84a736ad2502731c67eed23cfcca0e905b4b9adc"}],"nova/virt/libvirt/config.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dcce152d98784a9a9fdad9e0016cba3e3f6f68fd","unresolved":false,"context_lines":[{"line_number":1247,"context_line":"            #   https://libvirt.org/formatdomain.html#hard-drives-floppy-disks-cdroms"},{"line_number":1248,"context_line":"            #   https://bugzilla.redhat.com/show_bug.cgi?id\u003d1371022#c13"},{"line_number":1249,"context_line":"            source.append(self.ephemeral_encryption.format_dom())"},{"line_number":1250,"context_line":"        if source is not None:"},{"line_number":1251,"context_line":"            dev.append(source)"},{"line_number":1252,"context_line":""},{"line_number":1253,"context_line":"        if self.auth_secret_type is not None:"}],"source_content_type":"text/x-python","patch_set":7,"id":"f4753ae7_f9dce2af","line":1250,"updated":"2024-02-01 09:25:51.000000000","message":"i see you need the not None check.\n\nim jsut wondering if we should add assert source is not None and figure out what unit tests are broken and fix them because i dont think its valid to actully not have source set.\n\nperhaps we can do that indepentently of this series as a general clean up.\n\nhttps://libvirt.org/formatdomain.html#hard-drives-floppy-disks-cdroms\nhas no examples without a source element so im pretty sure its a bug if this is ever none in real code and the xml will be rejected when we try to boot a vm","commit_id":"a313ccaeecff2f6bf300c07dd57f1081cfd61b65"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"c3aa23d86356d08d104ce93de087117d620444a7","unresolved":false,"context_lines":[{"line_number":1247,"context_line":"            #   https://libvirt.org/formatdomain.html#hard-drives-floppy-disks-cdroms"},{"line_number":1248,"context_line":"            #   https://bugzilla.redhat.com/show_bug.cgi?id\u003d1371022#c13"},{"line_number":1249,"context_line":"            source.append(self.ephemeral_encryption.format_dom())"},{"line_number":1250,"context_line":"        if source is not None:"},{"line_number":1251,"context_line":"            dev.append(source)"},{"line_number":1252,"context_line":""},{"line_number":1253,"context_line":"        if self.auth_secret_type is not None:"}],"source_content_type":"text/x-python","patch_set":7,"id":"51e3e8f4_ba3be829","line":1250,"in_reply_to":"f4753ae7_f9dce2af","updated":"2024-02-02 06:57:05.000000000","message":"Yeah, I guess I see now why there was duplication to dev.append() for each if block. So you know it\u0027s in scope. I\u0027m going to put it back that way to not complicate things.","commit_id":"a313ccaeecff2f6bf300c07dd57f1081cfd61b65"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"314959565936703a05d24e215f751b53724cf114","unresolved":true,"context_lines":[{"line_number":1244,"context_line":"                source.append(host)"},{"line_number":1245,"context_line":"            dev.append(source)"},{"line_number":1246,"context_line":""},{"line_number":1247,"context_line":"        if self.ephemeral_encryption:"},{"line_number":1248,"context_line":"            # NOTE(melwitt): \u003cencryption\u003e should be a sub element of \u003csource\u003e"},{"line_number":1249,"context_line":"            # in order to ensure the image uses encryption."},{"line_number":1250,"context_line":"            # See the following for more details:"}],"source_content_type":"text/x-python","patch_set":10,"id":"214f835f_2090b2eb","line":1247,"updated":"2024-02-13 06:04:37.000000000","message":"ok ya keeping a refernce to the source element and then adding the encyption args in one place is pretty clean.\n\nthe only thing i dont like is that source may not be in scope if we were to add an else or another branch so it would not hurt to have \n\nassert source is not none\n\nhere for future us but this code is correct as written so +1","commit_id":"d5db7faf31f31d9d5ee8bdc9e4efa60a767aac88"}]}
