)]}'
{"sushy_tools/emulator/resources/systems/libvirtdriver.py":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"12040481f14947fa63eabdce29a03e2a2fa2afb4","unresolved":false,"context_lines":[{"line_number":695,"context_line":""},{"line_number":696,"context_line":"        except KeyError:"},{"line_number":697,"context_line":"            raise error.FishyError("},{"line_number":698,"context_line":"                \u0027Unknown device %s at %s\u0027 % (device, identity))"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":"        domain_tree \u003d ET.fromstring(domain.XMLDesc())"},{"line_number":701,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"bfb3d3c7_f110b350","line":698,"updated":"2019-05-28 09:50:59.000000000","message":"nit: no need to split the line","commit_id":"90c435c868f889aa96828ca5eaf8f87d9593ac68"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"11e6c0e376b244bc01d903414fdba564eb852d9f","unresolved":false,"context_lines":[{"line_number":695,"context_line":""},{"line_number":696,"context_line":"        except KeyError:"},{"line_number":697,"context_line":"            raise error.FishyError("},{"line_number":698,"context_line":"                \u0027Unknown device %s at %s\u0027 % (device, identity))"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":"        domain_tree \u003d ET.fromstring(domain.XMLDesc())"},{"line_number":701,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9fb8cfa7_8f3b029a","line":698,"in_reply_to":"9fb8cfa7_2d7a2b23","updated":"2019-07-02 09:47:26.000000000","message":"no, that\u0027s my fault, that\u0027s what happens when you trust your IDE too much :/","commit_id":"90c435c868f889aa96828ca5eaf8f87d9593ac68"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"d5576441cc10fe7762b7bbd1b9bb75eff10d26a9","unresolved":false,"context_lines":[{"line_number":695,"context_line":""},{"line_number":696,"context_line":"        except KeyError:"},{"line_number":697,"context_line":"            raise error.FishyError("},{"line_number":698,"context_line":"                \u0027Unknown device %s at %s\u0027 % (device, identity))"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":"        domain_tree \u003d ET.fromstring(domain.XMLDesc())"},{"line_number":701,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9fb8cfa7_2d7a2b23","line":698,"in_reply_to":"bfb3d3c7_f110b350","updated":"2019-07-01 17:35:24.000000000","message":"Hmmm, if I make it to one line, the whole line becomes 83-char long which is over PEP8 limit. Or may be I misunderstood you?","commit_id":"90c435c868f889aa96828ca5eaf8f87d9593ac68"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"12040481f14947fa63eabdce29a03e2a2fa2afb4","unresolved":false,"context_lines":[{"line_number":715,"context_line":""},{"line_number":716,"context_line":"        if boot_image:"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"            try:"},{"line_number":719,"context_line":"                with libvirt_open(self._uri) as conn:"},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"                    pool \u003d conn.storagePoolLookupByName(self.STORAGE_POOL)"}],"source_content_type":"text/x-python","patch_set":18,"id":"bfb3d3c7_91b5b734","line":718,"updated":"2019-05-28 09:50:59.000000000","message":"this try/except block seems very big to me and it involves different processes, the message error at the end looks a bit too generic\nmaybe we should think about splitting it so to ease understanding what went wrong in case of failure","commit_id":"90c435c868f889aa96828ca5eaf8f87d9593ac68"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"d5576441cc10fe7762b7bbd1b9bb75eff10d26a9","unresolved":false,"context_lines":[{"line_number":715,"context_line":""},{"line_number":716,"context_line":"        if boot_image:"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"            try:"},{"line_number":719,"context_line":"                with libvirt_open(self._uri) as conn:"},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"                    pool \u003d conn.storagePoolLookupByName(self.STORAGE_POOL)"}],"source_content_type":"text/x-python","patch_set":18,"id":"9fb8cfa7_10e89cdf","line":718,"in_reply_to":"bfb3d3c7_91b5b734","updated":"2019-07-01 17:35:24.000000000","message":"Yeah, let\u0027s see if it\u0027s any better now?","commit_id":"90c435c868f889aa96828ca5eaf8f87d9593ac68"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"12040481f14947fa63eabdce29a03e2a2fa2afb4","unresolved":false,"context_lines":[{"line_number":755,"context_line":""},{"line_number":756,"context_line":"                    # Upload image to hypervisor"},{"line_number":757,"context_line":""},{"line_number":758,"context_line":"                    stream \u003d conn.newStream()"},{"line_number":759,"context_line":"                    volume.upload(stream, 0, image_size)"},{"line_number":760,"context_line":""},{"line_number":761,"context_line":"                    def read_file(stream, nbytes, fl):"}],"source_content_type":"text/x-python","patch_set":18,"id":"bfb3d3c7_115467fd","line":758,"updated":"2019-05-28 09:50:59.000000000","message":"maybe wrap the upload process in a try/except","commit_id":"90c435c868f889aa96828ca5eaf8f87d9593ac68"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"d5576441cc10fe7762b7bbd1b9bb75eff10d26a9","unresolved":false,"context_lines":[{"line_number":755,"context_line":""},{"line_number":756,"context_line":"                    # Upload image to hypervisor"},{"line_number":757,"context_line":""},{"line_number":758,"context_line":"                    stream \u003d conn.newStream()"},{"line_number":759,"context_line":"                    volume.upload(stream, 0, image_size)"},{"line_number":760,"context_line":""},{"line_number":761,"context_line":"                    def read_file(stream, nbytes, fl):"}],"source_content_type":"text/x-python","patch_set":18,"id":"9fb8cfa7_b0d75023","line":758,"in_reply_to":"bfb3d3c7_115467fd","updated":"2019-07-01 17:35:24.000000000","message":"I am not sure, it\u0027s still the same libvirt potentially raising the same exception type though with different error messages (hopefully).\n\nAnyway, I\u0027ve re-shuffled and split apart this large function.","commit_id":"90c435c868f889aa96828ca5eaf8f87d9593ac68"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"12040481f14947fa63eabdce29a03e2a2fa2afb4","unresolved":false,"context_lines":[{"line_number":767,"context_line":""},{"line_number":768,"context_line":"                    # Add disk element pointing to the boot image"},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"                    disk_element \u003d ET.SubElement(device_element, \u0027disk\u0027)"},{"line_number":771,"context_line":"                    disk_element.set(\u0027type\u0027, \u0027file\u0027)"},{"line_number":772,"context_line":"                    disk_element.set(\u0027device\u0027, lv_device)"},{"line_number":773,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"bfb3d3c7_718a836a","line":770,"updated":"2019-05-28 09:50:59.000000000","message":"this could be a separate function with its own except block","commit_id":"90c435c868f889aa96828ca5eaf8f87d9593ac68"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"11e6c0e376b244bc01d903414fdba564eb852d9f","unresolved":false,"context_lines":[{"line_number":767,"context_line":""},{"line_number":768,"context_line":"                    # Add disk element pointing to the boot image"},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"                    disk_element \u003d ET.SubElement(device_element, \u0027disk\u0027)"},{"line_number":771,"context_line":"                    disk_element.set(\u0027type\u0027, \u0027file\u0027)"},{"line_number":772,"context_line":"                    disk_element.set(\u0027device\u0027, lv_device)"},{"line_number":773,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9fb8cfa7_ef4b9e27","line":770,"in_reply_to":"9fb8cfa7_50da944a","updated":"2019-07-02 09:47:26.000000000","message":"I know :/\nI think it\u0027s ok, thanks for the effort!","commit_id":"90c435c868f889aa96828ca5eaf8f87d9593ac68"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"d5576441cc10fe7762b7bbd1b9bb75eff10d26a9","unresolved":false,"context_lines":[{"line_number":767,"context_line":""},{"line_number":768,"context_line":"                    # Add disk element pointing to the boot image"},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"                    disk_element \u003d ET.SubElement(device_element, \u0027disk\u0027)"},{"line_number":771,"context_line":"                    disk_element.set(\u0027type\u0027, \u0027file\u0027)"},{"line_number":772,"context_line":"                    disk_element.set(\u0027device\u0027, lv_device)"},{"line_number":773,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9fb8cfa7_50da944a","line":770,"in_reply_to":"bfb3d3c7_718a836a","updated":"2019-07-01 17:35:24.000000000","message":"Sort of done, WDYT?\n\nIt\u0027s hard to split the thing without introducing much duplication - too many common parts.","commit_id":"90c435c868f889aa96828ca5eaf8f87d9593ac68"},{"author":{"_account_id":30013,"name":"Varsha Verma","email":"varsha.verma.eee15@itbhu.ac.in","username":"verma-varsha"},"change_message_id":"01c0d0e94d3dbc8e57ea7478485ab41ae9e0e17e","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    STORAGE_POOL \u003d \u0027default\u0027"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    STORAGE_POOL_XML \u003d \"\"\""},{"line_number":125,"context_line":"\u003cvolume type\u003d\u0027file\u0027\u003e"},{"line_number":126,"context_line":"  \u003cname\u003e%(name)s\u003c/name\u003e"},{"line_number":127,"context_line":"  \u003ckey\u003e%(name)s\u003c/key\u003e"}],"source_content_type":"text/x-python","patch_set":28,"id":"7faddb67_782e5fa6","line":124,"range":{"start_line":124,"start_character":4,"end_line":124,"end_character":20},"updated":"2019-07-08 05:06:18.000000000","message":"Wouldn\u0027t it be more appropriate to call it STORAGE_VOLUME_XML?","commit_id":"9e0eaf43222fc1a5af42d1bd3a5196d8008be94f"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"da7ef9bc2893248ee3a6370372641f3c7af7582d","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    STORAGE_POOL \u003d \u0027default\u0027"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    STORAGE_POOL_XML \u003d \"\"\""},{"line_number":125,"context_line":"\u003cvolume type\u003d\u0027file\u0027\u003e"},{"line_number":126,"context_line":"  \u003cname\u003e%(name)s\u003c/name\u003e"},{"line_number":127,"context_line":"  \u003ckey\u003e%(name)s\u003c/key\u003e"}],"source_content_type":"text/x-python","patch_set":28,"id":"7faddb67_e2a50d04","line":124,"range":{"start_line":124,"start_character":4,"end_line":124,"end_character":20},"in_reply_to":"7faddb67_782e5fa6","updated":"2019-08-05 15:02:56.000000000","message":"changed in https://review.opendev.org/674627","commit_id":"9e0eaf43222fc1a5af42d1bd3a5196d8008be94f"}]}
