)]}'
{"nova/tests/test_libvirt.py":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"5bf032e9e16a467b7bdd9114c30f545a899eabc2","unresolved":false,"context_lines":[{"line_number":62,"context_line":"from nova.virt.libvirt import imagebackend"},{"line_number":63,"context_line":"from nova.virt.libvirt import utils as libvirt_utils"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"try:"},{"line_number":67,"context_line":"    import libvirt"},{"line_number":68,"context_line":"except ImportError:"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAM3%2F%2B1F8%3D","side":"PARENT","line":65,"updated":"2013-02-18 10:14:12.000000000","message":"Don\u0027t make arbitrary whitespace changes in files you aren\u0027t otherwise touching.","commit_id":"ae888be9a356e88589d0ceeb5a777a627c284a4d"}],"nova/tests/test_libvirt_volume.py":[{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"6af78c9321fd2ee90bea068f21b50d3b410ee486","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        iqn \u003d \u0027iqn.2010-10.org.openstack:%s\u0027 % name"},{"line_number":97,"context_line":"        vol \u003d {\u0027id\u0027: 1, \u0027name\u0027: name}"},{"line_number":98,"context_line":"        connection_info \u003d self.iscsi_connection(vol, location, iqn)"},{"line_number":99,"context_line":"        connection_info"},{"line_number":100,"context_line":"        disk_info \u003d {"},{"line_number":101,"context_line":"            \"bus\": \"virtio\","},{"line_number":102,"context_line":"            \"dev\": \"vde\","}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAM3%2F%2B11k%3D","line":99,"updated":"2013-02-17 21:01:49.000000000","message":"?","commit_id":"b8113ed7ecffc8e4fd7216e7eea5a7968027aa71"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"5bf032e9e16a467b7bdd9114c30f545a899eabc2","unresolved":false,"context_lines":[{"line_number":338,"context_line":"        self.assertEqual(tree.find(\u0027./auth/secret\u0027).get(\u0027uuid\u0027), flags_uuid)"},{"line_number":339,"context_line":"        libvirt_driver.disconnect_volume(connection_info, \"vde\")"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    def test_libvirt_lxc_volume(self):"},{"line_number":342,"context_line":"        self.stubs.Set(os.path, \u0027exists\u0027, lambda x: True)"},{"line_number":343,"context_line":"        libvirt_driver \u003d volume.LibvirtISCSIVolumeDriver(self.fake_conn)"},{"line_number":344,"context_line":"        name \u003d \u0027volume-00000001\u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAM3%2F%2B1F0%3D","line":341,"updated":"2013-02-18 10:14:12.000000000","message":"This doesn\u0027t make a whole lot of sense - you are refering to \u0027lxc\u0027 virtualization here....","commit_id":"3d18f3a6a368db718b0c5d01cbb6b66128a368b6"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"5bf032e9e16a467b7bdd9114c30f545a899eabc2","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        vol \u003d {\u0027id\u0027: 1, \u0027name\u0027: name}"},{"line_number":348,"context_line":"        connection_info \u003d self.iscsi_connection(vol, location, iqn)"},{"line_number":349,"context_line":"        disk_info \u003d {"},{"line_number":350,"context_line":"            \"bus\": \"virtio\","},{"line_number":351,"context_line":"            \"dev\": \"vde\","},{"line_number":352,"context_line":"            \"type\": \"disk\","},{"line_number":353,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAM3%2F%2B1Fs%3D","line":350,"updated":"2013-02-18 10:14:12.000000000","message":"...but this disk bus is related to KVM virtualization. I think you need to rename the test case to \u0027kvm\u0027. Likewise for the next test case.","commit_id":"3d18f3a6a368db718b0c5d01cbb6b66128a368b6"}],"nova/virt/libvirt/volume.py":[{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"f867f2aa113ed9c4f24ce9a2dc83d79d41f4e294","unresolved":false,"context_lines":[{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        if multipath_enabled:"},{"line_number":216,"context_line":"            #multipath installed, discovering other targets if available"},{"line_number":217,"context_line":"            #multipath should be configured on the nova-compute node to fit storage driver"},{"line_number":218,"context_line":"            (out, err) \u003d self._run_iscsiadm_bare([\u0027-m\u0027, \u0027discovery\u0027, \u0027-t\u0027, \u0027sendtargets\u0027, \u0027-p\u0027,"},{"line_number":219,"context_line":"                iscsi_properties[\u0027target_portal\u0027]], check_exit_code\u003d[0, 15, 255])"},{"line_number":220,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMX%2F%2F2cU%3D","line":217,"updated":"2012-12-12 17:49:13.000000000","message":"how is multipath configured?","commit_id":"8bf14a7239232c4060f4d69e14a3630949cf8993"},{"author":{"_account_id":5259,"name":"Erik Zaadi","email":"erik.zaadi@gmail.com","username":"erikzaadi"},"change_message_id":"0afcb6ff034a0956d1688be2f5f1310c17860cf9","unresolved":false,"context_lines":[{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        if multipath_enabled:"},{"line_number":216,"context_line":"            #multipath installed, discovering other targets if available"},{"line_number":217,"context_line":"            #multipath should be configured on the nova-compute node to fit storage driver"},{"line_number":218,"context_line":"            (out, err) \u003d self._run_iscsiadm_bare([\u0027-m\u0027, \u0027discovery\u0027, \u0027-t\u0027, \u0027sendtargets\u0027, \u0027-p\u0027,"},{"line_number":219,"context_line":"                iscsi_properties[\u0027target_portal\u0027]], check_exit_code\u003d[0, 15, 255])"},{"line_number":220,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMX%2F%2F1k8%3D","line":217,"in_reply_to":"AAAAMX%2F%2F2cU%3D","updated":"2012-12-13 09:29:53.000000000","message":"Depends on the OS and storage vendors, in most cases, /etc/multipath.conf includes storage vendors ids and configurations.\nE.g. IBM XIV Storage is configured out of the box in Red Hat, but not in Ubuntu, where you need to add a few lines to /etc/multipath.conf.","commit_id":"8bf14a7239232c4060f4d69e14a3630949cf8993"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"f867f2aa113ed9c4f24ce9a2dc83d79d41f4e294","unresolved":false,"context_lines":[{"line_number":216,"context_line":"            #multipath installed, discovering other targets if available"},{"line_number":217,"context_line":"            #multipath should be configured on the nova-compute node to fit storage driver"},{"line_number":218,"context_line":"            (out, err) \u003d self._run_iscsiadm_bare([\u0027-m\u0027, \u0027discovery\u0027, \u0027-t\u0027, \u0027sendtargets\u0027, \u0027-p\u0027,"},{"line_number":219,"context_line":"                iscsi_properties[\u0027target_portal\u0027]], check_exit_code\u003d[0, 15, 255])"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"            if err \u003d\u003d 0:"},{"line_number":222,"context_line":"                #login to all other available portals"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMX%2F%2F2cQ%3D","line":219,"updated":"2012-12-12 17:49:13.000000000","message":"it seems odd to allow 15 and 255 here...","commit_id":"8bf14a7239232c4060f4d69e14a3630949cf8993"},{"author":{"_account_id":5259,"name":"Erik Zaadi","email":"erik.zaadi@gmail.com","username":"erikzaadi"},"change_message_id":"0afcb6ff034a0956d1688be2f5f1310c17860cf9","unresolved":false,"context_lines":[{"line_number":216,"context_line":"            #multipath installed, discovering other targets if available"},{"line_number":217,"context_line":"            #multipath should be configured on the nova-compute node to fit storage driver"},{"line_number":218,"context_line":"            (out, err) \u003d self._run_iscsiadm_bare([\u0027-m\u0027, \u0027discovery\u0027, \u0027-t\u0027, \u0027sendtargets\u0027, \u0027-p\u0027,"},{"line_number":219,"context_line":"                iscsi_properties[\u0027target_portal\u0027]], check_exit_code\u003d[0, 15, 255])"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"            if err \u003d\u003d 0:"},{"line_number":222,"context_line":"                #login to all other available portals"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMX%2F%2F1k0%3D","line":219,"in_reply_to":"AAAAMX%2F%2F2cQ%3D","updated":"2012-12-13 09:29:53.000000000","message":"Correct, 15 is irrelevant for discovery mode, will remove.","commit_id":"8bf14a7239232c4060f4d69e14a3630949cf8993"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"f867f2aa113ed9c4f24ce9a2dc83d79d41f4e294","unresolved":false,"context_lines":[{"line_number":218,"context_line":"            (out, err) \u003d self._run_iscsiadm_bare([\u0027-m\u0027, \u0027discovery\u0027, \u0027-t\u0027, \u0027sendtargets\u0027, \u0027-p\u0027,"},{"line_number":219,"context_line":"                iscsi_properties[\u0027target_portal\u0027]], check_exit_code\u003d[0, 15, 255])"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"            if err \u003d\u003d 0:"},{"line_number":222,"context_line":"                #login to all other available portals"},{"line_number":223,"context_line":"                for ip in [x.split()[0] for x in out.splitlines() if ip not in iscsi_properties[\u0027target_portal\u0027]]:"},{"line_number":224,"context_line":"                    props \u003d iscsi_properties.copy()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMX%2F%2F2cM%3D","line":221,"updated":"2012-12-12 17:49:13.000000000","message":"if we really only want err \u003d\u003d 0. Should this be raising an exception? Or is it expected for us to get 15 / 255 here?","commit_id":"8bf14a7239232c4060f4d69e14a3630949cf8993"},{"author":{"_account_id":5259,"name":"Erik Zaadi","email":"erik.zaadi@gmail.com","username":"erikzaadi"},"change_message_id":"0afcb6ff034a0956d1688be2f5f1310c17860cf9","unresolved":false,"context_lines":[{"line_number":218,"context_line":"            (out, err) \u003d self._run_iscsiadm_bare([\u0027-m\u0027, \u0027discovery\u0027, \u0027-t\u0027, \u0027sendtargets\u0027, \u0027-p\u0027,"},{"line_number":219,"context_line":"                iscsi_properties[\u0027target_portal\u0027]], check_exit_code\u003d[0, 15, 255])"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"            if err \u003d\u003d 0:"},{"line_number":222,"context_line":"                #login to all other available portals"},{"line_number":223,"context_line":"                for ip in [x.split()[0] for x in out.splitlines() if ip not in iscsi_properties[\u0027target_portal\u0027]]:"},{"line_number":224,"context_line":"                    props \u003d iscsi_properties.copy()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMX%2F%2F1ko%3D","line":221,"in_reply_to":"AAAAMX%2F%2F2cM%3D","updated":"2012-12-13 09:29:53.000000000","message":"We don\u0027t want an exception because we want it to fallback to single path device if the iSCSI portal does not support discovery.\nI\u0027ll look into the possible return codes for discovery (also relevant to the comment above) and make sure it catches only (and all) the bad exit codes, since as we want to fallback to single path device if there\u0027s a problem, not exit / fail.","commit_id":"8bf14a7239232c4060f4d69e14a3630949cf8993"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"f867f2aa113ed9c4f24ce9a2dc83d79d41f4e294","unresolved":false,"context_lines":[{"line_number":262,"context_line":"        if multipath_enabled:"},{"line_number":263,"context_line":"            #we get the multipath device instead of the single path device"},{"line_number":264,"context_line":"            self._run_multipath([\u0027-r\u0027], check_exit_code\u003d[0, 1])"},{"line_number":265,"context_line":"            (out, err) \u003d utils.execute(\u0027ls\u0027, *(\u0027-l\u0027, host_device),"},{"line_number":266,"context_line":"                                   check_exit_code\u003d[0, 1])"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"            device \u003d out.split(\"/\")[-1].replace(\"\\n\", \"\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMX%2F%2F2cs%3D","line":265,"updated":"2012-12-12 17:49:13.000000000","message":"why not just pass the params separately?\n (out, err) \u003d utils.execute(\u0027ls\u0027, \u0027-l\u0027, host_device,","commit_id":"8bf14a7239232c4060f4d69e14a3630949cf8993"},{"author":{"_account_id":5259,"name":"Erik Zaadi","email":"erik.zaadi@gmail.com","username":"erikzaadi"},"change_message_id":"0afcb6ff034a0956d1688be2f5f1310c17860cf9","unresolved":false,"context_lines":[{"line_number":262,"context_line":"        if multipath_enabled:"},{"line_number":263,"context_line":"            #we get the multipath device instead of the single path device"},{"line_number":264,"context_line":"            self._run_multipath([\u0027-r\u0027], check_exit_code\u003d[0, 1])"},{"line_number":265,"context_line":"            (out, err) \u003d utils.execute(\u0027ls\u0027, *(\u0027-l\u0027, host_device),"},{"line_number":266,"context_line":"                                   check_exit_code\u003d[0, 1])"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"            device \u003d out.split(\"/\")[-1].replace(\"\\n\", \"\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMX%2F%2F1kU%3D","line":265,"in_reply_to":"AAAAMX%2F%2F2cs%3D","updated":"2012-12-13 09:29:53.000000000","message":"Didn\u0027t know that worked, will change.","commit_id":"8bf14a7239232c4060f4d69e14a3630949cf8993"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"f867f2aa113ed9c4f24ce9a2dc83d79d41f4e294","unresolved":false,"context_lines":[{"line_number":263,"context_line":"            #we get the multipath device instead of the single path device"},{"line_number":264,"context_line":"            self._run_multipath([\u0027-r\u0027], check_exit_code\u003d[0, 1])"},{"line_number":265,"context_line":"            (out, err) \u003d utils.execute(\u0027ls\u0027, *(\u0027-l\u0027, host_device),"},{"line_number":266,"context_line":"                                   check_exit_code\u003d[0, 1])"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"            device \u003d out.split(\"/\")[-1].replace(\"\\n\", \"\")"},{"line_number":269,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMX%2F%2F2co%3D","line":266,"updated":"2012-12-12 17:49:13.000000000","message":"Why allow both 0 and 1 for all of the execute commands?","commit_id":"8bf14a7239232c4060f4d69e14a3630949cf8993"},{"author":{"_account_id":5259,"name":"Erik Zaadi","email":"erik.zaadi@gmail.com","username":"erikzaadi"},"change_message_id":"0afcb6ff034a0956d1688be2f5f1310c17860cf9","unresolved":false,"context_lines":[{"line_number":263,"context_line":"            #we get the multipath device instead of the single path device"},{"line_number":264,"context_line":"            self._run_multipath([\u0027-r\u0027], check_exit_code\u003d[0, 1])"},{"line_number":265,"context_line":"            (out, err) \u003d utils.execute(\u0027ls\u0027, *(\u0027-l\u0027, host_device),"},{"line_number":266,"context_line":"                                   check_exit_code\u003d[0, 1])"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"            device \u003d out.split(\"/\")[-1].replace(\"\\n\", \"\")"},{"line_number":269,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMX%2F%2F1kY%3D","line":266,"in_reply_to":"AAAAMX%2F%2F2co%3D","updated":"2012-12-13 09:29:53.000000000","message":"Multipath can exit with 1 if there\u0027s a problem with /lib/udev/scsi_id exitted with 1, but the command still works, meaning creates the correct device in /dev/dm-X and reports it on the list command.","commit_id":"8bf14a7239232c4060f4d69e14a3630949cf8993"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"f867f2aa113ed9c4f24ce9a2dc83d79d41f4e294","unresolved":false,"context_lines":[{"line_number":288,"context_line":"        multipath_enabled \u003d self._is_multipath_enabled()"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"        if multipath_enabled:"},{"line_number":291,"context_line":"            (out, err) \u003d utils.execute(\u0027ls\u0027, *(\u0027-a\u0027, \u0027/dev/disk/by-path/\u0027) ,"},{"line_number":292,"context_line":"                check_exit_code\u003d[0, 255])"},{"line_number":293,"context_line":"            if err is not 0:"},{"line_number":294,"context_line":"                # NOTE(erikzaadi): This is still problematic, the"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMX%2F%2F2ck%3D","line":291,"updated":"2012-12-12 17:49:13.000000000","message":"again why use *?","commit_id":"8bf14a7239232c4060f4d69e14a3630949cf8993"},{"author":{"_account_id":5259,"name":"Erik Zaadi","email":"erik.zaadi@gmail.com","username":"erikzaadi"},"change_message_id":"0afcb6ff034a0956d1688be2f5f1310c17860cf9","unresolved":false,"context_lines":[{"line_number":288,"context_line":"        multipath_enabled \u003d self._is_multipath_enabled()"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"        if multipath_enabled:"},{"line_number":291,"context_line":"            (out, err) \u003d utils.execute(\u0027ls\u0027, *(\u0027-a\u0027, \u0027/dev/disk/by-path/\u0027) ,"},{"line_number":292,"context_line":"                check_exit_code\u003d[0, 255])"},{"line_number":293,"context_line":"            if err is not 0:"},{"line_number":294,"context_line":"                # NOTE(erikzaadi): This is still problematic, the"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMX%2F%2F1kQ%3D","line":291,"in_reply_to":"AAAAMX%2F%2F2ck%3D","updated":"2012-12-13 09:29:53.000000000","message":"As per above, will change.","commit_id":"8bf14a7239232c4060f4d69e14a3630949cf8993"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"f867f2aa113ed9c4f24ce9a2dc83d79d41f4e294","unresolved":false,"context_lines":[{"line_number":293,"context_line":"            if err is not 0:"},{"line_number":294,"context_line":"                # NOTE(erikzaadi): This is still problematic, the"},{"line_number":295,"context_line":"                # /dev/disk/by-path/ip.. device are not always refreshing,"},{"line_number":296,"context_line":"                # even after iscsiadm node and session refresh"},{"line_number":297,"context_line":"                ips \u003d [entry.split(\"-\")[1] for entry in out.splitlines()"},{"line_number":298,"context_line":"                        if entry.startswith(\"ip-\") and iscsi_properties[\"target_iqn\"] in entry]"},{"line_number":299,"context_line":"                #filter away anything with more that one lun."}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMX%2F%2F2cc%3D","line":296,"updated":"2012-12-12 17:49:13.000000000","message":"is there any other way we could do this besides depending on ls?","commit_id":"8bf14a7239232c4060f4d69e14a3630949cf8993"},{"author":{"_account_id":5259,"name":"Erik Zaadi","email":"erik.zaadi@gmail.com","username":"erikzaadi"},"change_message_id":"0afcb6ff034a0956d1688be2f5f1310c17860cf9","unresolved":false,"context_lines":[{"line_number":293,"context_line":"            if err is not 0:"},{"line_number":294,"context_line":"                # NOTE(erikzaadi): This is still problematic, the"},{"line_number":295,"context_line":"                # /dev/disk/by-path/ip.. device are not always refreshing,"},{"line_number":296,"context_line":"                # even after iscsiadm node and session refresh"},{"line_number":297,"context_line":"                ips \u003d [entry.split(\"-\")[1] for entry in out.splitlines()"},{"line_number":298,"context_line":"                        if entry.startswith(\"ip-\") and iscsi_properties[\"target_iqn\"] in entry]"},{"line_number":299,"context_line":"                #filter away anything with more that one lun."}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMX%2F%2F1j8%3D","line":296,"in_reply_to":"AAAAMX%2F%2F2cc%3D","updated":"2012-12-13 09:29:53.000000000","message":"Hm, yes, we could do os.walk / os.path.listdir , and then os.path.realpath , same for the ls on line 265.\n\n/proc/partitions is being updated but not always /dev/disk/by-path/ip so I thought about cross referencing the result of the /dev/disk/by-path/ip with /proc/partitions and to log out leftovers (if there\u0027s no other lun for that portal).","commit_id":"8bf14a7239232c4060f4d69e14a3630949cf8993"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"a3556ac1ce652ee53128ae2b0d53a815807b5a1e","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        self._run_iscsiadm(iscsi_properties, (\u0027--op\u0027, \u0027delete\u0027),"},{"line_number":191,"context_line":"                           check_exit_code\u003d[0, 21, 255])"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    def _is_multipath_enabled(self):"},{"line_number":194,"context_line":"        try:"},{"line_number":195,"context_line":"            utils.execute(\u0027which\u0027, \u0027multipath\u0027)"},{"line_number":196,"context_line":"        except exception.ProcessExecutionError:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2Fezs%3D","line":193,"updated":"2013-01-19 13:06:30.000000000","message":"This test feels wrong to me, it\u0027s getting run every time and just depends on a binary existing (which seems like a bad test). Is it really expected that while nova-compute is running the host gets multipath installed and it changes from non multipath -\u003e multipath in the next volume request?","commit_id":"801ae6610e547115fdca3aa5d082da3e3e50a25f"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"a3556ac1ce652ee53128ae2b0d53a815807b5a1e","unresolved":false,"context_lines":[{"line_number":301,"context_line":""},{"line_number":302,"context_line":"            self._rescan_iscsi()"},{"line_number":303,"context_line":"        else:"},{"line_number":304,"context_line":"            self._connect_to_iscsi_portal(iscsi_properties)"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        host_device \u003d (\"/dev/disk/by-path/ip-%s-iscsi-%s-lun-%s\" %"},{"line_number":307,"context_line":"                       (iscsi_properties[\u0027target_portal\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2Fezo%3D","line":304,"updated":"2013-01-19 13:06:30.000000000","message":"so if you are going to take the bulk of the old connect_volume into a separate function, why leave the multipath piece of this statement in this function?","commit_id":"801ae6610e547115fdca3aa5d082da3e3e50a25f"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"e3fbb77a0afd166f03c98b656faa1b33fc403408","unresolved":false,"context_lines":[{"line_number":270,"context_line":"                               check_exit_code\u003d[0, 21, 255])"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"class LibvirtNFSVolumeDriver(LibvirtBaseVolumeDriver):"},{"line_number":274,"context_line":"    \"\"\"Class implements libvirt part of volume driver for NFS.\"\"\""},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"    def __init__(self, connection):"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAM3%2F%2B3qQ%3D","side":"PARENT","line":273,"updated":"2013-02-15 22:57:26.000000000","message":"looks like a bad rebase. Deleted some volume drivers.","commit_id":"fa0498bd246b5e97b8a9b18f33a8d16ce08e2f8a"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"3d1590085d4afbc9a62a39773b1eaf9f5110ad3a","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                default\u003dpaths.state_path_def(\u0027mnt\u0027),"},{"line_number":58,"context_line":"                help\u003d\u0027Dir where the glusterfs volume is mounted on the \u0027"},{"line_number":59,"context_line":"                      \u0027compute node\u0027),"},{"line_number":60,"context_line":"    cfg.BoolOpt(\u0027use_multipath\u0027,"},{"line_number":61,"context_line":"                default\u003dFalse,"},{"line_number":62,"context_line":"                help\u003d\u0027use multipath connection of the iSCSI volume\u0027),"},{"line_number":63,"context_line":"    ]"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAM3%2F%2B054%3D","line":60,"updated":"2013-02-18 12:54:06.000000000","message":"I don\u0027t think we want to add a generic use_multipath buried way in the libvirt driver. Please at least make this libvirt_use_multipath","commit_id":"e0b954f30cad3ebacc726b7eec65596cecae551f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"3f32cb1f577755e00fa14d826509f9415026b8b6","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                default\u003dpaths.state_path_def(\u0027mnt\u0027),"},{"line_number":58,"context_line":"                help\u003d\u0027Dir where the glusterfs volume is mounted on the \u0027"},{"line_number":59,"context_line":"                      \u0027compute node\u0027),"},{"line_number":60,"context_line":"    cfg.BoolOpt(\u0027use_multipath\u0027,"},{"line_number":61,"context_line":"                default\u003dFalse,"},{"line_number":62,"context_line":"                help\u003d\u0027use multipath connection of the iSCSI volume\u0027),"},{"line_number":63,"context_line":"    ]"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAM3%2F%2B0vk%3D","line":60,"in_reply_to":"AAAAM3%2F%2B054%3D","updated":"2013-02-18 14:39:46.000000000","message":"Or better, libvirt_iscsi_use_multipath","commit_id":"e0b954f30cad3ebacc726b7eec65596cecae551f"}]}
