)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"b12d3232d31d28f414416a9fbbc0eaaada968f20","unresolved":false,"context_lines":[{"line_number":12,"context_line":"This is critical for the attach_volume feature to work with"},{"line_number":13,"context_line":"iscsi supported cinder drivers."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Fixes: bug #1235112"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I60c06ae651bb2eb6d466a5ca61a09f289c21d1a3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAATH%2F%2Flco%3D","line":15,"updated":"2013-10-14 08:24:45.000000000","message":"The correct syntax is Closes-bug: #","commit_id":"902bddd1abd6c48d34c65a27a81f4642942a2b0c"},{"author":{"_account_id":8334,"name":"Noorul Islam K M","email":"noorul@noorul.com","username":"noorul"},"change_message_id":"88c3bf1c301eab325dec6dd27d4df047461c4bf7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Sabari Kumar Murugesan \u003csmurugesan@vmware.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-11-12 09:28:40 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"VMware: iscsi target discovery fails while attaching volumes"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"VMware Drivers are unable to discover iscsi targets because"},{"line_number":10,"context_line":"the api calls fail to specify the iscsi server location"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"AAAATn%2F%2FOII%3D","line":7,"updated":"2013-11-12 17:59:03.000000000","message":"s/iscsi/iSCSI","commit_id":"85d06eb27307167e90ace6671e15944f7c451d45"}],"nova/tests/virt/vmwareapi/test_vmwareapi.py":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"b12d3232d31d28f414416a9fbbc0eaaada968f20","unresolved":false,"context_lines":[{"line_number":940,"context_line":"        # Rescan HBA with same portal"},{"line_number":941,"context_line":"        volume_util.rescan_iscsi_hba(self.conn._session, None,"},{"line_number":942,"context_line":"                                     fake_target_portal)"},{"line_number":943,"context_line":"        self.assertEquals(1, len(iscsi_hba.configuredSendTarget))"},{"line_number":944,"context_line":""},{"line_number":945,"context_line":"    def test_find_st(self):"},{"line_number":946,"context_line":"        data \u003d {\u0027target_portal\u0027: \u0027fake_target_host:port\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2Flc0%3D","line":943,"updated":"2013-10-14 08:24:45.000000000","message":"pls using assertEqual for python3 compatibility","commit_id":"902bddd1abd6c48d34c65a27a81f4642942a2b0c"}],"nova/virt/vmwareapi/volume_util.py":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"b12d3232d31d28f414416a9fbbc0eaaada968f20","unresolved":false,"context_lines":[{"line_number":196,"context_line":"    (send_tgt.address, send_tgt.port) \u003d target_portal.split(\u0027:\u0027)"},{"line_number":197,"context_line":"    LOG.debug(_(\"Adding iSCSI host %s to send targets\") % send_tgt.address)"},{"line_number":198,"context_line":"    session._call_method(session._get_vim(), \"AddInternetScsiSendTargets\","},{"line_number":199,"context_line":"        storage_system_mor, iScsiHbaDevice\u003dhba_device, targets\u003d[send_tgt])"},{"line_number":200,"context_line":"    LOG.debug(_(\"Added iSCSI host to send targets\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FldE%3D","line":199,"updated":"2013-10-14 08:24:45.000000000","message":"nit: pep8 alignment","commit_id":"902bddd1abd6c48d34c65a27a81f4642942a2b0c"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"b12d3232d31d28f414416a9fbbc0eaaada968f20","unresolved":false,"context_lines":[{"line_number":197,"context_line":"    LOG.debug(_(\"Adding iSCSI host %s to send targets\") % send_tgt.address)"},{"line_number":198,"context_line":"    session._call_method(session._get_vim(), \"AddInternetScsiSendTargets\","},{"line_number":199,"context_line":"        storage_system_mor, iScsiHbaDevice\u003dhba_device, targets\u003d[send_tgt])"},{"line_number":200,"context_line":"    LOG.debug(_(\"Added iSCSI host to send targets\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FldI%3D","line":200,"updated":"2013-10-14 08:24:45.000000000","message":"It would be sufficient enough to log host here as the line 197 does, and remove line 197","commit_id":"902bddd1abd6c48d34c65a27a81f4642942a2b0c"},{"author":{"_account_id":8334,"name":"Noorul Islam K M","email":"noorul@noorul.com","username":"noorul"},"change_message_id":"11f6f8434259377c12a0f2d517992dba1d8d26e5","unresolved":false,"context_lines":[{"line_number":156,"context_line":"                # Check if iscsi host is already in the send target host list"},{"line_number":157,"context_line":"                send_targets \u003d []"},{"line_number":158,"context_line":"                if hasattr(hba, \u0027configuredSendTarget\u0027):"},{"line_number":159,"context_line":"                    send_targets \u003d hba.configuredSendTarget"},{"line_number":160,"context_line":"                for send_tgt in send_targets:"},{"line_number":161,"context_line":"                    send_tgt_portal \u003d \u0027%s:%s\u0027 % (send_tgt.address,"},{"line_number":162,"context_line":"                                                 send_tgt.port)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2F3Es%3D","line":159,"updated":"2013-10-26 16:41:31.000000000","message":"May be you should avoid if statement by using getattr with default value","commit_id":"7229576593122e83e8a432252d4269f18d6010f5"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"e7a610bb1c76e621ab48ae54c47520effa729c5b","unresolved":false,"context_lines":[{"line_number":156,"context_line":"                # Check if iscsi host is already in the send target host list"},{"line_number":157,"context_line":"                send_targets \u003d []"},{"line_number":158,"context_line":"                if hasattr(hba, \u0027configuredSendTarget\u0027):"},{"line_number":159,"context_line":"                    send_targets \u003d hba.configuredSendTarget"},{"line_number":160,"context_line":"                for send_tgt in send_targets:"},{"line_number":161,"context_line":"                    send_tgt_portal \u003d \u0027%s:%s\u0027 % (send_tgt.address,"},{"line_number":162,"context_line":"                                                 send_tgt.port)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2Fobk%3D","line":159,"in_reply_to":"AAAATn%2F%2F3Es%3D","updated":"2013-10-31 06:40:07.000000000","message":"The attribute may or may not be set on the hba object. With getattr, AttributeError needs to be handled. I think using hasattr is ideal. Let me know. Thanks!\n\nRef:- http://pubs.vmware.com/vsphere-51/index.jsp#com.vmware.wssdk.apiref.doc/vim.host.InternetScsiHba.html#configuredSendTarget","commit_id":"7229576593122e83e8a432252d4269f18d6010f5"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"3c6516723b31917f8573b841f6578eff3f9159fd","unresolved":false,"context_lines":[{"line_number":156,"context_line":"                # Check if iscsi host is already in the send target host list"},{"line_number":157,"context_line":"                send_targets \u003d []"},{"line_number":158,"context_line":"                if hasattr(hba, \u0027configuredSendTarget\u0027):"},{"line_number":159,"context_line":"                    send_targets \u003d hba.configuredSendTarget"},{"line_number":160,"context_line":"                for send_tgt in send_targets:"},{"line_number":161,"context_line":"                    send_tgt_portal \u003d \u0027%s:%s\u0027 % (send_tgt.address,"},{"line_number":162,"context_line":"                                                 send_tgt.port)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FmbM%3D","line":159,"in_reply_to":"AAAATn%2F%2FoYw%3D","updated":"2013-10-31 16:23:09.000000000","message":"Done","commit_id":"7229576593122e83e8a432252d4269f18d6010f5"},{"author":{"_account_id":8334,"name":"Noorul Islam K M","email":"noorul@noorul.com","username":"noorul"},"change_message_id":"61d6dfc6322993e2ed514a5d6c2c06b23bce58e0","unresolved":false,"context_lines":[{"line_number":156,"context_line":"                # Check if iscsi host is already in the send target host list"},{"line_number":157,"context_line":"                send_targets \u003d []"},{"line_number":158,"context_line":"                if hasattr(hba, \u0027configuredSendTarget\u0027):"},{"line_number":159,"context_line":"                    send_targets \u003d hba.configuredSendTarget"},{"line_number":160,"context_line":"                for send_tgt in send_targets:"},{"line_number":161,"context_line":"                    send_tgt_portal \u003d \u0027%s:%s\u0027 % (send_tgt.address,"},{"line_number":162,"context_line":"                                                 send_tgt.port)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FoYw%3D","line":159,"in_reply_to":"AAAATn%2F%2Fobk%3D","updated":"2013-10-31 06:51:31.000000000","message":"class Foo:\n    def __init__(self):\n        self.bar \u003d \"FooBar\"\n\nobj \u003d Foo()\n\nassert obj.bar \u003d\u003d \u0027FooBar\u0027\n\nassert getattr(obj, \u0027foo\u0027, \u0027FooBarFoo\u0027) \u003d\u003d \u0027FooBarFoo\u0027\n\n\nAm I missing something?","commit_id":"7229576593122e83e8a432252d4269f18d6010f5"},{"author":{"_account_id":8334,"name":"Noorul Islam K M","email":"noorul@noorul.com","username":"noorul"},"change_message_id":"11f6f8434259377c12a0f2d517992dba1d8d26e5","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                for send_tgt in send_targets:"},{"line_number":161,"context_line":"                    send_tgt_portal \u003d \u0027%s:%s\u0027 % (send_tgt.address,"},{"line_number":162,"context_line":"                                                 send_tgt.port)"},{"line_number":163,"context_line":"                    if target_portal \u003d\u003d send_tgt_portal:"},{"line_number":164,"context_line":"                        break"},{"line_number":165,"context_line":"                else:"},{"line_number":166,"context_line":"                    # Add the iscsi host to send target host list"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2F3EU%3D","line":163,"updated":"2013-10-26 16:41:31.000000000","message":"Can\u0027t we use list comprehension here and avoid if and break?","commit_id":"7229576593122e83e8a432252d4269f18d6010f5"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"e7a610bb1c76e621ab48ae54c47520effa729c5b","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                for send_tgt in send_targets:"},{"line_number":161,"context_line":"                    send_tgt_portal \u003d \u0027%s:%s\u0027 % (send_tgt.address,"},{"line_number":162,"context_line":"                                                 send_tgt.port)"},{"line_number":163,"context_line":"                    if target_portal \u003d\u003d send_tgt_portal:"},{"line_number":164,"context_line":"                        break"},{"line_number":165,"context_line":"                else:"},{"line_number":166,"context_line":"                    # Add the iscsi host to send target host list"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2Foak%3D","line":163,"in_reply_to":"AAAATn%2F%2F3EU%3D","updated":"2013-10-31 06:40:07.000000000","message":"There is an else condition to the for construct. We need to add the target portal, if it\u0027s not a defined in send_targets. Let me know how you want  me to modify this using List Comprehension?","commit_id":"7229576593122e83e8a432252d4269f18d6010f5"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"3c6516723b31917f8573b841f6578eff3f9159fd","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                for send_tgt in send_targets:"},{"line_number":161,"context_line":"                    send_tgt_portal \u003d \u0027%s:%s\u0027 % (send_tgt.address,"},{"line_number":162,"context_line":"                                                 send_tgt.port)"},{"line_number":163,"context_line":"                    if target_portal \u003d\u003d send_tgt_portal:"},{"line_number":164,"context_line":"                        break"},{"line_number":165,"context_line":"                else:"},{"line_number":166,"context_line":"                    # Add the iscsi host to send target host list"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2Fmas%3D","line":163,"in_reply_to":"AAAATn%2F%2FoYg%3D","updated":"2013-10-31 16:23:09.000000000","message":"Hi, I am still not clear what I am missing here. I am not trying to create a list. I am trying to iterate and check if there is a match for the target_portal. If there is no match in the list, I need to add the same using _add_iscsi_send_target_host. Can you be a bit elaborate on what change you would like to see ?","commit_id":"7229576593122e83e8a432252d4269f18d6010f5"},{"author":{"_account_id":8334,"name":"Noorul Islam K M","email":"noorul@noorul.com","username":"noorul"},"change_message_id":"61d6dfc6322993e2ed514a5d6c2c06b23bce58e0","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                for send_tgt in send_targets:"},{"line_number":161,"context_line":"                    send_tgt_portal \u003d \u0027%s:%s\u0027 % (send_tgt.address,"},{"line_number":162,"context_line":"                                                 send_tgt.port)"},{"line_number":163,"context_line":"                    if target_portal \u003d\u003d send_tgt_portal:"},{"line_number":164,"context_line":"                        break"},{"line_number":165,"context_line":"                else:"},{"line_number":166,"context_line":"                    # Add the iscsi host to send target host list"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FoYg%3D","line":163,"in_reply_to":"AAAATn%2F%2Foak%3D","updated":"2013-10-31 06:51:31.000000000","message":"I would prefer list comprehension.","commit_id":"7229576593122e83e8a432252d4269f18d6010f5"},{"author":{"_account_id":8334,"name":"Noorul Islam K M","email":"noorul@noorul.com","username":"noorul"},"change_message_id":"d1447a7f226a1d18889d488a9d36000e5ff7d089","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                else:"},{"line_number":164,"context_line":"                    # Add the iscsi host to send target host list"},{"line_number":165,"context_line":"                    _add_iscsi_send_target_host(session, storage_system_mor,"},{"line_number":166,"context_line":"                                                hba_device, target_portal)"},{"line_number":167,"context_line":"            break"},{"line_number":168,"context_line":"    else:"},{"line_number":169,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2FmWM%3D","line":166,"updated":"2013-10-31 16:40:40.000000000","message":"I think the following is easy to read.\n\nclass Foo:\n    def __init__(self, address, port):\n        self.address \u003d address\n        self.port \u003d port\n\ntarget_portal \u003d \"B:2\"\n\nsend_targets \u003d [Foo(\"A\", 1), Foo(\"B\", 2), Foo(\"C\", 3)]\n\nif target_portal in [\"%s:%s\" % (x.address, x.port) for x in send_targets]:\n    print \"Match!\"\nelse:\n    print \"No Match!\"","commit_id":"b619d3a2e74b23f83a0867e04acb4ff0fd267954"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"2586837e1fa14256f798a9d20bd52dbb4592b34c","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                else:"},{"line_number":164,"context_line":"                    # Add the iscsi host to send target host list"},{"line_number":165,"context_line":"                    _add_iscsi_send_target_host(session, storage_system_mor,"},{"line_number":166,"context_line":"                                                hba_device, target_portal)"},{"line_number":167,"context_line":"            break"},{"line_number":168,"context_line":"    else:"},{"line_number":169,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2FOJM%3D","line":166,"in_reply_to":"AAAATn%2F%2FmWM%3D","updated":"2013-11-12 17:30:37.000000000","message":"Hi Noorul\n\nThanks for the explanation, I found your suggestion reasonable. Have pushed a new patch!\n\nThanks\nSabari","commit_id":"b619d3a2e74b23f83a0867e04acb4ff0fd267954"},{"author":{"_account_id":8334,"name":"Noorul Islam K M","email":"noorul@noorul.com","username":"noorul"},"change_message_id":"88c3bf1c301eab325dec6dd27d4df047461c4bf7","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    for hba in host_hbas:"},{"line_number":153,"context_line":"        if hba.__class__.__name__ \u003d\u003d \u0027HostInternetScsiHba\u0027:"},{"line_number":154,"context_line":"            hba_device \u003d hba.device"},{"line_number":155,"context_line":"            if target_portal:"},{"line_number":156,"context_line":"                # Check if iscsi host is already in the send target host list"},{"line_number":157,"context_line":"                send_targets \u003d getattr(hba, \u0027configuredSendTarget\u0027, [])"},{"line_number":158,"context_line":"                send_tgt_portals \u003d [\u0027%s:%s\u0027 % (s.address, s.port) for s in"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2FOA0%3D","line":155,"updated":"2013-11-12 17:59:03.000000000","message":"Can this if condition be moved out of this for loop? I will take a re-look at this code and comment.","commit_id":"85d06eb27307167e90ace6671e15944f7c451d45"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"c27208286f25a3e150e3716ffac433bb25c9d63b","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    for hba in host_hbas:"},{"line_number":153,"context_line":"        if hba.__class__.__name__ \u003d\u003d \u0027HostInternetScsiHba\u0027:"},{"line_number":154,"context_line":"            hba_device \u003d hba.device"},{"line_number":155,"context_line":"            if target_portal:"},{"line_number":156,"context_line":"                # Check if iscsi host is already in the send target host list"},{"line_number":157,"context_line":"                send_targets \u003d getattr(hba, \u0027configuredSendTarget\u0027, [])"},{"line_number":158,"context_line":"                send_tgt_portals \u003d [\u0027%s:%s\u0027 % (s.address, s.port) for s in"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2FN%2Bs%3D","line":155,"in_reply_to":"AAAATn%2F%2FOA0%3D","updated":"2013-11-12 18:08:41.000000000","message":"Do you mean out of the for loop in L152 ?  I don\u0027t think it\u0027s right because target_portal makes sense only within the context of a iscsi hba device. In that case, we need to check again if the device found was an iscsi adapter.","commit_id":"85d06eb27307167e90ace6671e15944f7c451d45"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"4f45d49953eab6f4ce4c761b93f80a44c116423e","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    \"\"\""},{"line_number":135,"context_line":"    Rescan the iSCSI HBA to discover iSCSI targets."},{"line_number":136,"context_line":"    \"\"\""},{"line_number":137,"context_line":"    host_mor \u003d vm_util.get_host_ref(session, cluster)"},{"line_number":138,"context_line":"    storage_system_mor \u003d session._call_method(vim_util, \"get_dynamic_property\","},{"line_number":139,"context_line":"                                              host_mor, \"HostSystem\","},{"line_number":140,"context_line":"                                              \"configManager.storageSystem\")"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATn%2F92nY%3D","line":137,"updated":"2013-12-05 08:25:24.000000000","message":"This does not pertain to the patch directly, but just something I noticed:\n\nIt looks like we are adding the sendtarget portal to the first iscsi HBA of the first host in the cluster, then rescanning on the same. Does that mean all discovered devices are only reachable through said host?","commit_id":"1e205a41e56f46211a78a5c5fb463ccd164c4b89"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"e090fca8cfa94e9c743dda63d5fed4f823ede7ca","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    \"\"\""},{"line_number":135,"context_line":"    Rescan the iSCSI HBA to discover iSCSI targets."},{"line_number":136,"context_line":"    \"\"\""},{"line_number":137,"context_line":"    host_mor \u003d vm_util.get_host_ref(session, cluster)"},{"line_number":138,"context_line":"    storage_system_mor \u003d session._call_method(vim_util, \"get_dynamic_property\","},{"line_number":139,"context_line":"                                              host_mor, \"HostSystem\","},{"line_number":140,"context_line":"                                              \"configManager.storageSystem\")"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATn%2F90As%3D","line":137,"in_reply_to":"AAAATn%2F92nY%3D","updated":"2013-12-05 16:53:56.000000000","message":"Actually, we need to add this target portal to the host on which the VM exists. that needs an additional change and I didn\u0027t keep it part of this patch for the same reason.","commit_id":"1e205a41e56f46211a78a5c5fb463ccd164c4b89"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a3080a7f240668adc518ed4be76272dee468e260","unresolved":false,"context_lines":[{"line_number":188,"context_line":"    client_factory \u003d session._get_vim().client.factory"},{"line_number":189,"context_line":"    send_tgt \u003d client_factory.create(\u0027ns0:HostInternetScsiHbaSendTarget\u0027)"},{"line_number":190,"context_line":"    (send_tgt.address, send_tgt.port) \u003d target_portal.split(\u0027:\u0027)"},{"line_number":191,"context_line":"    LOG.debug(_(\"Adding iSCSI host %s to send targets\") % send_tgt.address)"},{"line_number":192,"context_line":"    session._call_method("},{"line_number":193,"context_line":"        session._get_vim(), \"AddInternetScsiSendTargets\", storage_system_mor,"},{"line_number":194,"context_line":"        iScsiHbaDevice\u003dhba_device, targets\u003d[send_tgt])"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAT3%2F%2F8Fs%3D","line":191,"updated":"2013-12-26 18:37:21.000000000","message":"can you please use , instead of %","commit_id":"70dd27a1fd8175d38c9b5403b118dcafe3f2fe20"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"8c3cfe9775854318d171c2d51a3a0170ae1bf199","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    return result"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"def rescan_iscsi_hba(session, cluster\u003dNone, target_portal\u003dNone):"},{"line_number":134,"context_line":"    \"\"\""},{"line_number":135,"context_line":"    Rescan the iSCSI HBA to discover iSCSI targets."},{"line_number":136,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAT3%2F%2FtOE%3D","line":133,"updated":"2014-01-03 05:31:42.000000000","message":"Seems there is no file testing against volume_util.py, I think that we need to add a new test file but can handle it in another patch.","commit_id":"af1d6ec0e830ee058af5ace8bfec304a511cc130"}]}
