)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"908bc380e990d4487ba114c661520d6b965f5150","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"load up the volume drivers by checking architecture"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"libvirt_volume_drivers doesn\u0027t take architecture into account."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"this will keep the current volume drivers for x86, but will check"},{"line_number":12,"context_line":"them for ppc64, ppc64le, s390 and s390x architectures."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"3f79a3b5_2200e433","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":62},"updated":"2018-08-27 21:50:59.000000000","message":"im surprised to hear that they would be architecture specific. and you link to a bug or documentation that shows this is reqiured?","commit_id":"1074ca5a47f4bcd93b282fb3893ad978d9fa8c1b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"d9b7055093208accb804259d0e235117039ed3b5","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"load up the volume drivers by checking architecture"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"libvirt_volume_drivers doesn\u0027t take architecture into account."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"this will keep the current volume drivers for x86, but will check"},{"line_number":12,"context_line":"them for ppc64, ppc64le, s390 and s390x architectures."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"3f79a3b5_423880ec","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":62},"in_reply_to":"3f79a3b5_2200e433","updated":"2018-08-27 21:58:48.000000000","message":"I have the same question. What is the reason this change is needed? What problem is happening to where we need this change?","commit_id":"1074ca5a47f4bcd93b282fb3893ad978d9fa8c1b"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"cc8ad2f606cf72266db859311da8be66213c9745","unresolved":false,"context_lines":[{"line_number":6555,"context_line":"        self.assertNotEqual(drivers_x86,drivers_ppc)"},{"line_number":6556,"context_line":"        mock_platform_machine.return_value \u003d \"s390x\""},{"line_number":6557,"context_line":"        drivers_s390 \u003d libvirt_driver.get_libvirt_drivers()"},{"line_number":6558,"context_line":"        self.assertNotEqual(drivers_ppc,drivers_s390)"},{"line_number":6559,"context_line":""},{"line_number":6560,"context_line":""},{"line_number":6561,"context_line":"    def test_get_volume_driver(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_976ab6b0","line":6558,"updated":"2018-03-22 21:52:20.000000000","message":"Nit: you may also want to assert that s390 drivers aren\u0027t the same as the x86 list.","commit_id":"2b9d400da81524e8d641817ca6eecc340d192c9f"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"cc8ad2f606cf72266db859311da8be66213c9745","unresolved":false,"context_lines":[{"line_number":6557,"context_line":"        drivers_s390 \u003d libvirt_driver.get_libvirt_drivers()"},{"line_number":6558,"context_line":"        self.assertNotEqual(drivers_ppc,drivers_s390)"},{"line_number":6559,"context_line":""},{"line_number":6560,"context_line":""},{"line_number":6561,"context_line":"    def test_get_volume_driver(self):"},{"line_number":6562,"context_line":"        conn \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)"},{"line_number":6563,"context_line":"        connection_info \u003d {\u0027driver_volume_type\u0027: \u0027fake\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_57609ecf","line":6560,"updated":"2018-03-22 21:52:20.000000000","message":"Extra blank line will fail pep8. Only 1 blank line between methods.","commit_id":"2b9d400da81524e8d641817ca6eecc340d192c9f"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"cff96b463dc884da07aa9562434c9dbb43bd7a86","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        \u0027nova.virt.libvirt.volume.vrtshyperscale.\u0027"},{"line_number":180,"context_line":"        \u0027LibvirtHyperScaleVolumeDriver\u0027,"},{"line_number":181,"context_line":"    \u0027storpool\u003dnova.virt.libvirt.volume.storpool.LibvirtStorPoolVolumeDriver\u0027,"},{"line_number":182,"context_line":"]"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    from os_brick.initiator import connector"},{"line_number":185,"context_line":"    if (\"ppc64\" or \"s390\") not in arch:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_0536ade7","line":182,"range":{"start_line":182,"start_character":0,"end_line":182,"end_character":1},"updated":"2018-02-07 10:50:37.000000000","message":"better to move intent here?","commit_id":"477539d6767999f2d7be428f3eab187bc951be3f"},{"author":{"_account_id":21279,"name":"Patricia Domingues","email":"patricia.domingues@canonical.com","username":"patriciasd"},"change_message_id":"f46c4aba9a23a28cabbeb6c5632deece4f948806","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        \u0027nova.virt.libvirt.volume.vrtshyperscale.\u0027"},{"line_number":180,"context_line":"        \u0027LibvirtHyperScaleVolumeDriver\u0027,"},{"line_number":181,"context_line":"    \u0027storpool\u003dnova.virt.libvirt.volume.storpool.LibvirtStorPoolVolumeDriver\u0027,"},{"line_number":182,"context_line":"]"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    from os_brick.initiator import connector"},{"line_number":185,"context_line":"    if (\"ppc64\" or \"s390\") not in arch:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_5041c70a","line":182,"range":{"start_line":182,"start_character":0,"end_line":182,"end_character":1},"in_reply_to":"3fa0c359_0536ade7","updated":"2018-02-07 17:24:51.000000000","message":"no, thank you. the file itself already has it.","commit_id":"477539d6767999f2d7be428f3eab187bc951be3f"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"cff96b463dc884da07aa9562434c9dbb43bd7a86","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    \u0027storpool\u003dnova.virt.libvirt.volume.storpool.LibvirtStorPoolVolumeDriver\u0027,"},{"line_number":182,"context_line":"]"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    from os_brick.initiator import connector"},{"line_number":185,"context_line":"    if (\"ppc64\" or \"s390\") not in arch:"},{"line_number":186,"context_line":"        return libvirt_volume_drivers"},{"line_number":187,"context_line":"    elif arch \u003d\u003d \"ppc64le\" or arch \u003d\u003d \"ppc64\":"},{"line_number":188,"context_line":"        os_brick_con \u003d connector._connector_mapping_linux_ppc64"},{"line_number":189,"context_line":"    elif arch \u003d\u003d \"s390\" or arch \u003d\u003d \"s390x\":"},{"line_number":190,"context_line":"        os_brick_con \u003d connector._connector_mapping_linux_s390x"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    volume_driver_from_arch \u003d []"},{"line_number":193,"context_line":"    for driver_str in libvirt_volume_drivers:"},{"line_number":194,"context_line":"        driver_type, _sep, driver \u003d driver_str.partition(\u0027\u003d\u0027)"},{"line_number":195,"context_line":"        if driver_type.upper() in os_brick_con:"},{"line_number":196,"context_line":"            volume_driver_from_arch.append(driver_str)"},{"line_number":197,"context_line":"    volume_driver_from_arch.append(\u0027fake\u003d\u0027"},{"line_number":198,"context_line":"        \u0027nova.virt.libvirt.volume.volume.LibvirtFakeVolumeDriver\u0027)"},{"line_number":199,"context_line":"    return volume_driver_from_arch"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"def patch_tpool_proxy():"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_855abdf0","line":199,"range":{"start_line":184,"start_character":4,"end_line":199,"end_character":34},"updated":"2018-02-07 10:50:37.000000000","message":"guess not easy but better to add some unit test here...","commit_id":"477539d6767999f2d7be428f3eab187bc951be3f"},{"author":{"_account_id":21279,"name":"Patricia Domingues","email":"patricia.domingues@canonical.com","username":"patriciasd"},"change_message_id":"f46c4aba9a23a28cabbeb6c5632deece4f948806","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    \u0027storpool\u003dnova.virt.libvirt.volume.storpool.LibvirtStorPoolVolumeDriver\u0027,"},{"line_number":182,"context_line":"]"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    from os_brick.initiator import connector"},{"line_number":185,"context_line":"    if (\"ppc64\" or \"s390\") not in arch:"},{"line_number":186,"context_line":"        return libvirt_volume_drivers"},{"line_number":187,"context_line":"    elif arch \u003d\u003d \"ppc64le\" or arch \u003d\u003d \"ppc64\":"},{"line_number":188,"context_line":"        os_brick_con \u003d connector._connector_mapping_linux_ppc64"},{"line_number":189,"context_line":"    elif arch \u003d\u003d \"s390\" or arch \u003d\u003d \"s390x\":"},{"line_number":190,"context_line":"        os_brick_con \u003d connector._connector_mapping_linux_s390x"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    volume_driver_from_arch \u003d []"},{"line_number":193,"context_line":"    for driver_str in libvirt_volume_drivers:"},{"line_number":194,"context_line":"        driver_type, _sep, driver \u003d driver_str.partition(\u0027\u003d\u0027)"},{"line_number":195,"context_line":"        if driver_type.upper() in os_brick_con:"},{"line_number":196,"context_line":"            volume_driver_from_arch.append(driver_str)"},{"line_number":197,"context_line":"    volume_driver_from_arch.append(\u0027fake\u003d\u0027"},{"line_number":198,"context_line":"        \u0027nova.virt.libvirt.volume.volume.LibvirtFakeVolumeDriver\u0027)"},{"line_number":199,"context_line":"    return volume_driver_from_arch"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"def patch_tpool_proxy():"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_9062ef3d","line":199,"range":{"start_line":184,"start_character":4,"end_line":199,"end_character":34},"in_reply_to":"3fa0c359_855abdf0","updated":"2018-02-07 17:24:51.000000000","message":"it is to fix errors on nova unit tests, because libvirt_volume_drivers has all drivers and, for instance, Power Arch doesn\u0027t support scaleio(Dell EMC).","commit_id":"477539d6767999f2d7be428f3eab187bc951be3f"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"b2d8c16b0997ea7fd72fc4ff38cc7f1157250314","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    \u0027storpool\u003dnova.virt.libvirt.volume.storpool.LibvirtStorPoolVolumeDriver\u0027,"},{"line_number":182,"context_line":"]"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    from os_brick.initiator import connector"},{"line_number":185,"context_line":"    if (\"ppc64\" or \"s390\") not in arch:"},{"line_number":186,"context_line":"        return libvirt_volume_drivers"},{"line_number":187,"context_line":"    elif arch \u003d\u003d \"ppc64le\" or arch \u003d\u003d \"ppc64\":"},{"line_number":188,"context_line":"        os_brick_con \u003d connector._connector_mapping_linux_ppc64"},{"line_number":189,"context_line":"    elif arch \u003d\u003d \"s390\" or arch \u003d\u003d \"s390x\":"},{"line_number":190,"context_line":"        os_brick_con \u003d connector._connector_mapping_linux_s390x"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    volume_driver_from_arch \u003d []"},{"line_number":193,"context_line":"    for driver_str in libvirt_volume_drivers:"},{"line_number":194,"context_line":"        driver_type, _sep, driver \u003d driver_str.partition(\u0027\u003d\u0027)"},{"line_number":195,"context_line":"        if driver_type.upper() in os_brick_con:"},{"line_number":196,"context_line":"            volume_driver_from_arch.append(driver_str)"},{"line_number":197,"context_line":"    volume_driver_from_arch.append(\u0027fake\u003d\u0027"},{"line_number":198,"context_line":"        \u0027nova.virt.libvirt.volume.volume.LibvirtFakeVolumeDriver\u0027)"},{"line_number":199,"context_line":"    return volume_driver_from_arch"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"def patch_tpool_proxy():"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_b5d252d0","line":199,"range":{"start_line":184,"start_character":4,"end_line":199,"end_character":34},"in_reply_to":"3fa0c359_9062ef3d","updated":"2018-02-20 18:55:44.000000000","message":"I would still like to see a unit test added, where you mock out the call to platform.machine() to return one of the values you\u0027ve added, and then verify that the method returns the correct values for that architecture.","commit_id":"477539d6767999f2d7be428f3eab187bc951be3f"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"b2d8c16b0997ea7fd72fc4ff38cc7f1157250314","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    \u0027InjectionInfo\u0027, [\u0027network_info\u0027, \u0027files\u0027, \u0027admin_pass\u0027])"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"def get_volume_from_arch():"},{"line_number":155,"context_line":"    arch \u003d platform.machine()"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    libvirt_volume_drivers \u003d ["}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa0c359_d506fe86","line":154,"range":{"start_line":154,"start_character":4,"end_line":154,"end_character":24},"updated":"2018-02-20 18:55:44.000000000","message":"Since this is returning all drivers, a better name might be something like \u0027get_all_libvirt_drivers\u0027.","commit_id":"625a4197ea055973500c38df1c8806dba0d8cecc"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"b2d8c16b0997ea7fd72fc4ff38cc7f1157250314","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"def get_volume_from_arch():"},{"line_number":155,"context_line":"    arch \u003d platform.machine()"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    libvirt_volume_drivers \u003d ["},{"line_number":158,"context_line":"    \u0027iscsi\u003dnova.virt.libvirt.volume.iscsi.LibvirtISCSIVolumeDriver\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa0c359_b50fb286","line":155,"updated":"2018-02-20 18:55:44.000000000","message":"I would move this line right above line 184, so that it\u0027s defined near where it\u0027s used.","commit_id":"625a4197ea055973500c38df1c8806dba0d8cecc"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"b2d8c16b0997ea7fd72fc4ff38cc7f1157250314","unresolved":false,"context_lines":[{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    if (\"ppc64\" or \"s390\") not in arch:"},{"line_number":185,"context_line":"        return libvirt_volume_drivers"},{"line_number":186,"context_line":"    elif arch \u003d\u003d \"ppc64le\" or arch \u003d\u003d \"ppc64\":"},{"line_number":187,"context_line":"        os_brick_con \u003d connector._connector_mapping_linux_ppc64"},{"line_number":188,"context_line":"    elif arch \u003d\u003d \"s390\" or arch \u003d\u003d \"s390x\":"},{"line_number":189,"context_line":"        os_brick_con \u003d connector._connector_mapping_linux_s390x"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa0c359_f5d8da53","line":186,"range":{"start_line":186,"start_character":9,"end_line":186,"end_character":45},"updated":"2018-02-20 18:55:44.000000000","message":"You could simplify this to:\n\n arch.startswith(\"ppc64\")\n\n...unless there are other values that might begin with that string. If there are, you could also simplify this to:\n\n  arch in (\"ppc64\", \"ppc64le\")","commit_id":"625a4197ea055973500c38df1c8806dba0d8cecc"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"b2d8c16b0997ea7fd72fc4ff38cc7f1157250314","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        return libvirt_volume_drivers"},{"line_number":186,"context_line":"    elif arch \u003d\u003d \"ppc64le\" or arch \u003d\u003d \"ppc64\":"},{"line_number":187,"context_line":"        os_brick_con \u003d connector._connector_mapping_linux_ppc64"},{"line_number":188,"context_line":"    elif arch \u003d\u003d \"s390\" or arch \u003d\u003d \"s390x\":"},{"line_number":189,"context_line":"        os_brick_con \u003d connector._connector_mapping_linux_s390x"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    volume_driver_from_arch \u003d []"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa0c359_95d95657","line":188,"updated":"2018-02-20 18:55:44.000000000","message":"Same here:\n\n  arch.startswith(\"s390\")","commit_id":"625a4197ea055973500c38df1c8806dba0d8cecc"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"b2d8c16b0997ea7fd72fc4ff38cc7f1157250314","unresolved":false,"context_lines":[{"line_number":188,"context_line":"    elif arch \u003d\u003d \"s390\" or arch \u003d\u003d \"s390x\":"},{"line_number":189,"context_line":"        os_brick_con \u003d connector._connector_mapping_linux_s390x"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    volume_driver_from_arch \u003d []"},{"line_number":192,"context_line":"    for driver_str in libvirt_volume_drivers:"},{"line_number":193,"context_line":"        driver_type, _sep, driver \u003d driver_str.partition(\u0027\u003d\u0027)"},{"line_number":194,"context_line":"        if driver_type.upper() in os_brick_con:"},{"line_number":195,"context_line":"            volume_driver_from_arch.append(driver_str)"},{"line_number":196,"context_line":"    volume_driver_from_arch.append(\u0027fake\u003d\u0027"},{"line_number":197,"context_line":"        \u0027nova.virt.libvirt.volume.volume.LibvirtFakeVolumeDriver\u0027)"},{"line_number":198,"context_line":"    return volume_driver_from_arch"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa0c359_9595d634","line":195,"range":{"start_line":191,"start_character":4,"end_line":195,"end_character":54},"updated":"2018-02-20 18:55:44.000000000","message":"You could use a list comprehension here:\n\n  volume_driver_from_arch \u003d [driver_str for driver_str in libvirt_volume_drivers\n                             if driver_str.split(\"\u003d)[0].upper() in os_brick_con]","commit_id":"625a4197ea055973500c38df1c8806dba0d8cecc"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"cc8ad2f606cf72266db859311da8be66213c9745","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        os_brick_con \u003d connector._connector_mapping_linux_ppc64"},{"line_number":187,"context_line":"    elif arch.startswith(\"s390\"):"},{"line_number":188,"context_line":"        os_brick_con \u003d connector._connector_mapping_linux_s390x"},{"line_number":189,"context_line":"    volume_driver_from_arch \u003d [driver_str for driver_str in"},{"line_number":190,"context_line":"                           libvirt_volume_drivers if"},{"line_number":191,"context_line":"                           driver_str.split(\"\u003d\")[0].upper() in os_brick_con]"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_1706a6cf","line":189,"range":{"start_line":189,"start_character":4,"end_line":189,"end_character":27},"updated":"2018-03-22 21:52:20.000000000","message":"if you shorten this name to just \"volume_drivers\", you can format the lines better:\n\n        volume_drivers \u003d [driver_str for driver_str in libvirt_volume_drivers\n                          if driver_str.split(\"\u003d\")[0].upper() in os_brick_con]\n\nThis will fit in the 79-char limit.","commit_id":"2b9d400da81524e8d641817ca6eecc340d192c9f"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"14f2c2ce28d194f91faf43fff3875452ade5d489","unresolved":false,"context_lines":[{"line_number":180,"context_line":"]"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    arch \u003d platform.machine()"},{"line_number":183,"context_line":"    if arch not in (\"ppc64\", \"ppc64\", \"s390\", \"s390\"):"},{"line_number":184,"context_line":"        return libvirt_volume_drivers"},{"line_number":185,"context_line":"    elif arch.startswith(\"ppc64\"):"},{"line_number":186,"context_line":"        os_brick_con \u003d connector._connector_mapping_linux_ppc64"}],"source_content_type":"text/x-python","patch_set":7,"id":"df7087c5_8e192bd8","line":183,"range":{"start_line":183,"start_character":19,"end_line":183,"end_character":53},"updated":"2018-03-23 13:17:12.000000000","message":"Don\u0027t know why I didn\u0027t catch this earlier, but you are repeating the same values here, so something like \u0027ppc64le\u0027 won\u0027t get matched. You should change this line to:\n\n    if not arch.startswith(\"ppc64\") and not arch.startswith(\"s390\"):","commit_id":"9591560e34bda4f7282e7bd9be740d770acc2a1e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"70a3a5db1610caa75a09c81c4f07a7d63e716613","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"def get_libvirt_drivers():"},{"line_number":155,"context_line":"    libvirt_volume_drivers \u003d ["},{"line_number":156,"context_line":"    \u0027iscsi\u003dnova.virt.libvirt.volume.iscsi.LibvirtISCSIVolumeDriver\u0027,"},{"line_number":157,"context_line":"    \u0027iser\u003dnova.virt.libvirt.volume.iser.LibvirtISERVolumeDriver\u0027,"},{"line_number":158,"context_line":"    \u0027local\u003dnova.virt.libvirt.volume.volume.LibvirtVolumeDriver\u0027,"},{"line_number":159,"context_line":"    \u0027drbd\u003dnova.virt.libvirt.volume.drbd.LibvirtDRBDVolumeDriver\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_c028ab87","line":156,"range":{"start_line":156,"start_character":4,"end_line":156,"end_character":68},"updated":"2018-03-27 09:33:36.000000000","message":"sidenote: it\u0027s weird that this isn\u0027t a dictionary. Possible future change (keyed by os_brick.initiator constants, perhaps)","commit_id":"b8193195a99efbc52142c26ecff89b9f14fb8fc0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"70a3a5db1610caa75a09c81c4f07a7d63e716613","unresolved":false,"context_lines":[{"line_number":183,"context_line":"    if arch not in (\"ppc64\", \"ppc64le\", \"s390\", \"s390x\"):"},{"line_number":184,"context_line":"        return libvirt_volume_drivers"},{"line_number":185,"context_line":"    elif arch.startswith(\"ppc64\"):"},{"line_number":186,"context_line":"        os_brick_con \u003d connector._connector_mapping_linux_ppc64"},{"line_number":187,"context_line":"    elif arch.startswith(\"s390\"):"},{"line_number":188,"context_line":"        os_brick_con \u003d connector._connector_mapping_linux_s390x"},{"line_number":189,"context_line":"    volume_drivers \u003d [driver_str for driver_str in libvirt_volume_drivers"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_fdab181a","line":186,"range":{"start_line":186,"start_character":33,"end_line":186,"end_character":63},"updated":"2018-03-27 09:33:36.000000000","message":"These are private attributes. Are we sure we can rely on them? Perhaps you could update os-brick to make them public, so we could switch to this in the future? Alterntively, can we use InitiatorConnector.factory method, which seems designed to yield something like this?","commit_id":"b8193195a99efbc52142c26ecff89b9f14fb8fc0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2afa3f0ce1722c819e2df2b9532038efd742a396","unresolved":false,"context_lines":[{"line_number":183,"context_line":"    if arch not in (\"ppc64\", \"ppc64le\", \"s390\", \"s390x\"):"},{"line_number":184,"context_line":"        return libvirt_volume_drivers"},{"line_number":185,"context_line":"    elif arch.startswith(\"ppc64\"):"},{"line_number":186,"context_line":"        os_brick_con \u003d connector._connector_mapping_linux_ppc64"},{"line_number":187,"context_line":"    elif arch.startswith(\"s390\"):"},{"line_number":188,"context_line":"        os_brick_con \u003d connector._connector_mapping_linux_s390x"},{"line_number":189,"context_line":"    volume_drivers \u003d [driver_str for driver_str in libvirt_volume_drivers"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_69d5c3e4","line":186,"range":{"start_line":186,"start_character":33,"end_line":186,"end_character":63},"in_reply_to":"bf659307_589c8b5c","updated":"2018-03-29 13:13:04.000000000","message":"To be honest, I\u0027d rather see a patch for os-brick _before_ we merge this. The os-brick guys might want something else done","commit_id":"b8193195a99efbc52142c26ecff89b9f14fb8fc0"},{"author":{"_account_id":21279,"name":"Patricia Domingues","email":"patricia.domingues@canonical.com","username":"patriciasd"},"change_message_id":"1627537badd75cf3c758e219b092524a20861aa4","unresolved":false,"context_lines":[{"line_number":183,"context_line":"    if arch not in (\"ppc64\", \"ppc64le\", \"s390\", \"s390x\"):"},{"line_number":184,"context_line":"        return libvirt_volume_drivers"},{"line_number":185,"context_line":"    elif arch.startswith(\"ppc64\"):"},{"line_number":186,"context_line":"        os_brick_con \u003d connector._connector_mapping_linux_ppc64"},{"line_number":187,"context_line":"    elif arch.startswith(\"s390\"):"},{"line_number":188,"context_line":"        os_brick_con \u003d connector._connector_mapping_linux_s390x"},{"line_number":189,"context_line":"    volume_drivers \u003d [driver_str for driver_str in libvirt_volume_drivers"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_589c8b5c","line":186,"range":{"start_line":186,"start_character":33,"end_line":186,"end_character":63},"in_reply_to":"bf659307_fdab181a","updated":"2018-03-27 14:16:46.000000000","message":"I cannot use factory method because it creates a connector object and what I need here is a volume driver list. About the private attribute: yes, I can add a TODO here and create a new public function in os_brick to get it -  and later, after I can get it merged there I\u0027ll change it here.","commit_id":"b8193195a99efbc52142c26ecff89b9f14fb8fc0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"70a3a5db1610caa75a09c81c4f07a7d63e716613","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    elif arch.startswith(\"s390\"):"},{"line_number":188,"context_line":"        os_brick_con \u003d connector._connector_mapping_linux_s390x"},{"line_number":189,"context_line":"    volume_drivers \u003d [driver_str for driver_str in libvirt_volume_drivers"},{"line_number":190,"context_line":"                     if driver_str.split(\"\u003d\")[0].upper() in os_brick_con]"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    volume_drivers.append(\u0027fake\u003d\u0027"},{"line_number":193,"context_line":"        \u0027nova.virt.libvirt.volume.volume.LibvirtFakeVolumeDriver\u0027)"},{"line_number":194,"context_line":"    return volume_drivers"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_a00c973b","line":193,"range":{"start_line":190,"start_character":57,"end_line":193,"end_character":66},"updated":"2018-03-27 09:33:36.000000000","message":"How about:\n\n    in os_brick_con + [\u0027fake\u0027]","commit_id":"b8193195a99efbc52142c26ecff89b9f14fb8fc0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"521d52ead1cb1c8667560a108ba5f9d3f7e5f06d","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"def get_libvirt_drivers():"},{"line_number":155,"context_line":"    libvirt_volume_drivers \u003d ["},{"line_number":156,"context_line":"    \u0027iscsi\u003dnova.virt.libvirt.volume.iscsi.LibvirtISCSIVolumeDriver\u0027,"},{"line_number":157,"context_line":"    \u0027iser\u003dnova.virt.libvirt.volume.iser.LibvirtISERVolumeDriver\u0027,"},{"line_number":158,"context_line":"    \u0027local\u003dnova.virt.libvirt.volume.volume.LibvirtVolumeDriver\u0027,"},{"line_number":159,"context_line":"    \u0027drbd\u003dnova.virt.libvirt.volume.drbd.LibvirtDRBDVolumeDriver\u0027,"},{"line_number":160,"context_line":"    \u0027fake\u003dnova.virt.libvirt.volume.volume.LibvirtFakeVolumeDriver\u0027,"},{"line_number":161,"context_line":"    \u0027rbd\u003dnova.virt.libvirt.volume.net.LibvirtNetVolumeDriver\u0027,"},{"line_number":162,"context_line":"    \u0027sheepdog\u003dnova.virt.libvirt.volume.net.LibvirtNetVolumeDriver\u0027,"},{"line_number":163,"context_line":"    \u0027nfs\u003dnova.virt.libvirt.volume.nfs.LibvirtNFSVolumeDriver\u0027,"},{"line_number":164,"context_line":"    \u0027smbfs\u003dnova.virt.libvirt.volume.smbfs.LibvirtSMBFSVolumeDriver\u0027,"},{"line_number":165,"context_line":"    \u0027aoe\u003dnova.virt.libvirt.volume.aoe.LibvirtAOEVolumeDriver\u0027,"},{"line_number":166,"context_line":"    \u0027fibre_channel\u003d\u0027"},{"line_number":167,"context_line":"        \u0027nova.virt.libvirt.volume.fibrechannel.\u0027"},{"line_number":168,"context_line":"        \u0027LibvirtFibreChannelVolumeDriver\u0027,"},{"line_number":169,"context_line":"    \u0027gpfs\u003dnova.virt.libvirt.volume.gpfs.LibvirtGPFSVolumeDriver\u0027,"},{"line_number":170,"context_line":"    \u0027quobyte\u003dnova.virt.libvirt.volume.quobyte.LibvirtQuobyteVolumeDriver\u0027,"},{"line_number":171,"context_line":"    \u0027hgst\u003dnova.virt.libvirt.volume.hgst.LibvirtHGSTVolumeDriver\u0027,"},{"line_number":172,"context_line":"    \u0027scaleio\u003dnova.virt.libvirt.volume.scaleio.LibvirtScaleIOVolumeDriver\u0027,"},{"line_number":173,"context_line":"    \u0027disco\u003dnova.virt.libvirt.volume.disco.LibvirtDISCOVolumeDriver\u0027,"},{"line_number":174,"context_line":"    \u0027vzstorage\u003d\u0027"},{"line_number":175,"context_line":"        \u0027nova.virt.libvirt.volume.vzstorage.LibvirtVZStorageVolumeDriver\u0027,"},{"line_number":176,"context_line":"    \u0027veritas_hyperscale\u003d\u0027"},{"line_number":177,"context_line":"        \u0027nova.virt.libvirt.volume.vrtshyperscale.\u0027"},{"line_number":178,"context_line":"        \u0027LibvirtHyperScaleVolumeDriver\u0027,"},{"line_number":179,"context_line":"    \u0027storpool\u003dnova.virt.libvirt.volume.storpool.LibvirtStorPoolVolumeDriver\u0027,"},{"line_number":180,"context_line":"]"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    arch \u003d platform.machine()"},{"line_number":183,"context_line":"    if arch not in (\"ppc64\", \"ppc64le\", \"s390\", \"s390x\"):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_cf3b6ce7","line":180,"range":{"start_line":156,"start_character":0,"end_line":180,"end_character":1},"updated":"2018-08-27 09:29:30.000000000","message":"Can you indent all of this too, please?","commit_id":"748cb0e87c33a260437ffdb031bb02d489c873ef"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"521d52ead1cb1c8667560a108ba5f9d3f7e5f06d","unresolved":false,"context_lines":[{"line_number":180,"context_line":"]"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    arch \u003d platform.machine()"},{"line_number":183,"context_line":"    if arch not in (\"ppc64\", \"ppc64le\", \"s390\", \"s390x\"):"},{"line_number":184,"context_line":"        return libvirt_volume_drivers"},{"line_number":185,"context_line":"    os_brick_con \u003d connector.get_connector_mapping()"},{"line_number":186,"context_line":"    volume_drivers \u003d [driver_str for driver_str in libvirt_volume_drivers"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_4a150a3c","line":183,"range":{"start_line":183,"start_character":20,"end_line":183,"end_character":21},"updated":"2018-08-27 09:29:30.000000000","message":"supernit: s/\"/\u0027/","commit_id":"748cb0e87c33a260437ffdb031bb02d489c873ef"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"521d52ead1cb1c8667560a108ba5f9d3f7e5f06d","unresolved":false,"context_lines":[{"line_number":182,"context_line":"    arch \u003d platform.machine()"},{"line_number":183,"context_line":"    if arch not in (\"ppc64\", \"ppc64le\", \"s390\", \"s390x\"):"},{"line_number":184,"context_line":"        return libvirt_volume_drivers"},{"line_number":185,"context_line":"    os_brick_con \u003d connector.get_connector_mapping()"},{"line_number":186,"context_line":"    volume_drivers \u003d [driver_str for driver_str in libvirt_volume_drivers"},{"line_number":187,"context_line":"                     if driver_str.split(\"\u003d\")[0].upper() in os_brick_con]"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_4f00bc02","line":185,"range":{"start_line":185,"start_character":13,"end_line":185,"end_character":16},"updated":"2018-08-27 09:29:30.000000000","message":"conn","commit_id":"748cb0e87c33a260437ffdb031bb02d489c873ef"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"521d52ead1cb1c8667560a108ba5f9d3f7e5f06d","unresolved":false,"context_lines":[{"line_number":182,"context_line":"    arch \u003d platform.machine()"},{"line_number":183,"context_line":"    if arch not in (\"ppc64\", \"ppc64le\", \"s390\", \"s390x\"):"},{"line_number":184,"context_line":"        return libvirt_volume_drivers"},{"line_number":185,"context_line":"    os_brick_con \u003d connector.get_connector_mapping()"},{"line_number":186,"context_line":"    volume_drivers \u003d [driver_str for driver_str in libvirt_volume_drivers"},{"line_number":187,"context_line":"                     if driver_str.split(\"\u003d\")[0].upper() in os_brick_con]"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_4f275cc8","line":185,"updated":"2018-08-27 09:29:30.000000000","message":"nit: newline above this","commit_id":"748cb0e87c33a260437ffdb031bb02d489c873ef"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"521d52ead1cb1c8667560a108ba5f9d3f7e5f06d","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        return libvirt_volume_drivers"},{"line_number":185,"context_line":"    os_brick_con \u003d connector.get_connector_mapping()"},{"line_number":186,"context_line":"    volume_drivers \u003d [driver_str for driver_str in libvirt_volume_drivers"},{"line_number":187,"context_line":"                     if driver_str.split(\"\u003d\")[0].upper() in os_brick_con]"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    volume_drivers.append(\u0027fake\u003d\u0027"},{"line_number":190,"context_line":"        \u0027nova.virt.libvirt.volume.volume.LibvirtFakeVolumeDriver\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_af11505f","line":187,"updated":"2018-08-27 09:29:30.000000000","message":"nit: indent by 1","commit_id":"748cb0e87c33a260437ffdb031bb02d489c873ef"}]}
