)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"f2f4f01e7a47af79a29bf9e8dab6d4b66f73d6fb","unresolved":true,"context_lines":[{"line_number":11,"context_line":"  - releasenote"},{"line_number":12,"context_line":"  - more tests"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Blueprint: nova-manage-commands-to-move-between-device-models"},{"line_number":15,"context_line":"Change-Id: I44d41a134a7fab638e2ea88e7ae86d25070e8a43"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"c044c817_e705cd4f","line":14,"range":{"start_line":14,"start_character":11,"end_line":14,"end_character":61},"updated":"2022-02-08 21:39:44.000000000","message":"libvirt-device-bus-model-update","commit_id":"6f494cb5d0bfc278defd8d9719ba8dd1a98f146e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2f742d15d83ed9293693f82968574d0e74ef515d","unresolved":false,"context_lines":[{"line_number":11,"context_line":"  - releasenote"},{"line_number":12,"context_line":"  - more tests"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Blueprint: nova-manage-commands-to-move-between-device-models"},{"line_number":15,"context_line":"Change-Id: I44d41a134a7fab638e2ea88e7ae86d25070e8a43"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7cb9e03f_a7d04f71","line":14,"range":{"start_line":14,"start_character":11,"end_line":14,"end_character":61},"in_reply_to":"c044c817_e705cd4f","updated":"2022-02-17 03:23:31.000000000","message":"Done","commit_id":"6f494cb5d0bfc278defd8d9719ba8dd1a98f146e"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7454d9efc364b218014a2aa09d870e7aad9c7625","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3f7fdc68_4e126df0","updated":"2022-02-17 03:59:49.000000000","message":"+1 but i think the test coverage can be improved.\n\nyou currently dont have any test that emulate osinfo or driver default changes\nor for change influced by defaults setable in the nova.conf like the pointer model.\n\nif you add some coverage for that i think im +2 on this but curerntly the test just assert that\nthe current defaults are persisted which does not ensure they are not update on an agent restrat if the default changes.","commit_id":"e6f29ee09e47bd6e14c8ce017cf1f23f2a05b78e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"69bf05735137d82cedcc9487bb51f26e0a0ba698","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"533fa56a_81cfc682","updated":"2022-02-23 17:22:31.000000000","message":"(also, I\u0027d really like to see type hints but obviously won\u0027t block on those since it\u0027s optional)","commit_id":"89525e85ed724f6d8703a63a2c6471f102c4f989"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9707e5a2a08d30e907c6a53b873cf4b1f873360b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"1c41e201_eeccdddf","updated":"2022-02-23 02:52:15.000000000","message":"I have updated this to honor CONF.pointer_model and preserve it (the lack of a pointer device) in the system_metadata.","commit_id":"89525e85ed724f6d8703a63a2c6471f102c4f989"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"52c9e83b1f2c03fcf5e067a8517060739809ee21","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"95323a40_4dc2ef80","updated":"2022-02-23 13:44:26.000000000","message":"Looks good","commit_id":"89525e85ed724f6d8703a63a2c6471f102c4f989"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"11e8bbdfe60a2339ce4ea1af49c947b550ead061","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"dff308f1_6ffac4d9","updated":"2022-02-23 17:22:08.000000000","message":"Not adding +w in case Sean wants to spin back around to this","commit_id":"89525e85ed724f6d8703a63a2c6471f102c4f989"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6da597aee052b46a4cc9ea5cb6d0c8995b6e621a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"6cc6ad71_54e16de4","updated":"2022-02-24 10:14:15.000000000","message":"Now even better. Thanks!","commit_id":"7ecdfb61a92301fef8c036572367ee6d1ffc3c0d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"2d9f132251a511dfd3c3238a12e56598b7fa0bb4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"840be4c4_eb0a4d1c","updated":"2022-02-24 11:04:42.000000000","message":"Still looks good","commit_id":"7ecdfb61a92301fef8c036572367ee6d1ffc3c0d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"0eae2431e590a65f1315886350c7ade19fda6ba6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"53d65237_c92b4db8","updated":"2022-02-24 06:01:55.000000000","message":"recheck bug 1959677","commit_id":"7ecdfb61a92301fef8c036572367ee6d1ffc3c0d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"bd179031d00054d87683e8a4e7b9b8984abf3e37","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"58e6df69_4c5876e1","updated":"2022-02-24 04:30:41.000000000","message":"recheck paramiko.ssh_exception.NoValidConnectionsError: [Errno None] Unable to connect to port 22 on 172.24.5.238","commit_id":"7ecdfb61a92301fef8c036572367ee6d1ffc3c0d"}],"nova/tests/functional/libvirt/test_device_bus_migration.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7454d9efc364b218014a2aa09d870e7aad9c7625","unresolved":true,"context_lines":[{"line_number":90,"context_line":"        self._assert_stashed_image_properties("},{"line_number":91,"context_line":"            server[\u0027id\u0027], default_image_properties)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def test_non_default_image_property_registration(self):"},{"line_number":94,"context_line":"        \"\"\"Assert that non-default values for various hw image properties"},{"line_number":95,"context_line":"        don\u0027t change over the lifecycle of an instance."},{"line_number":96,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"d87b2d35_3a9373ec","line":93,"updated":"2022-02-17 03:59:49.000000000","message":"this test is really just asserting the normal behavior of setting image properties and is not really related to this feature.\n\nits good coverage to have but this should pass without the other change in this patch since these were allready commit to the db and as such is not actully testing  the new persitnece. more on that below but we should emulate the defaults changing in a seperate test","commit_id":"e6f29ee09e47bd6e14c8ce017cf1f23f2a05b78e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"964b90f42fe9eb56766feb1bfa0044e48365baa0","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        self._assert_stashed_image_properties("},{"line_number":91,"context_line":"            server[\u0027id\u0027], default_image_properties)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def test_non_default_image_property_registration(self):"},{"line_number":94,"context_line":"        \"\"\"Assert that non-default values for various hw image properties"},{"line_number":95,"context_line":"        don\u0027t change over the lifecycle of an instance."},{"line_number":96,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"de1540e9_c1d6b93b","line":93,"in_reply_to":"b86c13e0_96d9a59c","updated":"2022-02-24 11:17:54.000000000","message":"Done","commit_id":"e6f29ee09e47bd6e14c8ce017cf1f23f2a05b78e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"aaab0b9d15914135e90cc1f251030a8467b50ba7","unresolved":true,"context_lines":[{"line_number":90,"context_line":"        self._assert_stashed_image_properties("},{"line_number":91,"context_line":"            server[\u0027id\u0027], default_image_properties)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def test_non_default_image_property_registration(self):"},{"line_number":94,"context_line":"        \"\"\"Assert that non-default values for various hw image properties"},{"line_number":95,"context_line":"        don\u0027t change over the lifecycle of an instance."},{"line_number":96,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"b86c13e0_96d9a59c","line":93,"in_reply_to":"d87b2d35_3a9373ec","updated":"2022-02-17 18:21:31.000000000","message":"That is true, though maybe it is some validation that the new stuff did not break the existing functionality. I think the existing image property unit testing did not look as comprehensive as this.","commit_id":"e6f29ee09e47bd6e14c8ce017cf1f23f2a05b78e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7454d9efc364b218014a2aa09d870e7aad9c7625","unresolved":true,"context_lines":[{"line_number":129,"context_line":"        self._assert_stashed_image_properties("},{"line_number":130,"context_line":"            server[\u0027id\u0027], non_default_image_properties)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        # Assert the defaults persist across a host reboot"},{"line_number":133,"context_line":"        self.restart_compute_service(self.compute)"},{"line_number":134,"context_line":"        self._assert_stashed_image_properties("},{"line_number":135,"context_line":"            server[\u0027id\u0027], non_default_image_properties)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a037abf_85879fd1","line":132,"updated":"2022-02-17 03:59:49.000000000","message":"Assert the non defaults requested by the image persist …","commit_id":"e6f29ee09e47bd6e14c8ce017cf1f23f2a05b78e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6f8c8f402f4bca9f2b904784e424dea5739c2b3d","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        self._assert_stashed_image_properties("},{"line_number":130,"context_line":"            server[\u0027id\u0027], non_default_image_properties)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        # Assert the defaults persist across a host reboot"},{"line_number":133,"context_line":"        self.restart_compute_service(self.compute)"},{"line_number":134,"context_line":"        self._assert_stashed_image_properties("},{"line_number":135,"context_line":"            server[\u0027id\u0027], non_default_image_properties)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f474593_daf9a7bf","line":132,"in_reply_to":"58ec4e94_b3448016","updated":"2022-02-22 01:48:12.000000000","message":"Done","commit_id":"e6f29ee09e47bd6e14c8ce017cf1f23f2a05b78e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"aaab0b9d15914135e90cc1f251030a8467b50ba7","unresolved":true,"context_lines":[{"line_number":129,"context_line":"        self._assert_stashed_image_properties("},{"line_number":130,"context_line":"            server[\u0027id\u0027], non_default_image_properties)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        # Assert the defaults persist across a host reboot"},{"line_number":133,"context_line":"        self.restart_compute_service(self.compute)"},{"line_number":134,"context_line":"        self._assert_stashed_image_properties("},{"line_number":135,"context_line":"            server[\u0027id\u0027], non_default_image_properties)"}],"source_content_type":"text/x-python","patch_set":4,"id":"58ec4e94_b3448016","line":132,"in_reply_to":"7a037abf_85879fd1","updated":"2022-02-17 18:21:31.000000000","message":"Copy paste mess up, oops","commit_id":"e6f29ee09e47bd6e14c8ce017cf1f23f2a05b78e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7454d9efc364b218014a2aa09d870e7aad9c7625","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"65be491d_f8189fb0","line":154,"updated":"2022-02-17 03:59:49.000000000","message":"so some other tests you could do to confirm the persitence works is alter some of the host flags that alter the behavior\n\nan example fo this would be changign the config option for machine_type, force config drive,\n\nthose should be recorded already so i guess not the best example \n\neventually things like rx/tx queue lenght would be good to store but currently those are not setable as image porperties so that is out of scope.\nhttps://docs.openstack.org/nova/latest/configuration/config.html#libvirt.rx_queue_size\n\nhttps://docs.openstack.org/nova/latest/configuration/config.html#DEFAULT.pointer_model is proably the best example i can think of \n\nwe would want to translate that to the hw_input_bus\n\nso you could set it to ps2 create a vm then set it to usb restart the compute service and hard reboot the vm and assert it stays as ps2.\nthat would actully simulate a change in default without chanaging the default\n\nthe only other way to test this would be to mock one fo the driver function and have it return a differnt model, the most realistic example to change cleanly and mimic an actual issue we faced would be osinfo\n\nhttps://github.com/openstack/nova/blob/master/nova/virt/osinfo.py#L139-L147\n\njust mock the return value of those properties.\n\nthis patch also factors out many of the model selection function like the video model ectr so you could just mock does too","commit_id":"e6f29ee09e47bd6e14c8ce017cf1f23f2a05b78e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"aaab0b9d15914135e90cc1f251030a8467b50ba7","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"7e62443f_b03731e8","line":154,"in_reply_to":"65be491d_f8189fb0","updated":"2022-02-17 18:21:31.000000000","message":"Thanks for the suggestion, I will add scenarios you describe.","commit_id":"e6f29ee09e47bd6e14c8ce017cf1f23f2a05b78e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"bdc5df53691f5c8e31a5e862ce7a32b38c52d284","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"f1177b09_d2208f5e","line":154,"in_reply_to":"7e62443f_b03731e8","updated":"2022-02-18 01:07:57.000000000","message":"\u003e https://docs.openstack.org/nova/latest/configuration/config.html#DEFAULT.pointer_model is proably the best example i can think of \n\n\u003e we would want to translate that to the hw_input_bus\n\n\u003e so you could set it to ps2 create a vm then set it to usb restart the compute service and hard reboot the vm and assert it stays as ps2.\n\u003e that would actully simulate a change in default without chanaging the default\n\nOK, I just tried this particular example and it didn\u0027t work -- the default for hw_pointer_model is \u0027usbtablet\u0027 regardless of the CONF.pointer_model setting in this change [1]. So, if I set CONF.pointer_model \u003d \u0027ps2mouse\u0027 then by default the instance is created with pointer_model \u003d \u0027usbtablet\u0027 and hw_input_bus \u003d None:\n\n2022-02-17 20:10:47,319 DEBUG [nova.virt.libvirt.driver] Found default for hw_cdrom_bus of ide\n2022-02-17 20:10:47,319 DEBUG [nova.virt.libvirt.driver] Found default for hw_disk_bus of virtio\n2022-02-17 20:10:47,320 DEBUG [nova.virt.libvirt.driver] Found default for hw_input_bus of None\n2022-02-17 20:10:47,320 DEBUG [nova.virt.libvirt.driver] Found default for hw_pointer_model of usbtablet\n2022-02-17 20:10:47,321 DEBUG [nova.virt.libvirt.driver] Found default for hw_video_model of virtio\n2022-02-17 20:10:47,321 DEBUG [nova.virt.libvirt.driver] Found default for hw_vif_model of virtio\n2022-02-17 20:10:47,357 INFO [nova.compute.manager] Took 0.13 seconds to spawn the instance on the hypervisor.\n\nThe previous/current behavior when CONF.pointer_model !\u003d \u0027usbtablet\u0027 was/is to not add a pointer device on the guest at all [2].\n\nI\u0027m not 100% sure whether that change in behavior is intentional, I don\u0027t see it mentioned in the spec [3]. On one hand it feels like forcing a default hw_pointer_model gives stability, but then at the same time hw_input_bus is None (unstable?).\n\nAny thoughts?\n\n[1] https://review.opendev.org/c/openstack/nova/+/800708/4/nova/virt/libvirt/driver.py#917\n[2] https://github.com/openstack/nova/blob/40d64775061de6613ada079047da146b52158e78/nova/virt/libvirt/driver.py#L6989-L6991\n[3] https://specs.openstack.org/openstack/nova-specs/specs/yoga/approved/nova-manage-commands-to-update-libvirt-device-models.html","commit_id":"e6f29ee09e47bd6e14c8ce017cf1f23f2a05b78e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"964b90f42fe9eb56766feb1bfa0044e48365baa0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"e07a2588_86da2d1d","line":154,"in_reply_to":"afbeaf5c_41c1193e","updated":"2022-02-24 11:17:54.000000000","message":"Ack","commit_id":"e6f29ee09e47bd6e14c8ce017cf1f23f2a05b78e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9707e5a2a08d30e907c6a53b873cf4b1f873360b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"afbeaf5c_41c1193e","line":154,"in_reply_to":"ddbfd1c1_e13f27b2","updated":"2022-02-23 02:52:15.000000000","message":"Good point and I think you are right that it would change an already existing instance with no pointer device into one that has usbtablet pointer and hw_input_bus None. That makes it clearer the problem. Yes I was thinking the same thing to record None in sysmeta to save \"no pointer device\".","commit_id":"e6f29ee09e47bd6e14c8ce017cf1f23f2a05b78e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"680adcb0e6d57a5a847cffc1d6f4b6e8eaae74e9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ddbfd1c1_e13f27b2","line":154,"in_reply_to":"f1177b09_d2208f5e","updated":"2022-02-22 09:21:56.000000000","message":"Hm, It feels unintentional. Does this change also mean that if a guest that has no pointer device (as the CONF.pointer_model !\u003d \u0027usbtablet\u0027) and that guest is restarted after this proposed change then that guest will suddenly get an usb pointer device? If so then I consider that as a bug introduced by the proposed change. Could we explicitly record None in sysmeta to indicate no pointer device?","commit_id":"e6f29ee09e47bd6e14c8ce017cf1f23f2a05b78e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"964b90f42fe9eb56766feb1bfa0044e48365baa0","unresolved":true,"context_lines":[{"line_number":162,"context_line":"            # Assert the defaults persist across a host reboot, guest reboot,"},{"line_number":163,"context_line":"            # and guest migration"},{"line_number":164,"context_line":"            self._assert_stashed_image_properties_persist("},{"line_number":165,"context_line":"                server, default_image_properties)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def test_default_image_property_persists_across_host_flag_changes(self):"},{"line_number":168,"context_line":"        # Set the default to ps2 via host flag"}],"source_content_type":"text/x-python","patch_set":7,"id":"08d28653_6af2fd3c","line":165,"updated":"2022-02-24 11:17:54.000000000","message":"+1","commit_id":"7ecdfb61a92301fef8c036572367ee6d1ffc3c0d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"964b90f42fe9eb56766feb1bfa0044e48365baa0","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        }"},{"line_number":179,"context_line":"        server1 \u003d self._create_server(networks\u003d\u0027none\u0027)"},{"line_number":180,"context_line":"        self._assert_stashed_image_properties("},{"line_number":181,"context_line":"            server1[\u0027id\u0027], default_image_properties1)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        # Assert the defaults persist across a host flag change"},{"line_number":184,"context_line":"        self.flags(pointer_model\u003d\u0027usbtablet\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"77c802e4_d2b4ce35","line":181,"updated":"2022-02-24 11:17:54.000000000","message":"ack so based on the discussion below this is asserting we keep the previous behviaor when using a non usbtablet value","commit_id":"7ecdfb61a92301fef8c036572367ee6d1ffc3c0d"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"12afdee0f873e55919dd743298792f7eaf0d7611","unresolved":true,"context_lines":[{"line_number":26949,"context_line":"    ):"},{"line_number":26950,"context_line":"        instance1 \u003d self._create_instance()"},{"line_number":26951,"context_line":"        instance2 \u003d self._create_instance()"},{"line_number":26952,"context_line":"        mock_get_by_host.return_value \u003d [instance1, instance2]"},{"line_number":26953,"context_line":""},{"line_number":26954,"context_line":""},{"line_number":26955,"context_line":"class LibvirtVolumeUsageTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ee8ebdf_1607cdbe","line":26952,"updated":"2022-02-17 12:12:37.000000000","message":"this feels unfinished","commit_id":"e6f29ee09e47bd6e14c8ce017cf1f23f2a05b78e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"aaab0b9d15914135e90cc1f251030a8467b50ba7","unresolved":true,"context_lines":[{"line_number":26949,"context_line":"    ):"},{"line_number":26950,"context_line":"        instance1 \u003d self._create_instance()"},{"line_number":26951,"context_line":"        instance2 \u003d self._create_instance()"},{"line_number":26952,"context_line":"        mock_get_by_host.return_value \u003d [instance1, instance2]"},{"line_number":26953,"context_line":""},{"line_number":26954,"context_line":""},{"line_number":26955,"context_line":"class LibvirtVolumeUsageTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"d234a787_840491a8","line":26952,"in_reply_to":"3ee8ebdf_1607cdbe","updated":"2022-02-17 18:21:31.000000000","message":"You are right, my bad, I managed to forget to add to this or remove it.","commit_id":"e6f29ee09e47bd6e14c8ce017cf1f23f2a05b78e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6f8c8f402f4bca9f2b904784e424dea5739c2b3d","unresolved":false,"context_lines":[{"line_number":26949,"context_line":"    ):"},{"line_number":26950,"context_line":"        instance1 \u003d self._create_instance()"},{"line_number":26951,"context_line":"        instance2 \u003d self._create_instance()"},{"line_number":26952,"context_line":"        mock_get_by_host.return_value \u003d [instance1, instance2]"},{"line_number":26953,"context_line":""},{"line_number":26954,"context_line":""},{"line_number":26955,"context_line":"class LibvirtVolumeUsageTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"757d3608_a8a83132","line":26952,"in_reply_to":"d234a787_840491a8","updated":"2022-02-22 01:48:12.000000000","message":"Done","commit_id":"e6f29ee09e47bd6e14c8ce017cf1f23f2a05b78e"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"12afdee0f873e55919dd743298792f7eaf0d7611","unresolved":true,"context_lines":[{"line_number":870,"context_line":"        # for hw_{disk,cdrom}_bus to avoid pulling bdms from the db etc."},{"line_number":871,"context_line":"        requires_disk_info \u003d [\u0027hw_disk_bus\u0027, \u0027hw_cdrom_bus\u0027]"},{"line_number":872,"context_line":"        disk_info \u003d None"},{"line_number":873,"context_line":"        if any(set(requires_disk_info) \u0026 set(unregistered_image_props)):"},{"line_number":874,"context_line":"            bdms \u003d objects.BlockDeviceMappingList.get_by_instance_uuid("},{"line_number":875,"context_line":"                context, instance.uuid)"},{"line_number":876,"context_line":"            block_device_info \u003d driver.get_block_device_info(instance, bdms)"}],"source_content_type":"text/x-python","patch_set":4,"id":"953e8aa5_589152f3","line":873,"range":{"start_line":873,"start_character":11,"end_line":873,"end_character":15},"updated":"2022-02-17 12:12:37.000000000","message":"do we really need any() around this? I think this does {a, b} \u0026 {b, c} -\u003e {c} so if the result is not an empty set then the condition is true anyhow","commit_id":"e6f29ee09e47bd6e14c8ce017cf1f23f2a05b78e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"aaab0b9d15914135e90cc1f251030a8467b50ba7","unresolved":true,"context_lines":[{"line_number":870,"context_line":"        # for hw_{disk,cdrom}_bus to avoid pulling bdms from the db etc."},{"line_number":871,"context_line":"        requires_disk_info \u003d [\u0027hw_disk_bus\u0027, \u0027hw_cdrom_bus\u0027]"},{"line_number":872,"context_line":"        disk_info \u003d None"},{"line_number":873,"context_line":"        if any(set(requires_disk_info) \u0026 set(unregistered_image_props)):"},{"line_number":874,"context_line":"            bdms \u003d objects.BlockDeviceMappingList.get_by_instance_uuid("},{"line_number":875,"context_line":"                context, instance.uuid)"},{"line_number":876,"context_line":"            block_device_info \u003d driver.get_block_device_info(instance, bdms)"}],"source_content_type":"text/x-python","patch_set":4,"id":"e2e7e4b0_540d724a","line":873,"range":{"start_line":873,"start_character":11,"end_line":873,"end_character":15},"in_reply_to":"953e8aa5_589152f3","updated":"2022-02-17 18:21:31.000000000","message":"Hm, yeah seems so. I will remove the any().","commit_id":"e6f29ee09e47bd6e14c8ce017cf1f23f2a05b78e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6f8c8f402f4bca9f2b904784e424dea5739c2b3d","unresolved":false,"context_lines":[{"line_number":870,"context_line":"        # for hw_{disk,cdrom}_bus to avoid pulling bdms from the db etc."},{"line_number":871,"context_line":"        requires_disk_info \u003d [\u0027hw_disk_bus\u0027, \u0027hw_cdrom_bus\u0027]"},{"line_number":872,"context_line":"        disk_info \u003d None"},{"line_number":873,"context_line":"        if any(set(requires_disk_info) \u0026 set(unregistered_image_props)):"},{"line_number":874,"context_line":"            bdms \u003d objects.BlockDeviceMappingList.get_by_instance_uuid("},{"line_number":875,"context_line":"                context, instance.uuid)"},{"line_number":876,"context_line":"            block_device_info \u003d driver.get_block_device_info(instance, bdms)"}],"source_content_type":"text/x-python","patch_set":4,"id":"aa8fde06_4ef61530","line":873,"range":{"start_line":873,"start_character":11,"end_line":873,"end_character":15},"in_reply_to":"e2e7e4b0_540d724a","updated":"2022-02-22 01:48:12.000000000","message":"Done","commit_id":"e6f29ee09e47bd6e14c8ce017cf1f23f2a05b78e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"11e8bbdfe60a2339ce4ea1af49c947b550ead061","unresolved":false,"context_lines":[{"line_number":855,"context_line":"        # Find any unregistered image properties against this instance"},{"line_number":856,"context_line":"        unregistered_image_props \u003d ["},{"line_number":857,"context_line":"            p for p in REGISTER_IMAGE_PROPERTY_DEFAULTS"},{"line_number":858,"context_line":"                if f\"image_{p}\" not in instance.system_metadata"},{"line_number":859,"context_line":"        ]"},{"line_number":860,"context_line":""},{"line_number":861,"context_line":"        # Return if there\u0027s nothing left to register for this instance"}],"source_content_type":"text/x-python","patch_set":6,"id":"32d431d1_8649614d","line":858,"range":{"start_line":858,"start_character":12,"end_line":858,"end_character":16},"updated":"2022-02-23 17:22:08.000000000","message":"nit","commit_id":"89525e85ed724f6d8703a63a2c6471f102c4f989"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"11e8bbdfe60a2339ce4ea1af49c947b550ead061","unresolved":true,"context_lines":[{"line_number":6065,"context_line":"        # for simpler testing."},{"line_number":6066,"context_line":"        return video"},{"line_number":6067,"context_line":""},{"line_number":6068,"context_line":"    def _get_video_type(self, image_meta):"},{"line_number":6069,"context_line":"        # NOTE(ldbragst): The following logic returns the video type"},{"line_number":6070,"context_line":"        # depending on supported defaults given the architecture,"},{"line_number":6071,"context_line":"        # virtualization type, and features. The video type can"}],"source_content_type":"text/x-python","patch_set":6,"id":"74f5fc0a_741979cc","line":6068,"updated":"2022-02-23 17:22:08.000000000","message":"It would be nice to add type hints for all of `these","commit_id":"89525e85ed724f6d8703a63a2c6471f102c4f989"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"da5e719b52c26c56eae69a9676cf9cdca5a9fa9c","unresolved":false,"context_lines":[{"line_number":6065,"context_line":"        # for simpler testing."},{"line_number":6066,"context_line":"        return video"},{"line_number":6067,"context_line":""},{"line_number":6068,"context_line":"    def _get_video_type(self, image_meta):"},{"line_number":6069,"context_line":"        # NOTE(ldbragst): The following logic returns the video type"},{"line_number":6070,"context_line":"        # depending on supported defaults given the architecture,"},{"line_number":6071,"context_line":"        # virtualization type, and features. The video type can"}],"source_content_type":"text/x-python","patch_set":6,"id":"05df3cc8_75d9da60","line":6068,"in_reply_to":"74f5fc0a_741979cc","updated":"2022-02-24 01:02:41.000000000","message":"Done","commit_id":"89525e85ed724f6d8703a63a2c6471f102c4f989"}]}
