)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"68e674f7a4ca07bf98e18f3b5ecd82d66e6d5fa1","unresolved":true,"context_lines":[{"line_number":21,"context_line":"For example, if we will want to clean up unused ephemeral encryption"},{"line_number":22,"context_line":"libvirt secrets during compute host init, we need to be sure we only"},{"line_number":23,"context_line":"delete secrets related to ephemeral encryption and not touch Cinder"},{"line_number":24,"context_line":"volume encryption secrets or vTPM secrets."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Related to blueprint ephemeral-encryption-libvirt"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"adc70201_1855b11f","line":24,"updated":"2024-05-20 10:46:47.000000000","message":"ok, im not sure that is strictly required but im not agaisnt having that cleanup mechanium in case of bugs so +1","commit_id":"46ad304f4f4a27c038bdf5ef8d0ebec6ace40485"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"16fd856ecf507a829615f3c12d561984223f39e6","unresolved":false,"context_lines":[{"line_number":21,"context_line":"For example, if we will want to clean up unused ephemeral encryption"},{"line_number":22,"context_line":"libvirt secrets during compute host init, we need to be sure we only"},{"line_number":23,"context_line":"delete secrets related to ephemeral encryption and not touch Cinder"},{"line_number":24,"context_line":"volume encryption secrets or vTPM secrets."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Related to blueprint ephemeral-encryption-libvirt"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"603155ce_b5c7c6d0","line":24,"in_reply_to":"02d6c76b_b4f66d2b","updated":"2024-05-23 10:58:35.000000000","message":"Acknowledged","commit_id":"46ad304f4f4a27c038bdf5ef8d0ebec6ace40485"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"87447f0c8ab6d1d2556762fdbb5f0824f9282d90","unresolved":true,"context_lines":[{"line_number":21,"context_line":"For example, if we will want to clean up unused ephemeral encryption"},{"line_number":22,"context_line":"libvirt secrets during compute host init, we need to be sure we only"},{"line_number":23,"context_line":"delete secrets related to ephemeral encryption and not touch Cinder"},{"line_number":24,"context_line":"volume encryption secrets or vTPM secrets."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Related to blueprint ephemeral-encryption-libvirt"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"02d6c76b_b4f66d2b","line":24,"in_reply_to":"adc70201_1855b11f","updated":"2024-05-20 16:01:48.000000000","message":"FWIW clean up of secrets in init_host() is a point that came up during review last cycle:\n\nhttps://review.opendev.org/c/openstack/nova/+/870932/32..38/nova/compute/api.py#b2383","commit_id":"46ad304f4f4a27c038bdf5ef8d0ebec6ace40485"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"fc1c72096ac85ea336628f9ad461e9a3c36dd6c0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7364c596_44a6f130","updated":"2024-05-17 23:40:00.000000000","message":"recheck nova-grenade-multinode ssh timeout\n\nhttps://bugs.launchpad.net/cinder/+bug/2066072","commit_id":"46ad304f4f4a27c038bdf5ef8d0ebec6ace40485"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"24d8bf1035af55ed42983ae689d3ef4f287cc456","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"453a18f0_5efcb271","updated":"2024-06-06 17:20:34.000000000","message":"mel just resolved my hit otherwise its the same as when i last reviewed and i was happy with it then so readding +2 and w given dans review","commit_id":"8b652f9b05e9c2bbc13c4fa59495f717435f77ea"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"c5fe349ec373f0592c1224161e8ee309fe1ce643","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"5f300634_ff8af4b6","updated":"2024-06-10 16:41:15.000000000","message":"recheck guest kernel panic\n```\ninfo: initramfs: up at 7.81\n[    9.183955] virtio_blk virtio2: [vda] 2097152 512-byte logical blocks (1.07 GB/1.00 GiB)\n[    9.217302] GPT:Primary header thinks Alt. header is not at the end of the disk.\n[    9.217699] GPT:229375 !\u003d 2097151\n[    9.217905] GPT:Alternate GPT header not at the end of the disk.\n[    9.218209] GPT:229375 !\u003d 2097151\n[    9.218374] GPT: Use GNU Parted to correct GPT errors.\n[    9.913074] virtio_gpu virtio0: [drm] drm_plane_enable_fb_damage_clips() not called\n[   10.017803] random: crng init done\ncurrently loaded modules: 8021q 8139cp 8390 9pnet 9pnet_virtio ahci cec drm drm_kms_helper e1000 e1000e failover fb_sys_fops garp hid hid_generic ip6_udp_tunnel ip_tables isofs libahci libcrc32c llc mii mrp ne2k_pci net_failover nls_ascii nls_iso8859_1 nls_utf8 pcnet32 qemu_fw_cfg rc_core sctp stp syscopyarea sysfillrect sysimgblt udp_tunnel usbhid virtio_blk virtio_dma_buf virtio_gpu virtio_input virtio_net virtio_rng virtio_scsi x_tables \ninfo: initramfs loading root from /dev/vda1\n/sbin/init: can\u0027t load library \u0027libtirpc.so.3\u0027\n[   12.118859] Kernel panic - not syncing: Attempted to kill init! exitcode\u003d0x00001000\n```","commit_id":"8b652f9b05e9c2bbc13c4fa59495f717435f77ea"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"73229365dcfa407ebfc95c8459dbb2d613dd0b72","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b5e83b02_2339a111","updated":"2024-06-08 00:29:54.000000000","message":"recheck previous patch in the series failed to merge","commit_id":"8b652f9b05e9c2bbc13c4fa59495f717435f77ea"}],"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":"68e674f7a4ca07bf98e18f3b5ecd82d66e6d5fa1","unresolved":false,"context_lines":[{"line_number":4177,"context_line":"        self.assertEqual(\u0027sample desc\u0027, obj.description)"},{"line_number":4178,"context_line":"        self.assertEqual(\u0027c7a5fdbd-edaf-9455-926a-d65c16db1809\u0027, obj.uuid)"},{"line_number":4179,"context_line":"        self.assertEqual(\u0027volume\u0027, obj.usage_type)"},{"line_number":4180,"context_line":"        self.assertEqual(\u0027sample_volume\u0027, obj.usage_id)"},{"line_number":4181,"context_line":""},{"line_number":4182,"context_line":"    def test_config_secret_ceph(self):"},{"line_number":4183,"context_line":"        secret \u003d config.LibvirtConfigSecret()"}],"source_content_type":"text/x-python","patch_set":1,"id":"fc967519_7ce83217","line":4180,"updated":"2024-05-20 10:46:47.000000000","message":"+1","commit_id":"46ad304f4f4a27c038bdf5ef8d0ebec6ace40485"}],"nova/virt/libvirt/config.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"68e674f7a4ca07bf98e18f3b5ecd82d66e6d5fa1","unresolved":true,"context_lines":[{"line_number":117,"context_line":"            )"},{"line_number":118,"context_line":"            raise exception.InvalidInput(msg % {\u0027value\u0027: value})"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        return value \u003d\u003d \u0027yes\u0027"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    @classmethod"},{"line_number":123,"context_line":"    def get_yes_no_str(self, value: bool) -\u003e str:"}],"source_content_type":"text/x-python","patch_set":1,"id":"224acacc_14d99cee","line":120,"updated":"2024-05-20 10:46:47.000000000","message":"oh right we already have a convertion function for creating the yes/no value from a bool but not parsing the string and converting back.\n\nthis is not stirctly need as we can use strutils.bool_from_string\n\nhttps://github.com/openstack/oslo.utils/blob/master/oslo_utils/strutils.py#L142\nbut this is ok too.\n\ni would generally prefer \"return strutils.bool_from_string(value)\"\nbut im not agaisnt this either.","commit_id":"46ad304f4f4a27c038bdf5ef8d0ebec6ace40485"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"87447f0c8ab6d1d2556762fdbb5f0824f9282d90","unresolved":true,"context_lines":[{"line_number":117,"context_line":"            )"},{"line_number":118,"context_line":"            raise exception.InvalidInput(msg % {\u0027value\u0027: value})"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        return value \u003d\u003d \u0027yes\u0027"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    @classmethod"},{"line_number":123,"context_line":"    def get_yes_no_str(self, value: bool) -\u003e str:"}],"source_content_type":"text/x-python","patch_set":1,"id":"63bc8d26_b6f3933a","line":120,"in_reply_to":"224acacc_14d99cee","updated":"2024-05-20 16:01:48.000000000","message":"Oh, oops. I\u0027ll change that in the next respin.","commit_id":"46ad304f4f4a27c038bdf5ef8d0ebec6ace40485"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"c58bb7109a711ea928f16dbe7a32d54e0a24f009","unresolved":true,"context_lines":[{"line_number":117,"context_line":"            )"},{"line_number":118,"context_line":"            raise exception.InvalidInput(msg % {\u0027value\u0027: value})"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        return value \u003d\u003d \u0027yes\u0027"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    @classmethod"},{"line_number":123,"context_line":"    def get_yes_no_str(self, value: bool) -\u003e str:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9757623f_159cec47","line":120,"in_reply_to":"63bc8d26_b6f3933a","updated":"2024-05-22 20:17:23.000000000","message":"Looking at this again, I think I\u0027d rather leave it as-is because \u0027yes\u0027 and \u0027no\u0027 are the only valid values here (whereas bool_from_string allows \u00271\u0027, \u0027t\u0027, \u0027true\u0027, \u0027on\u0027, \u0027y\u0027, \u0027yes\u0027), so this would at least detect invalid values if they are encountered in the XML.","commit_id":"46ad304f4f4a27c038bdf5ef8d0ebec6ace40485"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bc6180f53015c5504d9b30af1cfc51c9a374b1d2","unresolved":false,"context_lines":[{"line_number":117,"context_line":"            )"},{"line_number":118,"context_line":"            raise exception.InvalidInput(msg % {\u0027value\u0027: value})"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        return value \u003d\u003d \u0027yes\u0027"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    @classmethod"},{"line_number":123,"context_line":"    def get_yes_no_str(self, value: bool) -\u003e str:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9eae1e5e_843dd338","line":120,"in_reply_to":"9757623f_159cec47","updated":"2024-05-23 10:57:34.000000000","message":"it may be less of an issue for libvirt but the reason i generally prefer\nstrutils.bool_from_string(value) is the kernel change form on/off to yes/no\nfor a sysfs value we were using in the past and i wanted to insulate ourselvs form libvirt ever doing a similar change.\n\nim ok with not updating this but that is why i actully prefer the extra flexiblity of strutils.bool_from_string","commit_id":"46ad304f4f4a27c038bdf5ef8d0ebec6ace40485"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"28b9db50740985febbae307f1eeed054149df069","unresolved":false,"context_lines":[{"line_number":117,"context_line":"            )"},{"line_number":118,"context_line":"            raise exception.InvalidInput(msg % {\u0027value\u0027: value})"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        return value \u003d\u003d \u0027yes\u0027"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    @classmethod"},{"line_number":123,"context_line":"    def get_yes_no_str(self, value: bool) -\u003e str:"}],"source_content_type":"text/x-python","patch_set":1,"id":"eeaaa193_74b4805f","line":120,"in_reply_to":"9eae1e5e_843dd338","updated":"2024-06-04 23:16:20.000000000","message":"I see. OK, I\u0027ll change it to boot_from_string based on the experience with sysfs.","commit_id":"46ad304f4f4a27c038bdf5ef8d0ebec6ace40485"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"68e674f7a4ca07bf98e18f3b5ecd82d66e6d5fa1","unresolved":true,"context_lines":[{"line_number":2892,"context_line":"        # flavor exta_sepc value. bool_from_string internally checks if the"},{"line_number":2893,"context_line":"        # value is already a bool and returns it. As such it\u0027s safe to use"},{"line_number":2894,"context_line":"        # with the image metadata property too, so we call it unconditionally."},{"line_number":2895,"context_line":"        self.state \u003d strutils.bool_from_string(state)"},{"line_number":2896,"context_line":""},{"line_number":2897,"context_line":"    def format_dom(self):"},{"line_number":2898,"context_line":"        root \u003d super(LibvirtConfigGuestFeaturePMU, self).format_dom()"}],"source_content_type":"text/x-python","patch_set":1,"id":"8cb07772_6291f630","line":2895,"updated":"2024-05-20 10:46:47.000000000","message":"like we do here","commit_id":"46ad304f4f4a27c038bdf5ef8d0ebec6ace40485"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5091a1ed04ca92d7291ee7800e2fd0d3eb6dbc51","unresolved":false,"context_lines":[{"line_number":2892,"context_line":"        # flavor exta_sepc value. bool_from_string internally checks if the"},{"line_number":2893,"context_line":"        # value is already a bool and returns it. As such it\u0027s safe to use"},{"line_number":2894,"context_line":"        # with the image metadata property too, so we call it unconditionally."},{"line_number":2895,"context_line":"        self.state \u003d strutils.bool_from_string(state)"},{"line_number":2896,"context_line":""},{"line_number":2897,"context_line":"    def format_dom(self):"},{"line_number":2898,"context_line":"        root \u003d super(LibvirtConfigGuestFeaturePMU, self).format_dom()"}],"source_content_type":"text/x-python","patch_set":1,"id":"384b94b9_9fc945f6","line":2895,"in_reply_to":"8cb07772_6291f630","updated":"2024-06-06 16:20:20.000000000","message":"Done","commit_id":"46ad304f4f4a27c038bdf5ef8d0ebec6ace40485"}]}
