)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ff0a2e86c381bce54cb27dc5b2d4e2d9532bb2dd","unresolved":false,"context_lines":[{"line_number":15,"context_line":"required driver."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I47c248649b9d77e8bd7c5350fc84d89342be4623"},{"line_number":18,"context_line":"Closes-Bug: 1845986"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3fa7e38b_54845f0b","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":19},"updated":"2019-11-13 16:48:49.000000000","message":"Hopefully, anyway :)","commit_id":"64f71db2149e5e552b84716eb777a4d64f069a0d"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"c9749db1080e2369e68d2d7465935fd0c87775fa","unresolved":false,"context_lines":[{"line_number":15,"context_line":"required driver."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I47c248649b9d77e8bd7c5350fc84d89342be4623"},{"line_number":18,"context_line":"Closes-Bug: 1845986"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3fa7e38b_6121589e","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":19},"in_reply_to":"3fa7e38b_54845f0b","updated":"2019-11-19 11:56:09.000000000","message":"https://review.opendev.org/#/c/684825/ also claims to fix this bug.  Either one is superseded by the other and should be abandoned, or the commit message of at least one of them is wrong.","commit_id":"64f71db2149e5e552b84716eb777a4d64f069a0d"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"58522ab0e184f2fa8a1f7ed9cbdeb87fa0e5aa83","unresolved":false,"context_lines":[{"line_number":15,"context_line":"required driver."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I47c248649b9d77e8bd7c5350fc84d89342be4623"},{"line_number":18,"context_line":"Closes-Bug: 1845986"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3fa7e38b_425bf784","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":19},"in_reply_to":"3fa7e38b_6121589e","updated":"2019-11-19 18:59:34.000000000","message":"Fixed the other review","commit_id":"64f71db2149e5e552b84716eb777a4d64f069a0d"}],"nova/virt/libvirt/config.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ef01eb1f3ddf68e2065f90e4967786be3e2b13a3","unresolved":false,"context_lines":[{"line_number":1933,"context_line":""},{"line_number":1934,"context_line":"    @property"},{"line_number":1935,"context_line":"    def uses_virtio(self):"},{"line_number":1936,"context_line":"        model_is_virtio \u003d \u0027virtio-scsi\u0027 \u003d\u003d self.model"},{"line_number":1937,"context_line":"        type_is_virtio \u003d \u0027virtio-serial\u0027 \u003d\u003d self.type"},{"line_number":1938,"context_line":"        return model_is_virtio or type_is_virtio"},{"line_number":1939,"context_line":""},{"line_number":1940,"context_line":"    def format_dom(self):"},{"line_number":1941,"context_line":"        controller \u003d super(LibvirtConfigGuestController, self).format_dom()"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_5010964f","line":1938,"range":{"start_line":1936,"start_character":0,"end_line":1938,"end_character":48},"updated":"2019-12-09 16:49:17.000000000","message":"style nit: would have been fine on a single line","commit_id":"99c392f87897b1a9370e7c22fdacbd3e00fa8fdc"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6d99fd393cc6d81f077b536107980cab390f51da","unresolved":false,"context_lines":[{"line_number":1933,"context_line":""},{"line_number":1934,"context_line":"    @property"},{"line_number":1935,"context_line":"    def uses_virtio(self):"},{"line_number":1936,"context_line":"        model_is_virtio \u003d \u0027virtio-scsi\u0027 \u003d\u003d self.model"},{"line_number":1937,"context_line":"        type_is_virtio \u003d \u0027virtio-serial\u0027 \u003d\u003d self.type"},{"line_number":1938,"context_line":"        return model_is_virtio or type_is_virtio"},{"line_number":1939,"context_line":""},{"line_number":1940,"context_line":"    def format_dom(self):"},{"line_number":1941,"context_line":"        controller \u003d super(LibvirtConfigGuestController, self).format_dom()"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_b320f49b","line":1938,"range":{"start_line":1936,"start_character":0,"end_line":1938,"end_character":48},"in_reply_to":"3fa7e38b_5010964f","updated":"2019-12-09 17:40:04.000000000","message":"i have not tested the precdence but you might have \nto write it as \n\nreturn (\u0027virtio-scsi\u0027 \u003d\u003d self.model) or (\u0027virtio-serial\u0027 \u003d\u003d self.type)\n\nand it likely woudl have been over 80 charters  so im fine with this but yes it could have been shortened","commit_id":"99c392f87897b1a9370e7c22fdacbd3e00fa8fdc"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"36f960798c342a55619d904e49220b229e6489b5","unresolved":false,"context_lines":[{"line_number":5134,"context_line":"                          (\"org.qemu.guest_agent.0\", instance.name))"},{"line_number":5135,"context_line":"        guest.add_device(qga)"},{"line_number":5136,"context_line":""},{"line_number":5137,"context_line":"    def _add_virtio_controller(self, guest, instance):"},{"line_number":5138,"context_line":"        virtio_controller \u003d vconfig.LibvirtConfigGuestController()"},{"line_number":5139,"context_line":"        virtio_controller.type \u003d \u0027virtio-serial\u0027"},{"line_number":5140,"context_line":"        virtio_controller.index \u003d 0"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_f5235705","line":5137,"range":{"start_line":5137,"start_character":8,"end_line":5137,"end_character":30},"updated":"2019-11-06 12:14:30.000000000","message":"this is a bad name\nthere are many virto controlers supported by libvirt\n\nthis should be _add_virtio_serial","commit_id":"8d8f26b1e01a69a312bcfff91564718b01379f54"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"bc91f48a939471f7f7fa40b5e32faf39ccd0129b","unresolved":false,"context_lines":[{"line_number":5134,"context_line":"                          (\"org.qemu.guest_agent.0\", instance.name))"},{"line_number":5135,"context_line":"        guest.add_device(qga)"},{"line_number":5136,"context_line":""},{"line_number":5137,"context_line":"    def _add_virtio_controller(self, guest, instance):"},{"line_number":5138,"context_line":"        virtio_controller \u003d vconfig.LibvirtConfigGuestController()"},{"line_number":5139,"context_line":"        virtio_controller.type \u003d \u0027virtio-serial\u0027"},{"line_number":5140,"context_line":"        virtio_controller.index \u003d 0"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_b0bbad0d","line":5137,"range":{"start_line":5137,"start_character":8,"end_line":5137,"end_character":30},"in_reply_to":"3fa7e38b_f5235705","updated":"2019-11-06 15:48:55.000000000","message":"Done","commit_id":"8d8f26b1e01a69a312bcfff91564718b01379f54"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"36f960798c342a55619d904e49220b229e6489b5","unresolved":false,"context_lines":[{"line_number":5137,"context_line":"    def _add_virtio_controller(self, guest, instance):"},{"line_number":5138,"context_line":"        virtio_controller \u003d vconfig.LibvirtConfigGuestController()"},{"line_number":5139,"context_line":"        virtio_controller.type \u003d \u0027virtio-serial\u0027"},{"line_number":5140,"context_line":"        virtio_controller.index \u003d 0"},{"line_number":5141,"context_line":"        guest.add_device(virtio_controller)"},{"line_number":5142,"context_line":""},{"line_number":5143,"context_line":"    def _add_rng_device(self, guest, flavor):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_952c6302","line":5140,"range":{"start_line":5140,"start_character":4,"end_line":5140,"end_character":35},"updated":"2019-11-06 12:14:30.000000000","message":"im not sure we shoudl be hardcoding this.\nyou can ask for multiple serial ports\n\nhttps://github.com/openstack/glance/blob/e45d5e3b9259620914ff3e3c5fa67dd23de1879c/etc/metadefs/compute-libvirt.json#L18\n\nso its not clear to me that the qemu guest agent woudl be the first serial port in all cases. we proably need to extend the guest object to track this index or not set it and have libvirt assign the index","commit_id":"8d8f26b1e01a69a312bcfff91564718b01379f54"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"bc91f48a939471f7f7fa40b5e32faf39ccd0129b","unresolved":false,"context_lines":[{"line_number":5137,"context_line":"    def _add_virtio_controller(self, guest, instance):"},{"line_number":5138,"context_line":"        virtio_controller \u003d vconfig.LibvirtConfigGuestController()"},{"line_number":5139,"context_line":"        virtio_controller.type \u003d \u0027virtio-serial\u0027"},{"line_number":5140,"context_line":"        virtio_controller.index \u003d 0"},{"line_number":5141,"context_line":"        guest.add_device(virtio_controller)"},{"line_number":5142,"context_line":""},{"line_number":5143,"context_line":"    def _add_rng_device(self, guest, flavor):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_10bf21fd","line":5140,"range":{"start_line":5140,"start_character":4,"end_line":5140,"end_character":35},"in_reply_to":"3fa7e38b_952c6302","updated":"2019-11-06 15:48:55.000000000","message":"from what i see, the pairs (type, index) should be unique, not only index. On a test machine i have 6 controllers with index 0, with types sata, pci, virtio-serial, scsi, pci and usb.\n\nI\u0027m ok with not setting it at all though","commit_id":"8d8f26b1e01a69a312bcfff91564718b01379f54"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"36f960798c342a55619d904e49220b229e6489b5","unresolved":false,"context_lines":[{"line_number":5168,"context_line":"                      \"metadata\", instance\u003dinstance)"},{"line_number":5169,"context_line":"            self._add_qga_device(guest, instance)"},{"line_number":5170,"context_line":""},{"line_number":5171,"context_line":"        rng_is_virtio \u003d image_meta.properties.get(\u0027hw_rng_model\u0027) \u003d\u003d \u0027virtio\u0027"},{"line_number":5172,"context_line":"        rng_allowed_str \u003d flavor.extra_specs.get(\u0027hw_rng:allowed\u0027, \u0027\u0027)"},{"line_number":5173,"context_line":"        rng_allowed \u003d strutils.bool_from_string(rng_allowed_str)"},{"line_number":5174,"context_line":"        if rng_is_virtio and rng_allowed:"},{"line_number":5175,"context_line":"            self._add_rng_device(guest, flavor)"},{"line_number":5176,"context_line":""},{"line_number":5177,"context_line":"    def _get_guest_memory_backing_config("},{"line_number":5178,"context_line":"            self, inst_topology, numatune, flavor, image_meta):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_f5683723","line":5175,"range":{"start_line":5171,"start_character":2,"end_line":5175,"end_character":47},"updated":"2019-11-06 12:14:30.000000000","message":"why is this here? this has nothing to do with added the qemu guest agent.","commit_id":"8d8f26b1e01a69a312bcfff91564718b01379f54"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"35adc982a5c43d144d355ba1382e5e750082b291","unresolved":false,"context_lines":[{"line_number":5168,"context_line":"                      \"metadata\", instance\u003dinstance)"},{"line_number":5169,"context_line":"            self._add_qga_device(guest, instance)"},{"line_number":5170,"context_line":""},{"line_number":5171,"context_line":"        rng_is_virtio \u003d image_meta.properties.get(\u0027hw_rng_model\u0027) \u003d\u003d \u0027virtio\u0027"},{"line_number":5172,"context_line":"        rng_allowed_str \u003d flavor.extra_specs.get(\u0027hw_rng:allowed\u0027, \u0027\u0027)"},{"line_number":5173,"context_line":"        rng_allowed \u003d strutils.bool_from_string(rng_allowed_str)"},{"line_number":5174,"context_line":"        if rng_is_virtio and rng_allowed:"},{"line_number":5175,"context_line":"            self._add_rng_device(guest, flavor)"},{"line_number":5176,"context_line":""},{"line_number":5177,"context_line":"    def _get_guest_memory_backing_config("},{"line_number":5178,"context_line":"            self, inst_topology, numatune, flavor, image_meta):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_d9d695f3","line":5175,"range":{"start_line":5171,"start_character":2,"end_line":5175,"end_character":47},"in_reply_to":"3fa7e38b_70e5353e","updated":"2019-11-06 16:04:38.000000000","message":"https://review.opendev.org/693210","commit_id":"8d8f26b1e01a69a312bcfff91564718b01379f54"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"883eb5f84f9dd46b412eac5a89acb3bc390f0f1b","unresolved":false,"context_lines":[{"line_number":5168,"context_line":"                      \"metadata\", instance\u003dinstance)"},{"line_number":5169,"context_line":"            self._add_qga_device(guest, instance)"},{"line_number":5170,"context_line":""},{"line_number":5171,"context_line":"        rng_is_virtio \u003d image_meta.properties.get(\u0027hw_rng_model\u0027) \u003d\u003d \u0027virtio\u0027"},{"line_number":5172,"context_line":"        rng_allowed_str \u003d flavor.extra_specs.get(\u0027hw_rng:allowed\u0027, \u0027\u0027)"},{"line_number":5173,"context_line":"        rng_allowed \u003d strutils.bool_from_string(rng_allowed_str)"},{"line_number":5174,"context_line":"        if rng_is_virtio and rng_allowed:"},{"line_number":5175,"context_line":"            self._add_rng_device(guest, flavor)"},{"line_number":5176,"context_line":""},{"line_number":5177,"context_line":"    def _get_guest_memory_backing_config("},{"line_number":5178,"context_line":"            self, inst_topology, numatune, flavor, image_meta):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_9c756b03","line":5175,"range":{"start_line":5171,"start_character":2,"end_line":5175,"end_character":47},"in_reply_to":"3fa7e38b_d9d695f3","updated":"2019-11-06 17:16:02.000000000","message":"thanks\nleft a few comments in that review but its mostly fine\ni had filed a bug so man change was to add the bug line and add a unit test os that it cant get accidental moved again.\n\nill review the new versions of this patch shortly.","commit_id":"8d8f26b1e01a69a312bcfff91564718b01379f54"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"bc91f48a939471f7f7fa40b5e32faf39ccd0129b","unresolved":false,"context_lines":[{"line_number":5168,"context_line":"                      \"metadata\", instance\u003dinstance)"},{"line_number":5169,"context_line":"            self._add_qga_device(guest, instance)"},{"line_number":5170,"context_line":""},{"line_number":5171,"context_line":"        rng_is_virtio \u003d image_meta.properties.get(\u0027hw_rng_model\u0027) \u003d\u003d \u0027virtio\u0027"},{"line_number":5172,"context_line":"        rng_allowed_str \u003d flavor.extra_specs.get(\u0027hw_rng:allowed\u0027, \u0027\u0027)"},{"line_number":5173,"context_line":"        rng_allowed \u003d strutils.bool_from_string(rng_allowed_str)"},{"line_number":5174,"context_line":"        if rng_is_virtio and rng_allowed:"},{"line_number":5175,"context_line":"            self._add_rng_device(guest, flavor)"},{"line_number":5176,"context_line":""},{"line_number":5177,"context_line":"    def _get_guest_memory_backing_config("},{"line_number":5178,"context_line":"            self, inst_topology, numatune, flavor, image_meta):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_70e5353e","line":5175,"range":{"start_line":5171,"start_character":2,"end_line":5175,"end_character":47},"in_reply_to":"3fa7e38b_f5683723","updated":"2019-11-06 15:48:55.000000000","message":"indeed. It seems that this part sneaked into the method in https://review.opendev.org/#/c/129325/ . Rng device itself was added in I022e322a7c414e9d618e60c2879aee903732581d, and does not seem to be part of qga. I will move it in a separate review","commit_id":"8d8f26b1e01a69a312bcfff91564718b01379f54"}]}
