)]}'
{"cinder/tests/unit/test_huawei_drivers.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"def3df4215bc3f4b1b3df270e62cb3610a79f528","unresolved":false,"context_lines":[{"line_number":2156,"context_line":""},{"line_number":2157,"context_line":"        configuration \u003d mock.Mock(spec \u003d conf.Configuration)"},{"line_number":2158,"context_line":"        configuration.hypermetro_devices \u003d hypermetro_devices"},{"line_number":2159,"context_line":"        self.stubs.Set(time, \u0027sleep\u0027, Fake_sleep)"},{"line_number":2160,"context_line":"        driver \u003d FakeISCSIStorage(configuration \u003d self.configuration)"},{"line_number":2161,"context_line":"        driver.do_setup()"},{"line_number":2162,"context_line":"        driver.configuration.iscsi_info \u003d iscsi_info"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_65ba21c2","line":2159,"updated":"2016-06-07 10:34:10.000000000","message":"Please, do not use mox in new tests. You should use mock instead if it","commit_id":"a02e3168d8d4327f37fa1ecaacfcbf9656dc6e2a"},{"author":{"_account_id":17718,"name":"Lallana","email":"gaozhiqiang2@huawei.com","username":"Lallana"},"change_message_id":"c999eb975aad876cfaccc957433d7588b2ae53c7","unresolved":false,"context_lines":[{"line_number":2156,"context_line":""},{"line_number":2157,"context_line":"        configuration \u003d mock.Mock(spec \u003d conf.Configuration)"},{"line_number":2158,"context_line":"        configuration.hypermetro_devices \u003d hypermetro_devices"},{"line_number":2159,"context_line":"        self.stubs.Set(time, \u0027sleep\u0027, Fake_sleep)"},{"line_number":2160,"context_line":"        driver \u003d FakeISCSIStorage(configuration \u003d self.configuration)"},{"line_number":2161,"context_line":"        driver.do_setup()"},{"line_number":2162,"context_line":"        driver.configuration.iscsi_info \u003d iscsi_info"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_e806b3cc","line":2159,"in_reply_to":"7aa08908_65ba21c2","updated":"2016-06-08 03:32:39.000000000","message":"Thanks for your review, I will fix it soon.","commit_id":"a02e3168d8d4327f37fa1ecaacfcbf9656dc6e2a"}],"cinder/volume/drivers/huawei/rest_client.py":[{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"ad0d1ce0260661d1e4162bb012dfbb3e62beeb24","unresolved":false,"context_lines":[{"line_number":1223,"context_line":"        if multipath:"},{"line_number":1224,"context_line":"            for ini in self.iscsi_info:"},{"line_number":1225,"context_line":"                if ini[\u0027Name\u0027] \u003d\u003d initiator:"},{"line_number":1226,"context_line":"                    for key in ini:"},{"line_number":1227,"context_line":"                        if key \u003d\u003d \u0027TargetPortGroup\u0027:"},{"line_number":1228,"context_line":"                            portgroup \u003d ini[\u0027TargetPortGroup\u0027]"},{"line_number":1229,"context_line":"            if portgroup:"},{"line_number":1230,"context_line":"                portgroup_id \u003d self.get_tgt_port_group(portgroup)"},{"line_number":1231,"context_line":"                temp_tgt_ips \u003d self._get_tgt_ip_from_portgroup(portgroup_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_da05dd79","line":1228,"range":{"start_line":1226,"start_character":20,"end_line":1228,"end_character":62},"updated":"2016-06-16 10:03:51.000000000","message":"Should be use:\nportgroup \u003d ini.get(\u0027TargetPortGroup\u0027)","commit_id":"f12e960612db990a1263b2635a9d92308c85991f"},{"author":{"_account_id":17718,"name":"Lallana","email":"gaozhiqiang2@huawei.com","username":"Lallana"},"change_message_id":"1139a23fc5b4ce14f9bf4e01d7a609549fc4f5c6","unresolved":false,"context_lines":[{"line_number":1223,"context_line":"        if multipath:"},{"line_number":1224,"context_line":"            for ini in self.iscsi_info:"},{"line_number":1225,"context_line":"                if ini[\u0027Name\u0027] \u003d\u003d initiator:"},{"line_number":1226,"context_line":"                    for key in ini:"},{"line_number":1227,"context_line":"                        if key \u003d\u003d \u0027TargetPortGroup\u0027:"},{"line_number":1228,"context_line":"                            portgroup \u003d ini[\u0027TargetPortGroup\u0027]"},{"line_number":1229,"context_line":"            if portgroup:"},{"line_number":1230,"context_line":"                portgroup_id \u003d self.get_tgt_port_group(portgroup)"},{"line_number":1231,"context_line":"                temp_tgt_ips \u003d self._get_tgt_ip_from_portgroup(portgroup_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a9d85d2_6a7c0e21","line":1228,"range":{"start_line":1226,"start_character":20,"end_line":1228,"end_character":62},"in_reply_to":"7aa08908_da05dd79","updated":"2016-06-20 09:39:30.000000000","message":"Yes, it should be changed.","commit_id":"f12e960612db990a1263b2635a9d92308c85991f"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"ad0d1ce0260661d1e4162bb012dfbb3e62beeb24","unresolved":false,"context_lines":[{"line_number":1294,"context_line":"        info_list \u003d []"},{"line_number":1295,"context_line":"        target_iqns \u003d []"},{"line_number":1296,"context_line":"        target_ips \u003d []"},{"line_number":1297,"context_line":"        if result[\u0027error\u0027][\u0027code\u0027] !\u003d 0:"},{"line_number":1298,"context_line":"            LOG.warning(_LW(\"Can\u0027t find target info from rest.\"))"},{"line_number":1299,"context_line":"            return (target_iqns, target_ips)"},{"line_number":1300,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_3a0ea1e5","line":1297,"range":{"start_line":1297,"start_character":11,"end_line":1297,"end_character":39},"updated":"2016-06-16 10:03:51.000000000","message":"specific error_code locate \"Can\u0027t find target info from rest\" is needed.","commit_id":"f12e960612db990a1263b2635a9d92308c85991f"},{"author":{"_account_id":17718,"name":"Lallana","email":"gaozhiqiang2@huawei.com","username":"Lallana"},"change_message_id":"1139a23fc5b4ce14f9bf4e01d7a609549fc4f5c6","unresolved":false,"context_lines":[{"line_number":1294,"context_line":"        info_list \u003d []"},{"line_number":1295,"context_line":"        target_iqns \u003d []"},{"line_number":1296,"context_line":"        target_ips \u003d []"},{"line_number":1297,"context_line":"        if result[\u0027error\u0027][\u0027code\u0027] !\u003d 0:"},{"line_number":1298,"context_line":"            LOG.warning(_LW(\"Can\u0027t find target info from rest.\"))"},{"line_number":1299,"context_line":"            return (target_iqns, target_ips)"},{"line_number":1300,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a9d85d2_6a2525c1","line":1297,"range":{"start_line":1297,"start_character":11,"end_line":1297,"end_character":39},"in_reply_to":"7aa08908_3a0ea1e5","updated":"2016-06-20 09:39:30.000000000","message":"There is no specific error_code for this rest, but I the log of it should be changed.","commit_id":"f12e960612db990a1263b2635a9d92308c85991f"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"ad0d1ce0260661d1e4162bb012dfbb3e62beeb24","unresolved":false,"context_lines":[{"line_number":1315,"context_line":"            ip_info \u003d target_iqn.split(\":\")"},{"line_number":1316,"context_line":"            target_ip \u003d ip_info[-1]"},{"line_number":1317,"context_line":"            target_ips.append(target_ip)"},{"line_number":1318,"context_line":"        return (target_iqns, target_ips)"},{"line_number":1319,"context_line":""},{"line_number":1320,"context_line":"    def _get_tgt_iqn_from_rest(self, target_ip):"},{"line_number":1321,"context_line":"        url \u003d \"/iscsi_tgt_port\""}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_f4771e39","line":1318,"range":{"start_line":1318,"start_character":16,"end_line":1318,"end_character":27},"updated":"2016-06-16 10:03:51.000000000","message":"\"target_iqns\" is unused. It\u0027s no need to return.","commit_id":"f12e960612db990a1263b2635a9d92308c85991f"},{"author":{"_account_id":17718,"name":"Lallana","email":"gaozhiqiang2@huawei.com","username":"Lallana"},"change_message_id":"1139a23fc5b4ce14f9bf4e01d7a609549fc4f5c6","unresolved":false,"context_lines":[{"line_number":1315,"context_line":"            ip_info \u003d target_iqn.split(\":\")"},{"line_number":1316,"context_line":"            target_ip \u003d ip_info[-1]"},{"line_number":1317,"context_line":"            target_ips.append(target_ip)"},{"line_number":1318,"context_line":"        return (target_iqns, target_ips)"},{"line_number":1319,"context_line":""},{"line_number":1320,"context_line":"    def _get_tgt_iqn_from_rest(self, target_ip):"},{"line_number":1321,"context_line":"        url \u003d \"/iscsi_tgt_port\""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a9d85d2_3509c22d","line":1318,"range":{"start_line":1318,"start_character":16,"end_line":1318,"end_character":27},"in_reply_to":"7aa08908_f4771e39","updated":"2016-06-20 09:39:30.000000000","message":"Yes, it is redundant.","commit_id":"f12e960612db990a1263b2635a9d92308c85991f"}]}
