)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"82a51cddf16799a565213b8bcf934a8937627e46","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"SmartX is an Important feature in HuaweiStorage."},{"line_number":10,"context_line":"It is composed of several small features such as SmartQos,"},{"line_number":11,"context_line":"SmartTier,Smart Partition,Smart Cache. The Blueprint is aim to"},{"line_number":12,"context_line":"implement the above features."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I4bc8b227ff0b24847b8c8b30174d23b4e6d51af1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3afb71cf_9eeb8378","line":11,"updated":"2015-06-08 09:16:49.000000000","message":"is aim \u003d\u003e aims","commit_id":"5a48cf918b3f1777cf8aa47eed399cd5f01f2b73"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"8226a53079a0c095dbdcfdd933aaa72fcaf22fbc","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support SmartX for Huawei volume driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"SmartX is an Important feature in HuaweiStorage."},{"line_number":10,"context_line":"It is composed of several small features such as SmartQos,"},{"line_number":11,"context_line":"SmartTier,Smart Partition,Smart Cache. The Blueprint aims to"},{"line_number":12,"context_line":"implement the above features."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"fa32b979_dd06ea1f","line":9,"updated":"2015-06-15 17:26:34.000000000","message":"s/Important/important","commit_id":"c48376954640752bd61d099dab0b9e1dcb7e6964"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"a8070a1862262a9face5e9c11fe9767d722c8aa9","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support SmartX for Huawei volume driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"SmartX is an Important feature in HuaweiStorage."},{"line_number":10,"context_line":"It is composed of several small features such as SmartQos,"},{"line_number":11,"context_line":"SmartTier,Smart Partition,Smart Cache. The Blueprint aims to"},{"line_number":12,"context_line":"implement the above features."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"fa32b979_77c6c44a","line":9,"in_reply_to":"fa32b979_dd06ea1f","updated":"2015-06-16 08:26:42.000000000","message":"Done","commit_id":"c48376954640752bd61d099dab0b9e1dcb7e6964"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"d4e5114b1bf22609015350362036753b77f73dfa","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add smartX support for Huawei driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch aims to add SmartX features for Huawei volume driver,"},{"line_number":10,"context_line":"including SmartQos, SmartTier, Smart Partition and Smart Cache."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Co-Authored-By: Bob-OpenStack liuxinguo@huawei.com"},{"line_number":13,"context_line":"Change-Id: I4bc8b227ff0b24847b8c8b30174d23b4e6d51af1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"3a50d1a3_bf702141","line":10,"updated":"2015-07-23 07:28:42.000000000","message":"s/Smart Partition/SmartPartition\ns/Smart Cache/SmartCache","commit_id":"6c0c2eff0b6f5dd59e00a423d5857a5816b25443"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"a91dfad6e57620989066175e2aa29de9cc7bea25","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add smartX support for Huawei driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch aims to add SmartX features for Huawei volume driver,"},{"line_number":10,"context_line":"including SmartQos, SmartTier, Smart Partition and Smart Cache."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Co-Authored-By: Bob-OpenStack liuxinguo@huawei.com"},{"line_number":13,"context_line":"Change-Id: I4bc8b227ff0b24847b8c8b30174d23b4e6d51af1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"3a50d1a3_d0cdda66","line":10,"in_reply_to":"3a50d1a3_bf702141","updated":"2015-07-23 08:12:25.000000000","message":"Done","commit_id":"6c0c2eff0b6f5dd59e00a423d5857a5816b25443"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"a175ec89f9a99b566b4a8e2cc43ed40252ab6540","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     liuxinguo \u003cliuxinguo@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-08-01 00:13:42 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add smartX support for Huawei driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch aims to add SmartX features for Huawei driver,"},{"line_number":10,"context_line":"including SmartQos, SmartTier, SmartPartition and SmartCache."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":36,"id":"3a50d1a3_d1177d43","line":7,"updated":"2015-08-01 12:08:04.000000000","message":"s/smartX/SmartX? keep consistent with the bp description \"SmartX\"?","commit_id":"4431b38d44c9b4cfb590717cd7d90c738ee5d03e"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"9ed4e17b1148b6918d3766fc969a50d15ce1efd2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     liuxinguo \u003cliuxinguo@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-08-01 00:13:42 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add smartX support for Huawei driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch aims to add SmartX features for Huawei driver,"},{"line_number":10,"context_line":"including SmartQos, SmartTier, SmartPartition and SmartCache."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":36,"id":"3a50d1a3_b5897271","line":7,"in_reply_to":"3a50d1a3_d1177d43","updated":"2015-08-02 13:27:45.000000000","message":"Done","commit_id":"4431b38d44c9b4cfb590717cd7d90c738ee5d03e"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"1b653707eb87a49f81ddc74fa09848ebd8312fa0","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patch aims to add SmartX features for Huawei driver,"},{"line_number":10,"context_line":"including SmartQos, SmartTier, SmartPartition and SmartCache."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Also add _() translation markers at some place in this patch."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Co-Authored-By: Bob-OpenStack liuxinguo@huawei.com"},{"line_number":15,"context_line":"Change-Id: I4bc8b227ff0b24847b8c8b30174d23b4e6d51af1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":36,"id":"3a50d1a3_f4c38788","line":12,"updated":"2015-08-01 14:55:07.000000000","message":"no need of adding this as commit message because you are not adding this in existing code.\nYou are adding this as a part of new features.","commit_id":"4431b38d44c9b4cfb590717cd7d90c738ee5d03e"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"9ed4e17b1148b6918d3766fc969a50d15ce1efd2","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patch aims to add SmartX features for Huawei driver,"},{"line_number":10,"context_line":"including SmartQos, SmartTier, SmartPartition and SmartCache."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Also add _() translation markers at some place in this patch."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Co-Authored-By: Bob-OpenStack liuxinguo@huawei.com"},{"line_number":15,"context_line":"Change-Id: I4bc8b227ff0b24847b8c8b30174d23b4e6d51af1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":36,"id":"3a50d1a3_55e90e19","line":12,"in_reply_to":"3a50d1a3_f4c38788","updated":"2015-08-02 13:27:45.000000000","message":"Done","commit_id":"4431b38d44c9b4cfb590717cd7d90c738ee5d03e"}],"cinder/tests/unit/test_huawei_drivers.py":[{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"ad67006a2c1ff17208618fdca6c2acd8f500e365","unresolved":false,"context_lines":[{"line_number":904,"context_line":"                                                           test_volume)"},{"line_number":905,"context_line":"        self.assertEqual(lun_info[\u0027provider_location\u0027], \u00271\u0027)"},{"line_number":906,"context_line":"#        self.assertEqual(lun_info[\u0027lun_info\u0027][\u0027NAME\u0027],"},{"line_number":907,"context_line":"#                         \u00275mFHcBv4RkCcD+JyrWc0SA\u0027)"},{"line_number":908,"context_line":""},{"line_number":909,"context_line":"    def test_initialize_connection_success(self):"},{"line_number":910,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_fd487689","line":907,"updated":"2015-06-05 10:38:45.000000000","message":"Please remove the commented code.","commit_id":"ba3084ed0ee9af3e7e3e5229ffda28296fcb2977"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"8848c230c98ae4d56630d05313e4bc2dcac92b24","unresolved":false,"context_lines":[{"line_number":904,"context_line":"                                                           test_volume)"},{"line_number":905,"context_line":"        self.assertEqual(lun_info[\u0027provider_location\u0027], \u00271\u0027)"},{"line_number":906,"context_line":"#        self.assertEqual(lun_info[\u0027lun_info\u0027][\u0027NAME\u0027],"},{"line_number":907,"context_line":"#                         \u00275mFHcBv4RkCcD+JyrWc0SA\u0027)"},{"line_number":908,"context_line":""},{"line_number":909,"context_line":"    def test_initialize_connection_success(self):"},{"line_number":910,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_8251ebda","line":907,"in_reply_to":"3afb71cf_fd487689","updated":"2015-06-08 07:44:23.000000000","message":"Done","commit_id":"ba3084ed0ee9af3e7e3e5229ffda28296fcb2977"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"ad67006a2c1ff17208618fdca6c2acd8f500e365","unresolved":false,"context_lines":[{"line_number":1155,"context_line":"                                                           test_volume)"},{"line_number":1156,"context_line":"        self.assertEqual(lun_info[\u0027provider_location\u0027], \u00271\u0027)"},{"line_number":1157,"context_line":"#        self.assertEqual(lun_info[\u0027lun_info\u0027][\u0027NAME\u0027],"},{"line_number":1158,"context_line":"#                         \u00275mFHcBv4RkCcD+JyrWc0SA\u0027)"},{"line_number":1159,"context_line":""},{"line_number":1160,"context_line":"    def test_initialize_connection_success(self):"},{"line_number":1161,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_bd5b1e54","line":1158,"updated":"2015-06-05 10:38:45.000000000","message":"Same as above.","commit_id":"ba3084ed0ee9af3e7e3e5229ffda28296fcb2977"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"8848c230c98ae4d56630d05313e4bc2dcac92b24","unresolved":false,"context_lines":[{"line_number":1155,"context_line":"                                                           test_volume)"},{"line_number":1156,"context_line":"        self.assertEqual(lun_info[\u0027provider_location\u0027], \u00271\u0027)"},{"line_number":1157,"context_line":"#        self.assertEqual(lun_info[\u0027lun_info\u0027][\u0027NAME\u0027],"},{"line_number":1158,"context_line":"#                         \u00275mFHcBv4RkCcD+JyrWc0SA\u0027)"},{"line_number":1159,"context_line":""},{"line_number":1160,"context_line":"    def test_initialize_connection_success(self):"},{"line_number":1161,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_4262d3ae","line":1158,"in_reply_to":"3afb71cf_bd5b1e54","updated":"2015-06-08 07:44:23.000000000","message":"Done","commit_id":"ba3084ed0ee9af3e7e3e5229ffda28296fcb2977"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"38ad11fef68ba36cb120b742de3820eedc759682","unresolved":false,"context_lines":[{"line_number":645,"context_line":"        \"ID\":\"11\""},{"line_number":646,"context_line":"    }"},{"line_number":647,"context_line":"}"},{"line_number":648,"context_line":"\"\"\""},{"line_number":649,"context_line":"# mock login info map"},{"line_number":650,"context_line":"MAP_COMMAND_TO_FAKE_RESPONSE \u003d {}"},{"line_number":651,"context_line":"MAP_COMMAND_TO_FAKE_RESPONSE[\u0027/xx/sessions\u0027] \u003d ("}],"source_content_type":"text/x-python","patch_set":20,"id":"3a50d1a3_9e86e763","line":648,"updated":"2015-07-21 18:12:56.000000000","message":"i think we can add a blank line here","commit_id":"015d29f4d420a28adf53b008851533720570d8f6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"045048621c33c588576e081580687d8b5352c918","unresolved":false,"context_lines":[{"line_number":645,"context_line":"        \"ID\":\"11\""},{"line_number":646,"context_line":"    }"},{"line_number":647,"context_line":"}"},{"line_number":648,"context_line":"\"\"\""},{"line_number":649,"context_line":"# mock login info map"},{"line_number":650,"context_line":"MAP_COMMAND_TO_FAKE_RESPONSE \u003d {}"},{"line_number":651,"context_line":"MAP_COMMAND_TO_FAKE_RESPONSE[\u0027/xx/sessions\u0027] \u003d ("}],"source_content_type":"text/x-python","patch_set":20,"id":"3a50d1a3_56011169","line":648,"in_reply_to":"3a50d1a3_9e86e763","updated":"2015-07-22 02:44:27.000000000","message":"Sure, thanks.","commit_id":"015d29f4d420a28adf53b008851533720570d8f6"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"ced33b55a85d559dfd5c6522762b279f213fc589","unresolved":false,"context_lines":[{"line_number":44,"context_line":"               \u0027display_description\u0027: \u0027test volume\u0027,"},{"line_number":45,"context_line":"               \u0027volume_type_id\u0027: None,"},{"line_number":46,"context_line":"               \u0027provider_location\u0027: \u002711\u0027,"},{"line_number":47,"context_line":"               \u0027host\u0027: \u0027ubuntu001@backend001#OpenStack_Pool\u0027"},{"line_number":48,"context_line":"               }"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"test_snap \u003d {\u0027name\u0027: \u0027volume-21ec7341-9256-497b-97d9-ef48edcf0635\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a50d1a3_7229599a","line":47,"updated":"2015-07-23 13:35:26.000000000","message":"add ,","commit_id":"8175e664c868c10dc466bfc19cfb41ccd5854281"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"f1c192b60493335261006f1f9ad95ef5a344b5fe","unresolved":false,"context_lines":[{"line_number":44,"context_line":"               \u0027display_description\u0027: \u0027test volume\u0027,"},{"line_number":45,"context_line":"               \u0027volume_type_id\u0027: None,"},{"line_number":46,"context_line":"               \u0027provider_location\u0027: \u002711\u0027,"},{"line_number":47,"context_line":"               \u0027host\u0027: \u0027ubuntu001@backend001#OpenStack_Pool\u0027"},{"line_number":48,"context_line":"               }"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"test_snap \u003d {\u0027name\u0027: \u0027volume-21ec7341-9256-497b-97d9-ef48edcf0635\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a50d1a3_a30c1c43","line":47,"in_reply_to":"3a50d1a3_7229599a","updated":"2015-07-29 06:57:44.000000000","message":"agreed","commit_id":"8175e664c868c10dc466bfc19cfb41ccd5854281"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"ced33b55a85d559dfd5c6522762b279f213fc589","unresolved":false,"context_lines":[{"line_number":1157,"context_line":"    @mock.patch.object(huawei_utils, \u0027get_volume_params\u0027,"},{"line_number":1158,"context_line":"                       return_value\u003d{\u0027smarttier\u0027: \u0027true\u0027,"},{"line_number":1159,"context_line":"                                     \u0027smartcache\u0027: \u0027true\u0027,"},{"line_number":1160,"context_line":"                                     \u0027smartpartition\u0027: \u0027true\u0027,"},{"line_number":1161,"context_line":"                                     \u0027thin_provisioning\u0027: \u0027true\u0027,"},{"line_number":1162,"context_line":"                                     \u0027thick_provisioning\u0027: False,"},{"line_number":1163,"context_line":"                                     \u0027policy\u0027: \u00272\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a50d1a3_655c3519","line":1160,"updated":"2015-07-23 13:35:26.000000000","message":"suggest to use a Acer instead the return_value","commit_id":"8175e664c868c10dc466bfc19cfb41ccd5854281"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"f1c192b60493335261006f1f9ad95ef5a344b5fe","unresolved":false,"context_lines":[{"line_number":1157,"context_line":"    @mock.patch.object(huawei_utils, \u0027get_volume_params\u0027,"},{"line_number":1158,"context_line":"                       return_value\u003d{\u0027smarttier\u0027: \u0027true\u0027,"},{"line_number":1159,"context_line":"                                     \u0027smartcache\u0027: \u0027true\u0027,"},{"line_number":1160,"context_line":"                                     \u0027smartpartition\u0027: \u0027true\u0027,"},{"line_number":1161,"context_line":"                                     \u0027thin_provisioning\u0027: \u0027true\u0027,"},{"line_number":1162,"context_line":"                                     \u0027thick_provisioning\u0027: False,"},{"line_number":1163,"context_line":"                                     \u0027policy\u0027: \u00272\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a50d1a3_63061422","line":1160,"in_reply_to":"3a50d1a3_655c3519","updated":"2015-07-29 06:57:44.000000000","message":"can you explain this in detail?","commit_id":"8175e664c868c10dc466bfc19cfb41ccd5854281"}],"cinder/volume/drivers/huawei/huawei_driver.py":[{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"8226a53079a0c095dbdcfdd933aaa72fcaf22fbc","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        lunid \u003d lun_info[\u0027ID\u0027]"},{"line_number":97,"context_line":"        qos \u003d huawei_utils._get_volume_qos(volume)"},{"line_number":98,"context_line":"        # add a step to parse volume type"},{"line_number":99,"context_line":"        if qos !\u003d {}:"},{"line_number":100,"context_line":"            SmartQos \u003d smartx.SmartQos(self.restclient)"},{"line_number":101,"context_line":"            SmartQos.create_qos(qos, lunid)"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_ddad8a89","line":99,"updated":"2015-06-15 17:26:34.000000000","message":"style: if qos","commit_id":"c48376954640752bd61d099dab0b9e1dcb7e6964"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"a8070a1862262a9face5e9c11fe9767d722c8aa9","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        lunid \u003d lun_info[\u0027ID\u0027]"},{"line_number":97,"context_line":"        qos \u003d huawei_utils._get_volume_qos(volume)"},{"line_number":98,"context_line":"        # add a step to parse volume type"},{"line_number":99,"context_line":"        if qos !\u003d {}:"},{"line_number":100,"context_line":"            SmartQos \u003d smartx.SmartQos(self.restclient)"},{"line_number":101,"context_line":"            SmartQos.create_qos(qos, lunid)"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_37c03c2a","line":99,"in_reply_to":"fa32b979_ddad8a89","updated":"2015-06-16 08:26:42.000000000","message":"Done","commit_id":"c48376954640752bd61d099dab0b9e1dcb7e6964"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"8226a53079a0c095dbdcfdd933aaa72fcaf22fbc","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        if lun_id:"},{"line_number":120,"context_line":"            if self.restclient._check_lun_exist(lun_id) is True:"},{"line_number":121,"context_line":"                qos_id \u003d self.restclient._get_qosid_by_lunid(lun_id)"},{"line_number":122,"context_line":"                if qos_id !\u003d \"\":"},{"line_number":123,"context_line":"                    # add a step to parse volume type"},{"line_number":124,"context_line":"                    qos \u003d smartx.SmartQos(self.restclient)"},{"line_number":125,"context_line":"                    qos.delete_qos(qos_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_ddfcaa40","line":122,"updated":"2015-06-15 17:26:34.000000000","message":"style: if qos_id","commit_id":"c48376954640752bd61d099dab0b9e1dcb7e6964"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"a8070a1862262a9face5e9c11fe9767d722c8aa9","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        if lun_id:"},{"line_number":120,"context_line":"            if self.restclient._check_lun_exist(lun_id) is True:"},{"line_number":121,"context_line":"                qos_id \u003d self.restclient._get_qosid_by_lunid(lun_id)"},{"line_number":122,"context_line":"                if qos_id !\u003d \"\":"},{"line_number":123,"context_line":"                    # add a step to parse volume type"},{"line_number":124,"context_line":"                    qos \u003d smartx.SmartQos(self.restclient)"},{"line_number":125,"context_line":"                    qos.delete_qos(qos_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_f7e094ce","line":122,"in_reply_to":"fa32b979_ddfcaa40","updated":"2015-06-16 08:26:42.000000000","message":"Done","commit_id":"c48376954640752bd61d099dab0b9e1dcb7e6964"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"ced33b55a85d559dfd5c6522762b279f213fc589","unresolved":false,"context_lines":[{"line_number":100,"context_line":"            SmartQos \u003d smartx.SmartQos(self.restclient)"},{"line_number":101,"context_line":"            SmartQos.create_qos(qos, lun_id)"},{"line_number":102,"context_line":"        smartpartition \u003d smartx.SmartPartition(self.restclient)"},{"line_number":103,"context_line":"        smartpartition._add(opts, lun_id)"},{"line_number":104,"context_line":"        smartcache \u003d smartx.SmartCache(self.restclient)"},{"line_number":105,"context_line":"        smartcache._add(opts, lun_id)"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"3a50d1a3_3232f1a7","line":103,"updated":"2015-07-23 13:35:26.000000000","message":"_add should be add","commit_id":"8175e664c868c10dc466bfc19cfb41ccd5854281"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"ced33b55a85d559dfd5c6522762b279f213fc589","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        smartpartition \u003d smartx.SmartPartition(self.restclient)"},{"line_number":103,"context_line":"        smartpartition._add(opts, lun_id)"},{"line_number":104,"context_line":"        smartcache \u003d smartx.SmartCache(self.restclient)"},{"line_number":105,"context_line":"        smartcache._add(opts, lun_id)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        return {\u0027provider_location\u0027: lun_info[\u0027ID\u0027],"},{"line_number":108,"context_line":"                \u0027ID\u0027: lun_id,"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a50d1a3_d2db8d4d","line":105,"updated":"2015-07-23 13:35:26.000000000","message":"the same as above","commit_id":"8175e664c868c10dc466bfc19cfb41ccd5854281"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b58198a3a0ec0cdf4b484a9f6d6839c18b11a251","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        qos \u003d huawei_utils.get_volume_qos(volume)"},{"line_number":98,"context_line":"        # Add a step to parse volume type."},{"line_number":99,"context_line":"        if qos:"},{"line_number":100,"context_line":"            SmartQos \u003d smartx.SmartQos(self.restclient)"},{"line_number":101,"context_line":"            SmartQos.create_qos(qos, lun_id)"},{"line_number":102,"context_line":"        smartpartition \u003d smartx.SmartPartition(self.restclient)"},{"line_number":103,"context_line":"        smartpartition._add(opts, lun_id)"}],"source_content_type":"text/x-python","patch_set":26,"id":"3a50d1a3_e163e03f","line":100,"updated":"2015-07-27 10:18:39.000000000","message":"According to PEP-8, the variable name should be: smart_qos","commit_id":"c3269c5f79aec738530370249f07a57642f7ae4f"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"48168662364199c083b2049a7dbc895adac571c3","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        qos \u003d huawei_utils.get_volume_qos(volume)"},{"line_number":98,"context_line":"        # Add a step to parse volume type."},{"line_number":99,"context_line":"        if qos:"},{"line_number":100,"context_line":"            SmartQos \u003d smartx.SmartQos(self.restclient)"},{"line_number":101,"context_line":"            SmartQos.create_qos(qos, lun_id)"},{"line_number":102,"context_line":"        smartpartition \u003d smartx.SmartPartition(self.restclient)"},{"line_number":103,"context_line":"        smartpartition._add(opts, lun_id)"}],"source_content_type":"text/x-python","patch_set":26,"id":"3a50d1a3_27ed58ef","line":100,"in_reply_to":"3a50d1a3_e163e03f","updated":"2015-07-27 11:06:25.000000000","message":"Done","commit_id":"c3269c5f79aec738530370249f07a57642f7ae4f"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b58198a3a0ec0cdf4b484a9f6d6839c18b11a251","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        if lun_id:"},{"line_number":125,"context_line":"            if self.restclient.check_lun_exist(lun_id):"},{"line_number":126,"context_line":"                qos_id \u003d self.restclient.get_qosid_by_lunid(lun_id)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"                if qos_id:"},{"line_number":129,"context_line":"                    # Add a step to parse volume type."},{"line_number":130,"context_line":"                    self.remove_qos_lun(lun_id, qos_id)"}],"source_content_type":"text/x-python","patch_set":26,"id":"3a50d1a3_21f8e848","line":127,"updated":"2015-07-27 10:18:39.000000000","message":"Empty line is not needed here","commit_id":"c3269c5f79aec738530370249f07a57642f7ae4f"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"48168662364199c083b2049a7dbc895adac571c3","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        if lun_id:"},{"line_number":125,"context_line":"            if self.restclient.check_lun_exist(lun_id):"},{"line_number":126,"context_line":"                qos_id \u003d self.restclient.get_qosid_by_lunid(lun_id)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"                if qos_id:"},{"line_number":129,"context_line":"                    # Add a step to parse volume type."},{"line_number":130,"context_line":"                    self.remove_qos_lun(lun_id, qos_id)"}],"source_content_type":"text/x-python","patch_set":26,"id":"3a50d1a3_67ca8070","line":127,"in_reply_to":"3a50d1a3_21f8e848","updated":"2015-07-27 11:06:25.000000000","message":"Done","commit_id":"c3269c5f79aec738530370249f07a57642f7ae4f"}],"cinder/volume/drivers/huawei/huawei_utils.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"81df8a52e491f022ceea2704fee072bc07738ab5","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            scope \u003d None"},{"line_number":90,"context_line":"            words \u003d value.split()"},{"line_number":91,"context_line":"            if not (words and len(words) \u003d\u003d 2 and words[0] \u003d\u003d \u0027\u003cis\u003e\u0027):"},{"line_number":92,"context_line":"                LOG.error(_LE(\u0027Replication must be specified as \u0027"},{"line_number":93,"context_line":"                              \u0027\\\u0027\u003cis\u003e True\\\u0027 or \\\u0027\u003cis\u003e False\\\u0027.\u0027))"},{"line_number":94,"context_line":"            del words[0]"},{"line_number":95,"context_line":"            value \u003d words[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_02352945","line":92,"updated":"2015-06-05 13:47:23.000000000","message":"Change outer quotes to double-quotes so you don\u0027t need to escape the quotes within the string, or vice versa.","commit_id":"ba3084ed0ee9af3e7e3e5229ffda28296fcb2977"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"8848c230c98ae4d56630d05313e4bc2dcac92b24","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            scope \u003d None"},{"line_number":90,"context_line":"            words \u003d value.split()"},{"line_number":91,"context_line":"            if not (words and len(words) \u003d\u003d 2 and words[0] \u003d\u003d \u0027\u003cis\u003e\u0027):"},{"line_number":92,"context_line":"                LOG.error(_LE(\u0027Replication must be specified as \u0027"},{"line_number":93,"context_line":"                              \u0027\\\u0027\u003cis\u003e True\\\u0027 or \\\u0027\u003cis\u003e False\\\u0027.\u0027))"},{"line_number":94,"context_line":"            del words[0]"},{"line_number":95,"context_line":"            value \u003d words[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_02f73bf6","line":92,"in_reply_to":"3afb71cf_02352945","updated":"2015-06-08 07:44:23.000000000","message":"Done","commit_id":"ba3084ed0ee9af3e7e3e5229ffda28296fcb2977"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"ad67006a2c1ff17208618fdca6c2acd8f500e365","unresolved":false,"context_lines":[{"line_number":319,"context_line":"                \"PREFETCHVALUE\": parameters[\u0027PrefetchValue\u0027],"},{"line_number":320,"context_line":"                \"DATATRANSFERPOLICY\": parameters[\u0027policy\u0027],"},{"line_number":321,"context_line":"                \"READCACHEPOLICY\": parameters[\u0027readcachepolicy\u0027],"},{"line_number":322,"context_line":"                \"WRITECACHEPOLICY\": parameters[\u0027writecachepolicy\u0027]}"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"    return lunparam"},{"line_number":325,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_dd0c9a44","line":322,"updated":"2015-06-05 10:38:45.000000000","message":"Trailing comma is missing.","commit_id":"ba3084ed0ee9af3e7e3e5229ffda28296fcb2977"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"8848c230c98ae4d56630d05313e4bc2dcac92b24","unresolved":false,"context_lines":[{"line_number":319,"context_line":"                \"PREFETCHVALUE\": parameters[\u0027PrefetchValue\u0027],"},{"line_number":320,"context_line":"                \"DATATRANSFERPOLICY\": parameters[\u0027policy\u0027],"},{"line_number":321,"context_line":"                \"READCACHEPOLICY\": parameters[\u0027readcachepolicy\u0027],"},{"line_number":322,"context_line":"                \"WRITECACHEPOLICY\": parameters[\u0027writecachepolicy\u0027]}"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"    return lunparam"},{"line_number":325,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_e2de5f6c","line":322,"in_reply_to":"3afb71cf_dd0c9a44","updated":"2015-06-08 07:44:23.000000000","message":"Done","commit_id":"ba3084ed0ee9af3e7e3e5229ffda28296fcb2977"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"833e0d911e39d171f860603715ddd9c02c8a0bf5","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"            if not (words and len(words) \u003d\u003d 2 and words[0] \u003d\u003d \u0027\u003cis\u003e\u0027):"},{"line_number":116,"context_line":"                LOG.error(_LE(\u0027Replication must be specified as \u0027"},{"line_number":117,"context_line":"                              \u0027\\\u0027\u003cis\u003e True\\\u0027 or \\\u0027\u003cis\u003e False\\\u0027.\u0027))"},{"line_number":118,"context_line":"            else:"},{"line_number":119,"context_line":"                del words[0]"},{"line_number":120,"context_line":"                value \u003d words[0]"}],"source_content_type":"text/x-python","patch_set":30,"id":"3a50d1a3_fc32255d","line":117,"updated":"2015-07-29 13:52:23.000000000","message":"Use double quotes to avoid needing to escape the quote in the string.","commit_id":"bd48f1244696cc9934b4fb05e801a69522d9c3b5"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"4c1628f21eed4868897c9b5964a12aea1fae6bb2","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"            if not (words and len(words) \u003d\u003d 2 and words[0] \u003d\u003d \u0027\u003cis\u003e\u0027):"},{"line_number":116,"context_line":"                LOG.error(_LE(\u0027Replication must be specified as \u0027"},{"line_number":117,"context_line":"                              \u0027\\\u0027\u003cis\u003e True\\\u0027 or \\\u0027\u003cis\u003e False\\\u0027.\u0027))"},{"line_number":118,"context_line":"            else:"},{"line_number":119,"context_line":"                del words[0]"},{"line_number":120,"context_line":"                value \u003d words[0]"}],"source_content_type":"text/x-python","patch_set":30,"id":"3a50d1a3_68de4cdb","line":117,"in_reply_to":"3a50d1a3_fc32255d","updated":"2015-07-29 16:27:38.000000000","message":"Done","commit_id":"bd48f1244696cc9934b4fb05e801a69522d9c3b5"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cbb42ece52f0fc9868e8e256a4f14e8a1169f134","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"            if not (words and len(words) \u003d\u003d 2 and words[0] \u003d\u003d \u0027\u003cis\u003e\u0027):"},{"line_number":116,"context_line":"                LOG.error(_LE(\"Replication must be specified as \""},{"line_number":117,"context_line":"                              \"\u0027\u003cis\u003e True\u0027 or \u0027\u003cis\u003e False\u0027.\"))"},{"line_number":118,"context_line":"            else:"},{"line_number":119,"context_line":"                del words[0]"},{"line_number":120,"context_line":"                value \u003d words[0]"}],"source_content_type":"text/x-python","patch_set":38,"id":"3a50d1a3_7b799b92","line":117,"updated":"2015-08-02 17:46:30.000000000","message":"Why do you need this?  I don\u0027t think Huawei driver supports replication.","commit_id":"18b614c0a0963bb80ea52303c70e3250f0091d44"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"143b18c69dab116933553f72b0e3a4673b12d339","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"            if not (words and len(words) \u003d\u003d 2 and words[0] \u003d\u003d \u0027\u003cis\u003e\u0027):"},{"line_number":116,"context_line":"                LOG.error(_LE(\"Replication must be specified as \""},{"line_number":117,"context_line":"                              \"\u0027\u003cis\u003e True\u0027 or \u0027\u003cis\u003e False\u0027.\"))"},{"line_number":118,"context_line":"            else:"},{"line_number":119,"context_line":"                del words[0]"},{"line_number":120,"context_line":"                value \u003d words[0]"}],"source_content_type":"text/x-python","patch_set":38,"id":"3a50d1a3_b6ee55b3","line":117,"in_reply_to":"3a50d1a3_7b799b92","updated":"2015-08-03 07:44:52.000000000","message":"Sure, these code are no need currently, thanks!","commit_id":"18b614c0a0963bb80ea52303c70e3250f0091d44"}],"cinder/volume/drivers/huawei/rest_client.py":[{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"2b7562d1b41fb29f0de86698aeed15a9ddaf1ab4","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        try:"},{"line_number":79,"context_line":"            res_json \u003d json.loads(res)"},{"line_number":80,"context_line":"        except Exception as err:"},{"line_number":81,"context_line":"            err_msg \u003d (_LE(\u0027JSON transfer error: %s.\u0027) % err)"},{"line_number":82,"context_line":"            LOG.error(err_msg)"},{"line_number":83,"context_line":"            raise err"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_0e81e5c2","line":80,"updated":"2015-07-09 11:27:02.000000000","message":"In spite of \"%\" use \",\".\nerr_msg \u003d (_LE(\u0027JSON transfer error: %s.\u0027), err)\nBelow is the link:\nhttp://docs.openstack.org/developer/oslo.i18n/guidelines.html#adding-variables-to-log-messages","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        try:"},{"line_number":79,"context_line":"            res_json \u003d json.loads(res)"},{"line_number":80,"context_line":"        except Exception as err:"},{"line_number":81,"context_line":"            err_msg \u003d (_LE(\u0027JSON transfer error: %s.\u0027) % err)"},{"line_number":82,"context_line":"            LOG.error(err_msg)"},{"line_number":83,"context_line":"            raise err"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_98441bb8","line":80,"in_reply_to":"ba3cc151_0e81e5c2","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"ab1cfa018f6dde87e032d000b78e5bc6c442a4d6","unresolved":false,"context_lines":[{"line_number":127,"context_line":"           error_code \u003d\u003d constants.ERROR_UNAUTHORIZED_TO_SERVER:"},{"line_number":128,"context_line":"            LOG.error(_LE(\"can\u0027t open the recent url, relogin.\"))"},{"line_number":129,"context_line":"            self.login()"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        if error_code !\u003d 0:"},{"line_number":132,"context_line":"            msg \u003d (_(\u0027%(err)s\\nresult: %(res)s.\u0027) % {\u0027err\u0027: err_str,"},{"line_number":133,"context_line":"                                                     \u0027res\u0027: result})"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_43cd8d64","line":130,"updated":"2015-07-09 09:06:30.000000000","message":"what is the use of login here?\nline no 131 would be true and even if you do login here, you are throwing exception.","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":127,"context_line":"           error_code \u003d\u003d constants.ERROR_UNAUTHORIZED_TO_SERVER:"},{"line_number":128,"context_line":"            LOG.error(_LE(\"can\u0027t open the recent url, relogin.\"))"},{"line_number":129,"context_line":"            self.login()"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        if error_code !\u003d 0:"},{"line_number":132,"context_line":"            msg \u003d (_(\u0027%(err)s\\nresult: %(res)s.\u0027) % {\u0027err\u0027: err_str,"},{"line_number":133,"context_line":"                                                     \u0027res\u0027: result})"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_7bb7d13a","line":130,"in_reply_to":"ba3cc151_43cd8d64","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"ab1cfa018f6dde87e032d000b78e5bc6c442a4d6","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            LOG.error(_LE(\"can\u0027t open the recent url, relogin.\"))"},{"line_number":129,"context_line":"            self.login()"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        if error_code !\u003d 0:"},{"line_number":132,"context_line":"            msg \u003d (_(\u0027%(err)s\\nresult: %(res)s.\u0027) % {\u0027err\u0027: err_str,"},{"line_number":133,"context_line":"                                                     \u0027res\u0027: result})"},{"line_number":134,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_0376a505","line":131,"updated":"2015-07-09 09:06:30.000000000","message":"even though if condition is true in lines 126,127, if condition will be true in line 131 too and then we are using LOG.error two times","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            LOG.error(_LE(\"can\u0027t open the recent url, relogin.\"))"},{"line_number":129,"context_line":"            self.login()"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        if error_code !\u003d 0:"},{"line_number":132,"context_line":"            msg \u003d (_(\u0027%(err)s\\nresult: %(res)s.\u0027) % {\u0027err\u0027: err_str,"},{"line_number":133,"context_line":"                                                     \u0027res\u0027: result})"},{"line_number":134,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_9bb41536","line":131,"in_reply_to":"ba3cc151_0376a505","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"ab1cfa018f6dde87e032d000b78e5bc6c442a4d6","unresolved":false,"context_lines":[{"line_number":170,"context_line":"            msg \u003d _(\u0027\\nCheck lun exist error.\u0027)"},{"line_number":171,"context_line":"            LOG.error(msg)"},{"line_number":172,"context_line":"            raise exception.CinderException(msg)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        if error_code !\u003d 0:"},{"line_number":175,"context_line":"            return False"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_23eba9dd","line":173,"updated":"2015-07-09 09:06:30.000000000","message":"I think we should use lines 167 to 172 as part of if condition because it requires only when if condition is true.","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":170,"context_line":"            msg \u003d _(\u0027\\nCheck lun exist error.\u0027)"},{"line_number":171,"context_line":"            LOG.error(msg)"},{"line_number":172,"context_line":"            raise exception.CinderException(msg)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        if error_code !\u003d 0:"},{"line_number":175,"context_line":"            return False"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_dbe29d01","line":173,"in_reply_to":"ba3cc151_23eba9dd","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"2b7562d1b41fb29f0de86698aeed15a9ddaf1ab4","unresolved":false,"context_lines":[{"line_number":223,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":224,"context_line":"                if name \u003d\u003d item[\u0027NAME\u0027]:"},{"line_number":225,"context_line":"                    volume_id \u003d item[\u0027ID\u0027]"},{"line_number":226,"context_line":"                    break"},{"line_number":227,"context_line":"        return volume_id"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    def active_snapshot(self, snapshot_id):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_81df030c","line":226,"updated":"2015-07-09 11:27:02.000000000","message":"You can make a generic function from lines 222-226 like below and use it.\n\ndef some_generic_name(result, name, key):\n    if \"data\" in result:\n        for item in result[\u0027data\u0027]:\n            if name \u003d\u003d item[key]:\n                return item[\u0027ID\u0027]\n   \nReplace lines 221-227 with\n\nreturn some_generic_name(result, name, \u0027NAME\u0027)","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":223,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":224,"context_line":"                if name \u003d\u003d item[\u0027NAME\u0027]:"},{"line_number":225,"context_line":"                    volume_id \u003d item[\u0027ID\u0027]"},{"line_number":226,"context_line":"                    break"},{"line_number":227,"context_line":"        return volume_id"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    def active_snapshot(self, snapshot_id):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_db4ffdbc","line":226,"in_reply_to":"ba3cc151_81df030c","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"2b7562d1b41fb29f0de86698aeed15a9ddaf1ab4","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        data \u003d json.dumps({\"TYPE\": \"27\"})"},{"line_number":293,"context_line":"        result \u003d self.call(url, data, \"GET\")"},{"line_number":294,"context_line":"        self._assert_rest_result(result, \u0027Get snapshot id error.\u0027)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        snapshot_id \u003d None"},{"line_number":297,"context_line":"        if \"data\" in result:"},{"line_number":298,"context_line":"            for item in result[\u0027data\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_812dc3ff","line":295,"updated":"2015-07-09 11:27:02.000000000","message":"Replace lines 296-303 with\nreturn some_generic_name(result, name, \u0027NAME\u0027)","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        data \u003d json.dumps({\"TYPE\": \"27\"})"},{"line_number":293,"context_line":"        result \u003d self.call(url, data, \"GET\")"},{"line_number":294,"context_line":"        self._assert_rest_result(result, \u0027Get snapshot id error.\u0027)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        snapshot_id \u003d None"},{"line_number":297,"context_line":"        if \"data\" in result:"},{"line_number":298,"context_line":"            for item in result[\u0027data\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_fbb3e198","line":295,"in_reply_to":"ba3cc151_812dc3ff","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"2b7562d1b41fb29f0de86698aeed15a9ddaf1ab4","unresolved":false,"context_lines":[{"line_number":345,"context_line":"        msg \u003d \u0027Find portgroup error.\u0027"},{"line_number":346,"context_line":"        self._assert_rest_result(result, msg)"},{"line_number":347,"context_line":"        msg \u003d \u0027Can not find the portgroup on the array.\u0027"},{"line_number":348,"context_line":"        self._assert_data_in_result(result, msg)"},{"line_number":349,"context_line":"        portgroup_id \u003d None"},{"line_number":350,"context_line":"        if \"data\" in result:"},{"line_number":351,"context_line":"            for item in result[\u0027data\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_c1474bba","line":348,"updated":"2015-07-09 11:27:02.000000000","message":"Replace lines 349-355 with\nreturn some_generic_name(result, TgtPortGroup, \u0027NAME\u0027)","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":345,"context_line":"        msg \u003d \u0027Find portgroup error.\u0027"},{"line_number":346,"context_line":"        self._assert_rest_result(result, msg)"},{"line_number":347,"context_line":"        msg \u003d \u0027Can not find the portgroup on the array.\u0027"},{"line_number":348,"context_line":"        self._assert_data_in_result(result, msg)"},{"line_number":349,"context_line":"        portgroup_id \u003d None"},{"line_number":350,"context_line":"        if \"data\" in result:"},{"line_number":351,"context_line":"            for item in result[\u0027data\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_3b2f09a9","line":348,"in_reply_to":"ba3cc151_c1474bba","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"2b7562d1b41fb29f0de86698aeed15a9ddaf1ab4","unresolved":false,"context_lines":[{"line_number":369,"context_line":"        url \u003d self.url + url_subfix"},{"line_number":370,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":371,"context_line":"        self._assert_rest_result(result, \u0027Check portgroup associated error.\u0027)"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"        if \"data\" in result:"},{"line_number":374,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":375,"context_line":"                if view_id \u003d\u003d item[\u0027ID\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_81c94328","line":372,"updated":"2015-07-09 11:27:02.000000000","message":"v \u003d some_generic_name(result, view_id, \u0027ID\u0027)\nif v:\n    return True\nreturn False","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":369,"context_line":"        url \u003d self.url + url_subfix"},{"line_number":370,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":371,"context_line":"        self._assert_rest_result(result, \u0027Check portgroup associated error.\u0027)"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"        if \"data\" in result:"},{"line_number":374,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":375,"context_line":"                if view_id \u003d\u003d item[\u0027ID\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_4650f40a","line":372,"in_reply_to":"ba3cc151_81c94328","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"2b7562d1b41fb29f0de86698aeed15a9ddaf1ab4","unresolved":false,"context_lines":[{"line_number":436,"context_line":"            if self.is_initiator_associated_to_host(initiator_name) is False:"},{"line_number":437,"context_line":"                self._associate_initiator_to_host(initiator_name, hostid)"},{"line_number":438,"context_line":"        else:"},{"line_number":439,"context_line":"            if self.is_initiator_associated_to_host(initiator_name) is False:"},{"line_number":440,"context_line":"                self._associate_initiator_to_host(initiator_name, hostid)"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"    def _get_iscsi_tgt_port(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_d474ea68","line":439,"updated":"2015-07-09 11:27:02.000000000","message":"No need of \"else\" here.\nif not added:\n    self._add_initiator_to_array(initiator_name)\nif self.is_initiator_associated_to_host(initiator_name) is False:\n    self._associate_initiator_to_host(initiator_name, hostid)","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":436,"context_line":"            if self.is_initiator_associated_to_host(initiator_name) is False:"},{"line_number":437,"context_line":"                self._associate_initiator_to_host(initiator_name, hostid)"},{"line_number":438,"context_line":"        else:"},{"line_number":439,"context_line":"            if self.is_initiator_associated_to_host(initiator_name) is False:"},{"line_number":440,"context_line":"                self._associate_initiator_to_host(initiator_name, hostid)"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"    def _get_iscsi_tgt_port(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_46855457","line":439,"in_reply_to":"ba3cc151_d474ea68","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"2b7562d1b41fb29f0de86698aeed15a9ddaf1ab4","unresolved":false,"context_lines":[{"line_number":454,"context_line":"        url \u003d self.url + \"/hostgroup?range\u003d[0-8191]\""},{"line_number":455,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":456,"context_line":"        self._assert_rest_result(result, \u0027Get hostgroup information error.\u0027)"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"        host_group_id \u003d None"},{"line_number":459,"context_line":"        if \"data\" in result:"},{"line_number":460,"context_line":"            for item in result[\u0027data\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_24c2c585","line":457,"updated":"2015-07-09 11:27:02.000000000","message":"same comment as in function get_volume_by_name.","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":454,"context_line":"        url \u003d self.url + \"/hostgroup?range\u003d[0-8191]\""},{"line_number":455,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":456,"context_line":"        self._assert_rest_result(result, \u0027Get hostgroup information error.\u0027)"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"        host_group_id \u003d None"},{"line_number":459,"context_line":"        if \"data\" in result:"},{"line_number":460,"context_line":"            for item in result[\u0027data\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_46d31460","line":457,"in_reply_to":"ba3cc151_24c2c585","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"2b7562d1b41fb29f0de86698aeed15a9ddaf1ab4","unresolved":false,"context_lines":[{"line_number":468,"context_line":"        url \u003d self.url + \"/lungroup?range\u003d[0-8191]\""},{"line_number":469,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":470,"context_line":"        self._assert_rest_result(result, \u0027Get lungroup information error.\u0027)"},{"line_number":471,"context_line":""},{"line_number":472,"context_line":"        lun_group_id \u003d None"},{"line_number":473,"context_line":"        if \u0027data\u0027 in result:"},{"line_number":474,"context_line":"            for item in result[\u0027data\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_a43c9593","line":471,"updated":"2015-07-09 11:27:02.000000000","message":"same comment as in function get_volume_by_name.","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":468,"context_line":"        url \u003d self.url + \"/lungroup?range\u003d[0-8191]\""},{"line_number":469,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":470,"context_line":"        self._assert_rest_result(result, \u0027Get lungroup information error.\u0027)"},{"line_number":471,"context_line":""},{"line_number":472,"context_line":"        lun_group_id \u003d None"},{"line_number":473,"context_line":"        if \u0027data\u0027 in result:"},{"line_number":474,"context_line":"            for item in result[\u0027data\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_6653b8e3","line":471,"in_reply_to":"ba3cc151_a43c9593","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"2b7562d1b41fb29f0de86698aeed15a9ddaf1ab4","unresolved":false,"context_lines":[{"line_number":551,"context_line":"        url \u003d self.url + url_subfix"},{"line_number":552,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":553,"context_line":"        self._assert_rest_result(result, \u0027Check lungroup associated error.\u0027)"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"        if \"data\" in result:"},{"line_number":556,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":557,"context_line":"                if viewid \u003d\u003d item[\u0027ID\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_64420d11","line":554,"updated":"2015-07-09 11:27:02.000000000","message":"same comment as in function get_volume_by_name.","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":551,"context_line":"        url \u003d self.url + url_subfix"},{"line_number":552,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":553,"context_line":"        self._assert_rest_result(result, \u0027Check lungroup associated error.\u0027)"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"        if \"data\" in result:"},{"line_number":556,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":557,"context_line":"                if viewid \u003d\u003d item[\u0027ID\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_a61ea00b","line":554,"in_reply_to":"ba3cc151_64420d11","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"2b7562d1b41fb29f0de86698aeed15a9ddaf1ab4","unresolved":false,"context_lines":[{"line_number":564,"context_line":"        url \u003d self.url + url_subfix"},{"line_number":565,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":566,"context_line":"        self._assert_rest_result(result, \u0027Check hostgroup associated error.\u0027)"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"        if \"data\" in result:"},{"line_number":569,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":570,"context_line":"                if viewid \u003d\u003d item[\u0027ID\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_846071a6","line":567,"updated":"2015-07-09 11:27:02.000000000","message":"same comment as in function get_volume_by_name.","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":564,"context_line":"        url \u003d self.url + url_subfix"},{"line_number":565,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":566,"context_line":"        self._assert_rest_result(result, \u0027Check hostgroup associated error.\u0027)"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"        if \"data\" in result:"},{"line_number":569,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":570,"context_line":"                if viewid \u003d\u003d item[\u0027ID\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_06e0acf9","line":567,"in_reply_to":"ba3cc151_846071a6","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"2b7562d1b41fb29f0de86698aeed15a9ddaf1ab4","unresolved":false,"context_lines":[{"line_number":601,"context_line":"        data \u003d json.dumps({\"TYPE\": \"21\"})"},{"line_number":602,"context_line":"        result \u003d self.call(url, data, \"GET\")"},{"line_number":603,"context_line":"        self._assert_rest_result(result, \u0027Find host in hostgroup error.\u0027)"},{"line_number":604,"context_line":""},{"line_number":605,"context_line":"        host_id \u003d None"},{"line_number":606,"context_line":"        if \"data\" in result:"},{"line_number":607,"context_line":"            for item in result[\u0027data\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_24708571","line":604,"updated":"2015-07-09 11:27:02.000000000","message":"same comment as in function get_volume_by_name.","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":601,"context_line":"        data \u003d json.dumps({\"TYPE\": \"21\"})"},{"line_number":602,"context_line":"        result \u003d self.call(url, data, \"GET\")"},{"line_number":603,"context_line":"        self._assert_rest_result(result, \u0027Find host in hostgroup error.\u0027)"},{"line_number":604,"context_line":""},{"line_number":605,"context_line":"        host_id \u003d None"},{"line_number":606,"context_line":"        if \"data\" in result:"},{"line_number":607,"context_line":"            for item in result[\u0027data\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_06b74cf6","line":604,"in_reply_to":"ba3cc151_24708571","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"2b7562d1b41fb29f0de86698aeed15a9ddaf1ab4","unresolved":false,"context_lines":[{"line_number":669,"context_line":"        url \u003d self.url + url_subfix"},{"line_number":670,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":671,"context_line":"        self._assert_rest_result(result, \u0027Check hostgroup associated error.\u0027)"},{"line_number":672,"context_line":""},{"line_number":673,"context_line":"        if \"data\" in result:"},{"line_number":674,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":675,"context_line":"                if host_id \u003d\u003d item[\u0027ID\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_840711c9","line":672,"updated":"2015-07-09 11:27:02.000000000","message":"same comment as in function get_volume_by_name.","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":669,"context_line":"        url \u003d self.url + url_subfix"},{"line_number":670,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":671,"context_line":"        self._assert_rest_result(result, \u0027Check hostgroup associated error.\u0027)"},{"line_number":672,"context_line":""},{"line_number":673,"context_line":"        if \"data\" in result:"},{"line_number":674,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":675,"context_line":"                if host_id \u003d\u003d item[\u0027ID\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_e6a8288f","line":672,"in_reply_to":"ba3cc151_840711c9","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"2b7562d1b41fb29f0de86698aeed15a9ddaf1ab4","unresolved":false,"context_lines":[{"line_number":685,"context_line":"        url \u003d self.url + url_subfix"},{"line_number":686,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":687,"context_line":"        self._assert_rest_result(result, \u0027Check lungroup associate error.\u0027)"},{"line_number":688,"context_line":""},{"line_number":689,"context_line":"        if \"data\" in result:"},{"line_number":690,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":691,"context_line":"                if lun_id \u003d\u003d item[\u0027ID\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_6410cd00","line":688,"updated":"2015-07-09 11:27:02.000000000","message":"same comment as in function get_volume_by_name.","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":685,"context_line":"        url \u003d self.url + url_subfix"},{"line_number":686,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":687,"context_line":"        self._assert_rest_result(result, \u0027Check lungroup associate error.\u0027)"},{"line_number":688,"context_line":""},{"line_number":689,"context_line":"        if \"data\" in result:"},{"line_number":690,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":691,"context_line":"                if lun_id \u003d\u003d item[\u0027ID\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_468b141f","line":688,"in_reply_to":"ba3cc151_6410cd00","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"2b7562d1b41fb29f0de86698aeed15a9ddaf1ab4","unresolved":false,"context_lines":[{"line_number":778,"context_line":""},{"line_number":779,"context_line":"        msg \u003d \u0027Find map view error.\u0027"},{"line_number":780,"context_line":"        self._assert_rest_result(result, msg)"},{"line_number":781,"context_line":"        viewid \u003d None"},{"line_number":782,"context_line":"        if \"data\" in result:"},{"line_number":783,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":784,"context_line":"                if name \u003d\u003d item[\u0027NAME\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_e4fcddb6","line":781,"updated":"2015-07-09 11:27:02.000000000","message":"same comment as in function get_volume_by_name.","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":778,"context_line":""},{"line_number":779,"context_line":"        msg \u003d \u0027Find map view error.\u0027"},{"line_number":780,"context_line":"        self._assert_rest_result(result, msg)"},{"line_number":781,"context_line":"        viewid \u003d None"},{"line_number":782,"context_line":"        if \"data\" in result:"},{"line_number":783,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":784,"context_line":"                if name \u003d\u003d item[\u0027NAME\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_4692344d","line":781,"in_reply_to":"ba3cc151_e4fcddb6","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"2b7562d1b41fb29f0de86698aeed15a9ddaf1ab4","unresolved":false,"context_lines":[{"line_number":868,"context_line":"        url \u003d self.url + url_subfix"},{"line_number":869,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":870,"context_line":"        self._assert_rest_result(result, \u0027Find port group from mapping view \u0027"},{"line_number":871,"context_line":"                                 \u0027error.\u0027)"},{"line_number":872,"context_line":"        if \"data\" in result:"},{"line_number":873,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":874,"context_line":"                if portgroup_id \u003d\u003d item[\u0027ID\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_a431f5a3","line":871,"updated":"2015-07-09 11:27:02.000000000","message":"same comment as in function get_volume_by_name.","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":868,"context_line":"        url \u003d self.url + url_subfix"},{"line_number":869,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":870,"context_line":"        self._assert_rest_result(result, \u0027Find port group from mapping view \u0027"},{"line_number":871,"context_line":"                                 \u0027error.\u0027)"},{"line_number":872,"context_line":"        if \"data\" in result:"},{"line_number":873,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":874,"context_line":"                if portgroup_id \u003d\u003d item[\u0027ID\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_e6ad8885","line":871,"in_reply_to":"ba3cc151_a431f5a3","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"2b7562d1b41fb29f0de86698aeed15a9ddaf1ab4","unresolved":false,"context_lines":[{"line_number":883,"context_line":"        url \u003d self.url + url_subfix"},{"line_number":884,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":885,"context_line":"        self._assert_rest_result(result, \u0027Find lun group from mapping view \u0027"},{"line_number":886,"context_line":"                                 \u0027error.\u0027)"},{"line_number":887,"context_line":"        lungroup_id \u003d None"},{"line_number":888,"context_line":"        if \"data\" in result:"},{"line_number":889,"context_line":"            # One map can have only one lungroup."}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_64276d63","line":886,"updated":"2015-07-09 11:27:02.000000000","message":"same comment as in function get_volume_by_name.","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":883,"context_line":"        url \u003d self.url + url_subfix"},{"line_number":884,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":885,"context_line":"        self._assert_rest_result(result, \u0027Find lun group from mapping view \u0027"},{"line_number":886,"context_line":"                                 \u0027error.\u0027)"},{"line_number":887,"context_line":"        lungroup_id \u003d None"},{"line_number":888,"context_line":"        if \"data\" in result:"},{"line_number":889,"context_line":"            # One map can have only one lungroup."}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_262930f3","line":886,"in_reply_to":"ba3cc151_64276d63","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"2b7562d1b41fb29f0de86698aeed15a9ddaf1ab4","unresolved":false,"context_lines":[{"line_number":1121,"context_line":"                for key in ini:"},{"line_number":1122,"context_line":"                    if key \u003d\u003d \u0027TargetPortGroup\u0027:"},{"line_number":1123,"context_line":"                        portgroup \u003d ini[\u0027TargetPortGroup\u0027]"},{"line_number":1124,"context_line":"                    elif key \u003d\u003d \u0027TargetIP\u0027:"},{"line_number":1125,"context_line":"                        target_ip \u003d ini[\u0027TargetIP\u0027]"},{"line_number":1126,"context_line":""},{"line_number":1127,"context_line":"        if portgroup:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_747e3ee5","line":1124,"updated":"2015-07-09 11:27:02.000000000","message":"No need of \"for loop\" in lines 1121 - 1125, we can get the value directly because ini is a dict.\n\nportgroup \u003d ini[\u0027TargetPortGroup\u0027]\n\ntarget_ip \u003d ini[\u0027TargetIP\u0027]","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":1121,"context_line":"                for key in ini:"},{"line_number":1122,"context_line":"                    if key \u003d\u003d \u0027TargetPortGroup\u0027:"},{"line_number":1123,"context_line":"                        portgroup \u003d ini[\u0027TargetPortGroup\u0027]"},{"line_number":1124,"context_line":"                    elif key \u003d\u003d \u0027TargetIP\u0027:"},{"line_number":1125,"context_line":"                        target_ip \u003d ini[\u0027TargetIP\u0027]"},{"line_number":1126,"context_line":""},{"line_number":1127,"context_line":"        if portgroup:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_a600e036","line":1124,"in_reply_to":"ba3cc151_747e3ee5","updated":"2015-07-10 11:01:43.000000000","message":"The key \u0027TargetPortGroup\u0027 and \u0027\u0027TargetIP\u0027 may not in map ini, so if did as you suggest, there may raise a error.","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"511e8c279650b0c239c2d2ffc69dffb81ef14630","unresolved":false,"context_lines":[{"line_number":1121,"context_line":"                for key in ini:"},{"line_number":1122,"context_line":"                    if key \u003d\u003d \u0027TargetPortGroup\u0027:"},{"line_number":1123,"context_line":"                        portgroup \u003d ini[\u0027TargetPortGroup\u0027]"},{"line_number":1124,"context_line":"                    elif key \u003d\u003d \u0027TargetIP\u0027:"},{"line_number":1125,"context_line":"                        target_ip \u003d ini[\u0027TargetIP\u0027]"},{"line_number":1126,"context_line":""},{"line_number":1127,"context_line":"        if portgroup:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_015df678","line":1124,"in_reply_to":"ba3cc151_a600e036","updated":"2015-07-10 11:11:43.000000000","message":"Then you can use like this.\n\nportgroup \u003d ini.get(\u0027TargetPortGroup\u0027)\n\ntarget_ip \u003d ini.get(\u0027TargetIP\u0027)","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"2b7562d1b41fb29f0de86698aeed15a9ddaf1ab4","unresolved":false,"context_lines":[{"line_number":1158,"context_line":"        if result[\u0027error\u0027][\u0027code\u0027] !\u003d 0:"},{"line_number":1159,"context_line":"            LOG.warning(_LW(\"Can\u0027t find target iqn from rest.\"))"},{"line_number":1160,"context_line":"            return target_iqn"},{"line_number":1161,"context_line":""},{"line_number":1162,"context_line":"        if \u0027data\u0027 in result:"},{"line_number":1163,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":1164,"context_line":"                if target_ip in item[\u0027ID\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_64de8d3f","line":1161,"updated":"2015-07-09 11:27:02.000000000","message":"same comment as in function get_volume_by_name.","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":1158,"context_line":"        if result[\u0027error\u0027][\u0027code\u0027] !\u003d 0:"},{"line_number":1159,"context_line":"            LOG.warning(_LW(\"Can\u0027t find target iqn from rest.\"))"},{"line_number":1160,"context_line":"            return target_iqn"},{"line_number":1161,"context_line":""},{"line_number":1162,"context_line":"        if \u0027data\u0027 in result:"},{"line_number":1163,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":1164,"context_line":"                if target_ip in item[\u0027ID\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_a6aea02d","line":1161,"in_reply_to":"ba3cc151_64de8d3f","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"2b7562d1b41fb29f0de86698aeed15a9ddaf1ab4","unresolved":false,"context_lines":[{"line_number":1267,"context_line":""},{"line_number":1268,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":1269,"context_line":"        self._assert_rest_result(result, \u0027Get lungroupid by lunid error.\u0027)"},{"line_number":1270,"context_line":""},{"line_number":1271,"context_line":"        lun_group_id \u003d None"},{"line_number":1272,"context_line":"        # Lun only in one lungroup."},{"line_number":1273,"context_line":"        if \u0027data\u0027 in result:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_84a391b1","line":1270,"updated":"2015-07-09 11:27:02.000000000","message":"same comment as in function get_volume_by_name.","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":1267,"context_line":""},{"line_number":1268,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":1269,"context_line":"        self._assert_rest_result(result, \u0027Get lungroupid by lunid error.\u0027)"},{"line_number":1270,"context_line":""},{"line_number":1271,"context_line":"        lun_group_id \u003d None"},{"line_number":1272,"context_line":"        # Lun only in one lungroup."},{"line_number":1273,"context_line":"        if \u0027data\u0027 in result:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_2648508a","line":1270,"in_reply_to":"ba3cc151_84a391b1","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"2b7562d1b41fb29f0de86698aeed15a9ddaf1ab4","unresolved":false,"context_lines":[{"line_number":1307,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":1308,"context_line":"        self._assert_rest_result(result, \u0027Get partition by name error!\u0027)"},{"line_number":1309,"context_line":""},{"line_number":1310,"context_line":"        if \"data\" in result:"},{"line_number":1311,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":1312,"context_line":"                LOG.debug(\u0027_get_partition_id_by_name item %(item)s\u0027,"},{"line_number":1313,"context_line":"                          {\u0027item\u0027: item})"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_64ac4d9f","line":1310,"updated":"2015-07-09 11:27:02.000000000","message":"same comment as in function get_volume_by_name.","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":1307,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":1308,"context_line":"        self._assert_rest_result(result, \u0027Get partition by name error!\u0027)"},{"line_number":1309,"context_line":""},{"line_number":1310,"context_line":"        if \"data\" in result:"},{"line_number":1311,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":1312,"context_line":"                LOG.debug(\u0027_get_partition_id_by_name item %(item)s\u0027,"},{"line_number":1313,"context_line":"                          {\u0027item\u0027: item})"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_6656582c","line":1310,"in_reply_to":"ba3cc151_64ac4d9f","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16676,"name":"Lakshman","email":"lakshminarayanat@vedams.com","username":"Lakshman","tags":["SERVICE_USER"]},"change_message_id":"2b7562d1b41fb29f0de86698aeed15a9ddaf1ab4","unresolved":false,"context_lines":[{"line_number":1330,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":1331,"context_line":"        self._assert_rest_result(result, \u0027Get cache by name error!\u0027)"},{"line_number":1332,"context_line":""},{"line_number":1333,"context_line":"        if \"data\" in result:"},{"line_number":1334,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":1335,"context_line":"                LOG.debug(\u0027...zj _get_cache_id_by_name item\u0027"},{"line_number":1336,"context_line":"                          \u0027%(item)s name %(name)s\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_047f8115","line":1333,"updated":"2015-07-09 11:27:02.000000000","message":"same comment as in function get_volume_by_name.","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":1330,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":1331,"context_line":"        self._assert_rest_result(result, \u0027Get cache by name error!\u0027)"},{"line_number":1332,"context_line":""},{"line_number":1333,"context_line":"        if \"data\" in result:"},{"line_number":1334,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":1335,"context_line":"                LOG.debug(\u0027...zj _get_cache_id_by_name item\u0027"},{"line_number":1336,"context_line":"                          \u0027%(item)s name %(name)s\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_a62300be","line":1333,"in_reply_to":"ba3cc151_047f8115","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"a1ffd9b1d59cea1ace0a1a7274fc28c2a568e60e","unresolved":false,"context_lines":[{"line_number":1332,"context_line":""},{"line_number":1333,"context_line":"        if \"data\" in result:"},{"line_number":1334,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":1335,"context_line":"                LOG.debug(\u0027...zj _get_cache_id_by_name item\u0027"},{"line_number":1336,"context_line":"                          \u0027%(item)s name %(name)s\u0027,"},{"line_number":1337,"context_line":"                          {\u0027item\u0027: item, \u0027name\u0027: name})"},{"line_number":1338,"context_line":"                if name \u003d\u003d item[\u0027NAME\u0027].lower():"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_dc53c5e0","line":1335,"updated":"2015-07-09 01:25:32.000000000","message":"First, ...zj ? delete it. Second, need blank space at the end of the sentence.","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":1332,"context_line":""},{"line_number":1333,"context_line":"        if \"data\" in result:"},{"line_number":1334,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":1335,"context_line":"                LOG.debug(\u0027...zj _get_cache_id_by_name item\u0027"},{"line_number":1336,"context_line":"                          \u0027%(item)s name %(name)s\u0027,"},{"line_number":1337,"context_line":"                          {\u0027item\u0027: item, \u0027name\u0027: name})"},{"line_number":1338,"context_line":"                if name \u003d\u003d item[\u0027NAME\u0027].lower():"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_e63828f1","line":1335,"in_reply_to":"ba3cc151_dc53c5e0","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"a1ffd9b1d59cea1ace0a1a7274fc28c2a568e60e","unresolved":false,"context_lines":[{"line_number":1360,"context_line":""},{"line_number":1361,"context_line":"        url \u003d self.url + \"/host/%s\" % hostid"},{"line_number":1362,"context_line":"        result \u003d self.call(url, None, \"DELETE\")"},{"line_number":1363,"context_line":"        self._assert_rest_result(result, \u0027remove fc from host error.\u0027)"},{"line_number":1364,"context_line":""},{"line_number":1365,"context_line":"    def delete_hostgroup(self, hostgroupid):"},{"line_number":1366,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_bc3121a4","line":1363,"updated":"2015-07-09 01:25:32.000000000","message":"First, remove -\u003e Remove. Second, \"remove fc from host error\" should be \"Remove from host error\"?","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":1360,"context_line":""},{"line_number":1361,"context_line":"        url \u003d self.url + \"/host/%s\" % hostid"},{"line_number":1362,"context_line":"        result \u003d self.call(url, None, \"DELETE\")"},{"line_number":1363,"context_line":"        self._assert_rest_result(result, \u0027remove fc from host error.\u0027)"},{"line_number":1364,"context_line":""},{"line_number":1365,"context_line":"    def delete_hostgroup(self, hostgroupid):"},{"line_number":1366,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_419e9eb9","line":1363,"in_reply_to":"ba3cc151_bc3121a4","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"c35d1ad7b5b7c844ef2d7063937d4b45ba987838","unresolved":false,"context_lines":[{"line_number":1227,"context_line":"    def get_partition_id_by_name(self, name):"},{"line_number":1228,"context_line":"        url \u003d self.url + \"/cachepartition\""},{"line_number":1229,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":1230,"context_line":"        self._assert_rest_result(result, \u0027Get partition by name error!\u0027)"},{"line_number":1231,"context_line":""},{"line_number":1232,"context_line":"        return self._get_id_from_result(result, name, \u0027NAME\u0027)"},{"line_number":1233,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"5a43c5e1_7dd837f0","line":1230,"updated":"2015-07-18 18:15:15.000000000","message":"Consistency: Please pick a consistent format of [!] or [.] in the assert messages.","commit_id":"3c402f607f0b103d0fa54f7f3dffa1c92e0a2690"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"dfdeacf8e1cbe16e6b1bc8ccb60245cd44eecfd2","unresolved":false,"context_lines":[{"line_number":1227,"context_line":"    def get_partition_id_by_name(self, name):"},{"line_number":1228,"context_line":"        url \u003d self.url + \"/cachepartition\""},{"line_number":1229,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":1230,"context_line":"        self._assert_rest_result(result, \u0027Get partition by name error!\u0027)"},{"line_number":1231,"context_line":""},{"line_number":1232,"context_line":"        return self._get_id_from_result(result, name, \u0027NAME\u0027)"},{"line_number":1233,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"3a50d1a3_039bcdca","line":1230,"in_reply_to":"5a43c5e1_7dd837f0","updated":"2015-07-19 11:17:57.000000000","message":"Done","commit_id":"3c402f607f0b103d0fa54f7f3dffa1c92e0a2690"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"c35d1ad7b5b7c844ef2d7063937d4b45ba987838","unresolved":false,"context_lines":[{"line_number":1242,"context_line":"    def get_cache_id_by_name(self, name):"},{"line_number":1243,"context_line":"        url \u003d self.url + \"/SMARTCACHEPARTITION\""},{"line_number":1244,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":1245,"context_line":"        self._assert_rest_result(result, \u0027Get cache by name error!\u0027)"},{"line_number":1246,"context_line":""},{"line_number":1247,"context_line":"        if \"data\" in result:"},{"line_number":1248,"context_line":"            for item in result[\u0027data\u0027]:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a43c5e1_1de573a7","line":1245,"updated":"2015-07-18 18:15:15.000000000","message":"ditto.","commit_id":"3c402f607f0b103d0fa54f7f3dffa1c92e0a2690"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"dfdeacf8e1cbe16e6b1bc8ccb60245cd44eecfd2","unresolved":false,"context_lines":[{"line_number":1242,"context_line":"    def get_cache_id_by_name(self, name):"},{"line_number":1243,"context_line":"        url \u003d self.url + \"/SMARTCACHEPARTITION\""},{"line_number":1244,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":1245,"context_line":"        self._assert_rest_result(result, \u0027Get cache by name error!\u0027)"},{"line_number":1246,"context_line":""},{"line_number":1247,"context_line":"        if \"data\" in result:"},{"line_number":1248,"context_line":"            for item in result[\u0027data\u0027]:"}],"source_content_type":"text/x-python","patch_set":16,"id":"3a50d1a3_23a049f4","line":1245,"in_reply_to":"5a43c5e1_1de573a7","updated":"2015-07-19 11:17:57.000000000","message":"Done","commit_id":"3c402f607f0b103d0fa54f7f3dffa1c92e0a2690"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"d4e5114b1bf22609015350362036753b77f73dfa","unresolved":false,"context_lines":[{"line_number":1258,"context_line":"                           \"ID\": qos_id})"},{"line_number":1259,"context_line":"        result \u003d self.call(url, data, \"PUT\")"},{"line_number":1260,"context_line":""},{"line_number":1261,"context_line":"        self._assert_rest_result(result, \u0027Asscioate lun to Qos error.\u0027)"},{"line_number":1262,"context_line":"        self._assert_data_in_result(result, \u0027Asscioate lun to Qos error.\u0027)"},{"line_number":1263,"context_line":""},{"line_number":1264,"context_line":"    def change_lun_priority(self, lun_id):"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a50d1a3_9f2e85a3","line":1261,"updated":"2015-07-23 07:28:42.000000000","message":"The function is \"remove lun from qos\". So the message should be \"Remove lun from QoS error.\"?","commit_id":"6c0c2eff0b6f5dd59e00a423d5857a5816b25443"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"a91dfad6e57620989066175e2aa29de9cc7bea25","unresolved":false,"context_lines":[{"line_number":1258,"context_line":"                           \"ID\": qos_id})"},{"line_number":1259,"context_line":"        result \u003d self.call(url, data, \"PUT\")"},{"line_number":1260,"context_line":""},{"line_number":1261,"context_line":"        self._assert_rest_result(result, \u0027Asscioate lun to Qos error.\u0027)"},{"line_number":1262,"context_line":"        self._assert_data_in_result(result, \u0027Asscioate lun to Qos error.\u0027)"},{"line_number":1263,"context_line":""},{"line_number":1264,"context_line":"    def change_lun_priority(self, lun_id):"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a50d1a3_f0f6d68d","line":1261,"in_reply_to":"3a50d1a3_9f2e85a3","updated":"2015-07-23 08:12:25.000000000","message":"Done","commit_id":"6c0c2eff0b6f5dd59e00a423d5857a5816b25443"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"d4e5114b1bf22609015350362036753b77f73dfa","unresolved":false,"context_lines":[{"line_number":1259,"context_line":"        result \u003d self.call(url, data, \"PUT\")"},{"line_number":1260,"context_line":""},{"line_number":1261,"context_line":"        self._assert_rest_result(result, \u0027Asscioate lun to Qos error.\u0027)"},{"line_number":1262,"context_line":"        self._assert_data_in_result(result, \u0027Asscioate lun to Qos error.\u0027)"},{"line_number":1263,"context_line":""},{"line_number":1264,"context_line":"    def change_lun_priority(self, lun_id):"},{"line_number":1265,"context_line":"        \"\"\"Change lun priority to high.\"\"\""}],"source_content_type":"text/x-python","patch_set":22,"id":"3a50d1a3_2a0b7125","line":1262,"updated":"2015-07-23 07:28:42.000000000","message":"The seem as above.","commit_id":"6c0c2eff0b6f5dd59e00a423d5857a5816b25443"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"a91dfad6e57620989066175e2aa29de9cc7bea25","unresolved":false,"context_lines":[{"line_number":1259,"context_line":"        result \u003d self.call(url, data, \"PUT\")"},{"line_number":1260,"context_line":""},{"line_number":1261,"context_line":"        self._assert_rest_result(result, \u0027Asscioate lun to Qos error.\u0027)"},{"line_number":1262,"context_line":"        self._assert_data_in_result(result, \u0027Asscioate lun to Qos error.\u0027)"},{"line_number":1263,"context_line":""},{"line_number":1264,"context_line":"    def change_lun_priority(self, lun_id):"},{"line_number":1265,"context_line":"        \"\"\"Change lun priority to high.\"\"\""}],"source_content_type":"text/x-python","patch_set":22,"id":"3a50d1a3_90f19297","line":1262,"in_reply_to":"3a50d1a3_2a0b7125","updated":"2015-07-23 08:12:25.000000000","message":"Done","commit_id":"6c0c2eff0b6f5dd59e00a423d5857a5816b25443"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"d4e5114b1bf22609015350362036753b77f73dfa","unresolved":false,"context_lines":[{"line_number":1373,"context_line":"                           \"TYPE\": 230,"},{"line_number":1374,"context_line":"                           \"ID\": qos_id})"},{"line_number":1375,"context_line":"        result \u003d self.call(url, data, \"PUT\")"},{"line_number":1376,"context_line":"        self._assert_rest_result(result, \u0027Asscioate lun to Qos error.\u0027)"},{"line_number":1377,"context_line":"        self._assert_data_in_result(result, \u0027Asscioate lun to Qos error.\u0027)"},{"line_number":1378,"context_line":""},{"line_number":1379,"context_line":"    def add_lun_to_cache(self, lun_id, cache_id):"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a50d1a3_7f505932","line":1376,"updated":"2015-07-23 07:28:42.000000000","message":"s/Asscioate/Associate","commit_id":"6c0c2eff0b6f5dd59e00a423d5857a5816b25443"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"a91dfad6e57620989066175e2aa29de9cc7bea25","unresolved":false,"context_lines":[{"line_number":1373,"context_line":"                           \"TYPE\": 230,"},{"line_number":1374,"context_line":"                           \"ID\": qos_id})"},{"line_number":1375,"context_line":"        result \u003d self.call(url, data, \"PUT\")"},{"line_number":1376,"context_line":"        self._assert_rest_result(result, \u0027Asscioate lun to Qos error.\u0027)"},{"line_number":1377,"context_line":"        self._assert_data_in_result(result, \u0027Asscioate lun to Qos error.\u0027)"},{"line_number":1378,"context_line":""},{"line_number":1379,"context_line":"    def add_lun_to_cache(self, lun_id, cache_id):"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a50d1a3_50154a99","line":1376,"in_reply_to":"3a50d1a3_7f505932","updated":"2015-07-23 08:12:25.000000000","message":"Done","commit_id":"6c0c2eff0b6f5dd59e00a423d5857a5816b25443"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"d4e5114b1bf22609015350362036753b77f73dfa","unresolved":false,"context_lines":[{"line_number":1374,"context_line":"                           \"ID\": qos_id})"},{"line_number":1375,"context_line":"        result \u003d self.call(url, data, \"PUT\")"},{"line_number":1376,"context_line":"        self._assert_rest_result(result, \u0027Asscioate lun to Qos error.\u0027)"},{"line_number":1377,"context_line":"        self._assert_data_in_result(result, \u0027Asscioate lun to Qos error.\u0027)"},{"line_number":1378,"context_line":""},{"line_number":1379,"context_line":"    def add_lun_to_cache(self, lun_id, cache_id):"},{"line_number":1380,"context_line":"        url \u003d self.url + \"/SMARTCACHEPARTITION/CREATE_ASSOCIATE\""}],"source_content_type":"text/x-python","patch_set":22,"id":"3a50d1a3_bf526133","line":1377,"updated":"2015-07-23 07:28:42.000000000","message":"s/Asscioate/Associate","commit_id":"6c0c2eff0b6f5dd59e00a423d5857a5816b25443"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"a91dfad6e57620989066175e2aa29de9cc7bea25","unresolved":false,"context_lines":[{"line_number":1374,"context_line":"                           \"ID\": qos_id})"},{"line_number":1375,"context_line":"        result \u003d self.call(url, data, \"PUT\")"},{"line_number":1376,"context_line":"        self._assert_rest_result(result, \u0027Asscioate lun to Qos error.\u0027)"},{"line_number":1377,"context_line":"        self._assert_data_in_result(result, \u0027Asscioate lun to Qos error.\u0027)"},{"line_number":1378,"context_line":""},{"line_number":1379,"context_line":"    def add_lun_to_cache(self, lun_id, cache_id):"},{"line_number":1380,"context_line":"        url \u003d self.url + \"/SMARTCACHEPARTITION/CREATE_ASSOCIATE\""}],"source_content_type":"text/x-python","patch_set":22,"id":"3a50d1a3_701886d3","line":1377,"in_reply_to":"3a50d1a3_bf526133","updated":"2015-07-23 08:12:25.000000000","message":"Done","commit_id":"6c0c2eff0b6f5dd59e00a423d5857a5816b25443"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"d4e5114b1bf22609015350362036753b77f73dfa","unresolved":false,"context_lines":[{"line_number":1384,"context_line":"                           \"TYPE\": 273})"},{"line_number":1385,"context_line":"        result \u003d self.call(url, data, \"PUT\")"},{"line_number":1386,"context_line":""},{"line_number":1387,"context_line":"        self._assert_rest_result(result, \u0027Add cache to cache error.\u0027)"},{"line_number":1388,"context_line":""},{"line_number":1389,"context_line":"    def find_array_version(self):"},{"line_number":1390,"context_line":"        url \u003d self.url + \"/system/\""}],"source_content_type":"text/x-python","patch_set":22,"id":"3a50d1a3_9f1f65b6","line":1387,"updated":"2015-07-23 07:28:42.000000000","message":"Add lun to cache error?","commit_id":"6c0c2eff0b6f5dd59e00a423d5857a5816b25443"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"a91dfad6e57620989066175e2aa29de9cc7bea25","unresolved":false,"context_lines":[{"line_number":1384,"context_line":"                           \"TYPE\": 273})"},{"line_number":1385,"context_line":"        result \u003d self.call(url, data, \"PUT\")"},{"line_number":1386,"context_line":""},{"line_number":1387,"context_line":"        self._assert_rest_result(result, \u0027Add cache to cache error.\u0027)"},{"line_number":1388,"context_line":""},{"line_number":1389,"context_line":"    def find_array_version(self):"},{"line_number":1390,"context_line":"        url \u003d self.url + \"/system/\""}],"source_content_type":"text/x-python","patch_set":22,"id":"3a50d1a3_d0707a0d","line":1387,"in_reply_to":"3a50d1a3_9f1f65b6","updated":"2015-07-23 08:12:25.000000000","message":"Done","commit_id":"6c0c2eff0b6f5dd59e00a423d5857a5816b25443"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b58198a3a0ec0cdf4b484a9f6d6839c18b11a251","unresolved":false,"context_lines":[{"line_number":1243,"context_line":"        \"\"\"Get the lun list in qos.\"\"\""},{"line_number":1244,"context_line":"        qos_info \u003d self.get_qos_info(qos_id)"},{"line_number":1245,"context_line":"        lunlist \u003d qos_info[\u0027LUNLIST\u0027]"},{"line_number":1246,"context_line":"        lun_list \u003d []"},{"line_number":1247,"context_line":"        lun_string \u003d lunlist[1:-1]"},{"line_number":1248,"context_line":""},{"line_number":1249,"context_line":"        for lun in lun_string.split(\",\"):"}],"source_content_type":"text/x-python","patch_set":26,"id":"3a50d1a3_0c35e3d8","line":1246,"updated":"2015-07-27 10:18:39.000000000","message":"Variable names lunlist and lun_list are almost the same. It makes code less readable","commit_id":"c3269c5f79aec738530370249f07a57642f7ae4f"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"48168662364199c083b2049a7dbc895adac571c3","unresolved":false,"context_lines":[{"line_number":1243,"context_line":"        \"\"\"Get the lun list in qos.\"\"\""},{"line_number":1244,"context_line":"        qos_info \u003d self.get_qos_info(qos_id)"},{"line_number":1245,"context_line":"        lunlist \u003d qos_info[\u0027LUNLIST\u0027]"},{"line_number":1246,"context_line":"        lun_list \u003d []"},{"line_number":1247,"context_line":"        lun_string \u003d lunlist[1:-1]"},{"line_number":1248,"context_line":""},{"line_number":1249,"context_line":"        for lun in lun_string.split(\",\"):"}],"source_content_type":"text/x-python","patch_set":26,"id":"3a50d1a3_a78648d9","line":1246,"in_reply_to":"3a50d1a3_0c35e3d8","updated":"2015-07-27 11:06:25.000000000","message":"Done","commit_id":"c3269c5f79aec738530370249f07a57642f7ae4f"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"708eaa4615587b1a438acfb4f7b0b7daf8eeb74e","unresolved":false,"context_lines":[{"line_number":1327,"context_line":""},{"line_number":1328,"context_line":"        return result[\u0027data\u0027]"},{"line_number":1329,"context_line":""},{"line_number":1330,"context_line":"    def get_partition_id_by_name(self, name):"},{"line_number":1331,"context_line":"        url \u003d self.url + \"/cachepartition\""},{"line_number":1332,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":1333,"context_line":"        self._assert_rest_result(result, \u0027Get partition by name error.\u0027)"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a50d1a3_9c60d3d0","line":1330,"updated":"2015-07-29 06:45:25.000000000","message":"get_partition_id_by_name and get_cache_id_by_name can be optimized too if you optimized corresponding classes.","commit_id":"d98d034f956580ea77cc3843de5d61cea67aea74"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"833e0d911e39d171f860603715ddd9c02c8a0bf5","unresolved":false,"context_lines":[{"line_number":1332,"context_line":""},{"line_number":1333,"context_line":"        if \u0027data\u0027 in result:"},{"line_number":1334,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":1335,"context_line":"                LOG.debug((\u0027get_partition_id_by_name item %(item)s.\u0027)"},{"line_number":1336,"context_line":"                          % {\u0027item\u0027: item})"},{"line_number":1337,"context_line":"                if name \u003d\u003d item[\u0027NAME\u0027]:"},{"line_number":1338,"context_line":"                    return item[\u0027ID\u0027]"}],"source_content_type":"text/x-python","patch_set":30,"id":"3a50d1a3_9cde81d8","line":1335,"updated":"2015-07-29 13:52:23.000000000","message":"Unnecessary () around the string and % should be changed to , to pass the formatting values in as an argument to the logger.","commit_id":"bd48f1244696cc9934b4fb05e801a69522d9c3b5"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"4c1628f21eed4868897c9b5964a12aea1fae6bb2","unresolved":false,"context_lines":[{"line_number":1332,"context_line":""},{"line_number":1333,"context_line":"        if \u0027data\u0027 in result:"},{"line_number":1334,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":1335,"context_line":"                LOG.debug((\u0027get_partition_id_by_name item %(item)s.\u0027)"},{"line_number":1336,"context_line":"                          % {\u0027item\u0027: item})"},{"line_number":1337,"context_line":"                if name \u003d\u003d item[\u0027NAME\u0027]:"},{"line_number":1338,"context_line":"                    return item[\u0027ID\u0027]"}],"source_content_type":"text/x-python","patch_set":30,"id":"3a50d1a3_a3d31503","line":1335,"in_reply_to":"3a50d1a3_9cde81d8","updated":"2015-07-29 16:27:38.000000000","message":"Done","commit_id":"bd48f1244696cc9934b4fb05e801a69522d9c3b5"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"833e0d911e39d171f860603715ddd9c02c8a0bf5","unresolved":false,"context_lines":[{"line_number":1406,"context_line":"                           \"TYPE\": 230,"},{"line_number":1407,"context_line":"                           \"ID\": qos_id})"},{"line_number":1408,"context_line":"        result \u003d self.call(url, data, \"PUT\")"},{"line_number":1409,"context_line":"        self._assert_rest_result(result, \u0027Associate lun to Qos error.\u0027)"},{"line_number":1410,"context_line":"        self._assert_data_in_result(result, \u0027Associate lun to Qos error.\u0027)"},{"line_number":1411,"context_line":""},{"line_number":1412,"context_line":"    def add_lun_to_cache(self, lun_id, cache_id):"}],"source_content_type":"text/x-python","patch_set":30,"id":"3a50d1a3_bcb25d92","line":1409,"updated":"2015-07-29 13:52:23.000000000","message":"All of these error messages passed in to _assert_rest_result and _assert_data_in_result should have _() translation markers.","commit_id":"bd48f1244696cc9934b4fb05e801a69522d9c3b5"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"4c1628f21eed4868897c9b5964a12aea1fae6bb2","unresolved":false,"context_lines":[{"line_number":1406,"context_line":"                           \"TYPE\": 230,"},{"line_number":1407,"context_line":"                           \"ID\": qos_id})"},{"line_number":1408,"context_line":"        result \u003d self.call(url, data, \"PUT\")"},{"line_number":1409,"context_line":"        self._assert_rest_result(result, \u0027Associate lun to Qos error.\u0027)"},{"line_number":1410,"context_line":"        self._assert_data_in_result(result, \u0027Associate lun to Qos error.\u0027)"},{"line_number":1411,"context_line":""},{"line_number":1412,"context_line":"    def add_lun_to_cache(self, lun_id, cache_id):"}],"source_content_type":"text/x-python","patch_set":30,"id":"3a50d1a3_79b7fc20","line":1409,"in_reply_to":"3a50d1a3_bcb25d92","updated":"2015-07-29 16:27:38.000000000","message":"Could I add the _() translation marker into _assert_rest_result functions?","commit_id":"bd48f1244696cc9934b4fb05e801a69522d9c3b5"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"d058421ed8685a7fabc671ca1b659130425076fa","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    def _assert_rest_result(self, result, err_str):"},{"line_number":119,"context_line":"        error_code \u003d result[\u0027error\u0027][\u0027code\u0027]"},{"line_number":120,"context_line":"\t\terr_str \u003d _(err_str)"},{"line_number":121,"context_line":"        if error_code !\u003d 0:"},{"line_number":122,"context_line":"            msg \u003d (_(\u0027%(err)s\\nresult: %(res)s.\u0027) % {\u0027err\u0027: err_str,"},{"line_number":123,"context_line":"                                                     \u0027res\u0027: result})"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_9d3751e2","line":120,"updated":"2015-07-29 17:45:41.000000000","message":"do we need to convert \u0027err_str\u0027 again?\nalready we are passing converting message with _() in calling function.\n@smgcinnis: can you comment on this?","commit_id":"f319784f73579d63df8c54eae21cbd085446271f"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"d058421ed8685a7fabc671ca1b659130425076fa","unresolved":false,"context_lines":[{"line_number":1261,"context_line":"                           \"ID\": qos_id})"},{"line_number":1262,"context_line":"        result \u003d self.call(url, data, \"PUT\")"},{"line_number":1263,"context_line":""},{"line_number":1264,"context_line":"\t\tmsg \u003d _(\u0027Remove lun from Qos error.\u0027)"},{"line_number":1265,"context_line":"        self._assert_rest_result(result, msg)"},{"line_number":1266,"context_line":"        self._assert_data_in_result(result, msg)"},{"line_number":1267,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_fd0695cc","line":1264,"updated":"2015-07-29 17:45:41.000000000","message":"looks like some space or tab issue?","commit_id":"f319784f73579d63df8c54eae21cbd085446271f"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"d058421ed8685a7fabc671ca1b659130425076fa","unresolved":false,"context_lines":[{"line_number":1408,"context_line":"                           \"TYPE\": 230,"},{"line_number":1409,"context_line":"                           \"ID\": qos_id})"},{"line_number":1410,"context_line":"        result \u003d self.call(url, data, \"PUT\")"},{"line_number":1411,"context_line":"\t\tmsg \u003d _(\u0027Associate lun to Qos error.\u0027)"},{"line_number":1412,"context_line":"        self._assert_rest_result(result, msg)"},{"line_number":1413,"context_line":"        self._assert_data_in_result(result, msg)"},{"line_number":1414,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_3d6abd81","line":1411,"updated":"2015-07-29 17:45:41.000000000","message":"looks like some space or tab issue?","commit_id":"f319784f73579d63df8c54eae21cbd085446271f"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"eaafa2e48a99415c0fc99bf259e7e2795d88b0fa","unresolved":false,"context_lines":[{"line_number":1410,"context_line":"                           \"TYPE\": 230,"},{"line_number":1411,"context_line":"                           \"ID\": qos_id})"},{"line_number":1412,"context_line":"        result \u003d self.call(url, data, \"PUT\")"},{"line_number":1413,"context_line":"        msg \u003d \u0027Associate lun to Qos error.\u0027"},{"line_number":1414,"context_line":"        self._assert_rest_result(result, msg)"},{"line_number":1415,"context_line":"        self._assert_data_in_result(result, msg)"},{"line_number":1416,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"3a50d1a3_e0dd8c41","line":1413,"updated":"2015-07-29 17:59:05.000000000","message":"missing _() ?","commit_id":"e5e864e85a10427b63d30af9261c060e873f64de"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"37b673d805a26bba2e2126b5cf4d06afbc73d3c8","unresolved":false,"context_lines":[{"line_number":1410,"context_line":"                           \"TYPE\": 230,"},{"line_number":1411,"context_line":"                           \"ID\": qos_id})"},{"line_number":1412,"context_line":"        result \u003d self.call(url, data, \"PUT\")"},{"line_number":1413,"context_line":"        msg \u003d \u0027Associate lun to Qos error.\u0027"},{"line_number":1414,"context_line":"        self._assert_rest_result(result, msg)"},{"line_number":1415,"context_line":"        self._assert_data_in_result(result, msg)"},{"line_number":1416,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"3a50d1a3_4ee03126","line":1413,"in_reply_to":"3a50d1a3_e0dd8c41","updated":"2015-07-29 18:22:57.000000000","message":"Done, thanks!","commit_id":"e5e864e85a10427b63d30af9261c060e873f64de"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"eaafa2e48a99415c0fc99bf259e7e2795d88b0fa","unresolved":false,"context_lines":[{"line_number":1446,"context_line":"        url \u003d self.url + url_subfix001 + url_subfix002"},{"line_number":1447,"context_line":"        result \u003d self.call(url, None, \"DELETE\")"},{"line_number":1448,"context_line":"        self._assert_rest_result(result,"},{"line_number":1449,"context_line":"                                 _(\u0027Remove host from hostgroup error.\u0027))"},{"line_number":1450,"context_line":""},{"line_number":1451,"context_line":"    def remove_iscsi_from_host(self, initiator):"},{"line_number":1452,"context_line":"        url \u003d self.url + \"/iscsi_initiator/remove_iscsi_from_host\""}],"source_content_type":"text/x-python","patch_set":32,"id":"3a50d1a3_03d2025c","line":1449,"updated":"2015-07-29 17:59:05.000000000","message":"@smcginnis: is this way of passing string with _() inside _assert_rest_result function ok?","commit_id":"e5e864e85a10427b63d30af9261c060e873f64de"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"92ec334b400e2640e9cfeff82d520856800f78a1","unresolved":false,"context_lines":[{"line_number":1446,"context_line":"        url \u003d self.url + url_subfix001 + url_subfix002"},{"line_number":1447,"context_line":"        result \u003d self.call(url, None, \"DELETE\")"},{"line_number":1448,"context_line":"        self._assert_rest_result(result,"},{"line_number":1449,"context_line":"                                 _(\u0027Remove host from hostgroup error.\u0027))"},{"line_number":1450,"context_line":""},{"line_number":1451,"context_line":"    def remove_iscsi_from_host(self, initiator):"},{"line_number":1452,"context_line":"        url \u003d self.url + \"/iscsi_initiator/remove_iscsi_from_host\""}],"source_content_type":"text/x-python","patch_set":32,"id":"3a50d1a3_e42d9946","line":1449,"in_reply_to":"3a50d1a3_03d2025c","updated":"2015-07-29 19:57:48.000000000","message":"Yep, perfect.","commit_id":"e5e864e85a10427b63d30af9261c060e873f64de"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cbb42ece52f0fc9868e8e256a4f14e8a1169f134","unresolved":false,"context_lines":[{"line_number":1059,"context_line":"                pool_name\u003dpool_name,"},{"line_number":1060,"context_line":"                total_capacity_gb\u003dcapacity[\u0027total_capacity\u0027],"},{"line_number":1061,"context_line":"                free_capacity_gb\u003dcapacity[\u0027free_capacity\u0027],"},{"line_number":1062,"context_line":"                reserved_percentage\u003d0,"},{"line_number":1063,"context_line":"                QoS_support\u003dTrue,"},{"line_number":1064,"context_line":"                thin_provisioning\u003dTrue,"},{"line_number":1065,"context_line":"                thick_provisioning\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":38,"id":"3a50d1a3_bb440347","line":1062,"updated":"2015-08-02 17:46:30.000000000","message":"This should be reading from cinder.conf.\n\nhttps://github.com/openstack/cinder/blob/master/cinder/volume/drivers/lvm.py#L234","commit_id":"18b614c0a0963bb80ea52303c70e3250f0091d44"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"143b18c69dab116933553f72b0e3a4673b12d339","unresolved":false,"context_lines":[{"line_number":1059,"context_line":"                pool_name\u003dpool_name,"},{"line_number":1060,"context_line":"                total_capacity_gb\u003dcapacity[\u0027total_capacity\u0027],"},{"line_number":1061,"context_line":"                free_capacity_gb\u003dcapacity[\u0027free_capacity\u0027],"},{"line_number":1062,"context_line":"                reserved_percentage\u003d0,"},{"line_number":1063,"context_line":"                QoS_support\u003dTrue,"},{"line_number":1064,"context_line":"                thin_provisioning\u003dTrue,"},{"line_number":1065,"context_line":"                thick_provisioning\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":38,"id":"3a50d1a3_610b22d6","line":1062,"in_reply_to":"3a50d1a3_bb440347","updated":"2015-08-03 07:44:52.000000000","message":"Sure, I will change it, thanks!","commit_id":"18b614c0a0963bb80ea52303c70e3250f0091d44"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cbb42ece52f0fc9868e8e256a4f14e8a1169f134","unresolved":false,"context_lines":[{"line_number":1062,"context_line":"                reserved_percentage\u003d0,"},{"line_number":1063,"context_line":"                QoS_support\u003dTrue,"},{"line_number":1064,"context_line":"                thin_provisioning\u003dTrue,"},{"line_number":1065,"context_line":"                thick_provisioning\u003dTrue,"},{"line_number":1066,"context_line":"                smarttier\u003dTrue,"},{"line_number":1067,"context_line":"                smartcache\u003dTrue,"},{"line_number":1068,"context_line":"                smartpartition\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":38,"id":"3a50d1a3_fb3e0bb7","line":1065,"updated":"2015-08-02 17:46:30.000000000","message":"Please use the same parameter names for thin/thick:\n \nhttps://github.com/openstack/cinder/blob/master/cinder/volume/drivers/lvm.py#L241\n\nAlso are you planning to add oversubscription support?","commit_id":"18b614c0a0963bb80ea52303c70e3250f0091d44"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"9a14541b461bd00d6654293c81bf7e2754cd4cc5","unresolved":false,"context_lines":[{"line_number":1368,"context_line":"            for item in result[\u0027data\u0027]:"},{"line_number":1369,"context_line":"                if name \u003d\u003d item[\u0027NAME\u0027]:"},{"line_number":1370,"context_line":"                    return item[\u0027ID\u0027]"},{"line_number":1371,"context_line":"        return"},{"line_number":1372,"context_line":""},{"line_number":1373,"context_line":"    def find_available_qos(self, qos):"},{"line_number":1374,"context_line":"        \"\"\"\"Find available QoS on the array.\"\"\""}],"source_content_type":"text/x-python","patch_set":40,"id":"1a4dcd0f_c4d85956","line":1371,"updated":"2015-08-04 13:34:25.000000000","message":"return not actually needed here.","commit_id":"c29e60479639f61a7095e7458de6139b76d6fda3"}],"cinder/volume/drivers/huawei/smartx.py":[{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"ad67006a2c1ff17208618fdca6c2acd8f500e365","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":"#"},{"line_number":16,"context_line":"# from oslo_log import log as logging"},{"line_number":17,"context_line":"from oslo_log import log as logging"},{"line_number":18,"context_line":"from oslo_utils import excutils"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_e041ed3a","line":16,"updated":"2015-06-05 10:38:45.000000000","message":"Please remove the commented code.","commit_id":"ba3084ed0ee9af3e7e3e5229ffda28296fcb2977"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"8848c230c98ae4d56630d05313e4bc2dcac92b24","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":"#"},{"line_number":16,"context_line":"# from oslo_log import log as logging"},{"line_number":17,"context_line":"from oslo_log import log as logging"},{"line_number":18,"context_line":"from oslo_utils import excutils"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_c247e31b","line":16,"in_reply_to":"3afb71cf_e041ed3a","updated":"2015-06-08 07:44:23.000000000","message":"Done","commit_id":"ba3084ed0ee9af3e7e3e5229ffda28296fcb2977"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"01b24804c94e99da0b57bb982a129d9f9abc1e9a","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        policy_id \u003d None"},{"line_number":32,"context_line":"        try:"},{"line_number":33,"context_line":"            # Check QoS priority. if high, change lun priority to high."},{"line_number":34,"context_line":"            if huawei_utils._check_qos_high_priority(qos) is True:"},{"line_number":35,"context_line":"                self.client._change_lun_priority(lun_id)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"            # Create QoS policy and active."}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_ba78bec5","line":34,"updated":"2015-06-15 23:20:20.000000000","message":"the \u0027is True\u0027 isn\u0027t really needed","commit_id":"c48376954640752bd61d099dab0b9e1dcb7e6964"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"a8070a1862262a9face5e9c11fe9767d722c8aa9","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        policy_id \u003d None"},{"line_number":32,"context_line":"        try:"},{"line_number":33,"context_line":"            # Check QoS priority. if high, change lun priority to high."},{"line_number":34,"context_line":"            if huawei_utils._check_qos_high_priority(qos) is True:"},{"line_number":35,"context_line":"                self.client._change_lun_priority(lun_id)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"            # Create QoS policy and active."}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_77cd645c","line":34,"in_reply_to":"fa32b979_ba78bec5","updated":"2015-06-16 08:26:42.000000000","message":"Done","commit_id":"c48376954640752bd61d099dab0b9e1dcb7e6964"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"01b24804c94e99da0b57bb982a129d9f9abc1e9a","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    @staticmethod"},{"line_number":61,"context_line":"    def factory(driver):"},{"line_number":62,"context_line":"        \"\"\"Use replication methods for the requested mode.\"\"\""},{"line_number":63,"context_line":"        stretch \u003d driver.configuration.storwize_svc_stretched_cluster_partner"},{"line_number":64,"context_line":"        if stretch:"},{"line_number":65,"context_line":"            return SmartQos(driver)"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_3a190e89","line":63,"updated":"2015-06-15 23:20:20.000000000","message":"is this supposed to be the storwize config option?","commit_id":"c48376954640752bd61d099dab0b9e1dcb7e6964"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"0e402895680699b1dcd9853be503410a5c484271","unresolved":false,"context_lines":[{"line_number":126,"context_line":"            elif opts[\u0027policy\u0027] not in [\u00270\u0027, \u00271\u0027, \u00272\u0027, \u00273\u0027]:"},{"line_number":127,"context_line":"                raise exception.InvalidInput("},{"line_number":128,"context_line":"                    reason\u003d(_(\u0027Illegal value specified for smarttier: \u0027"},{"line_number":129,"context_line":"                              \u0027set to either 0, 1, 2, or 3\u0027)))"},{"line_number":130,"context_line":"        else:"},{"line_number":131,"context_line":"            opts[\u0027policy\u0027] \u003d \u00270\u0027"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_3c119152","line":129,"updated":"2015-07-09 01:15:55.000000000","message":"Need full stop at the end of sentence to keep consistent.","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"625e3d008a123efbe2398106f94043b2e90a16df","unresolved":false,"context_lines":[{"line_number":126,"context_line":"            elif opts[\u0027policy\u0027] not in [\u00270\u0027, \u00271\u0027, \u00272\u0027, \u00273\u0027]:"},{"line_number":127,"context_line":"                raise exception.InvalidInput("},{"line_number":128,"context_line":"                    reason\u003d(_(\u0027Illegal value specified for smarttier: \u0027"},{"line_number":129,"context_line":"                              \u0027set to either 0, 1, 2, or 3\u0027)))"},{"line_number":130,"context_line":"        else:"},{"line_number":131,"context_line":"            opts[\u0027policy\u0027] \u003d \u00270\u0027"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_015bb6f7","line":129,"in_reply_to":"ba3cc151_3c119152","updated":"2015-07-10 11:01:43.000000000","message":"Done","commit_id":"445ed7410a6e2b8f6bbfd96d06851c492e30d854"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"ced33b55a85d559dfd5c6522762b279f213fc589","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        self.client \u003d client"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    @staticmethod"},{"line_number":110,"context_line":"    def factory(driver):"},{"line_number":111,"context_line":"        \"\"\"Use replication methods for the requested mode.\"\"\""},{"line_number":112,"context_line":"        stretch \u003d driver.configuration.storwize_svc_stretched_cluster_partner"},{"line_number":113,"context_line":"        if stretch:"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a50d1a3_b294c18a","line":110,"updated":"2015-07-23 13:35:26.000000000","message":"the method is never used","commit_id":"8175e664c868c10dc466bfc19cfb41ccd5854281"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b58198a3a0ec0cdf4b484a9f6d6839c18b11a251","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            else:"},{"line_number":47,"context_line":"                policy_id \u003d self.client.create_qos_policy(qos, lun_id)"},{"line_number":48,"context_line":"                self.client.active_deactive_qos(policy_id, True)"},{"line_number":49,"context_line":"        except Exception:"},{"line_number":50,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":51,"context_line":"                if policy_id is not None:"},{"line_number":52,"context_line":"                    self.client.delete_qos_policy(policy_id)"}],"source_content_type":"text/x-python","patch_set":26,"id":"3a50d1a3_0cbf23fc","line":49,"updated":"2015-07-27 10:18:39.000000000","message":"Could we handle more specific exception here?","commit_id":"c3269c5f79aec738530370249f07a57642f7ae4f"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"48168662364199c083b2049a7dbc895adac571c3","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            else:"},{"line_number":47,"context_line":"                policy_id \u003d self.client.create_qos_policy(qos, lun_id)"},{"line_number":48,"context_line":"                self.client.active_deactive_qos(policy_id, True)"},{"line_number":49,"context_line":"        except Exception:"},{"line_number":50,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":51,"context_line":"                if policy_id is not None:"},{"line_number":52,"context_line":"                    self.client.delete_qos_policy(policy_id)"}],"source_content_type":"text/x-python","patch_set":26,"id":"3a50d1a3_92dd8844","line":49,"in_reply_to":"3a50d1a3_0cbf23fc","updated":"2015-07-27 11:06:25.000000000","message":"Thanks, I think I should exctpt \"VolumeBackendAPIException\" here.","commit_id":"c3269c5f79aec738530370249f07a57642f7ae4f"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b58198a3a0ec0cdf4b484a9f6d6839c18b11a251","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        \"\"\"Use replication methods for the requested mode.\"\"\""},{"line_number":113,"context_line":"        stretch \u003d driver.configuration.storwize_svc_stretched_cluster_partner"},{"line_number":114,"context_line":"        if stretch:"},{"line_number":115,"context_line":"            return SmartQos(driver)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def get_smartx_specs_opts(self, opts):"},{"line_number":118,"context_line":"        # Check that smarttier is 0/1/2/3"}],"source_content_type":"text/x-python","patch_set":26,"id":"3a50d1a3_ccd37b37","line":115,"updated":"2015-07-27 10:18:39.000000000","message":"Why do you pass driver here? SmartQos.__init__ has client param","commit_id":"c3269c5f79aec738530370249f07a57642f7ae4f"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"48168662364199c083b2049a7dbc895adac571c3","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        \"\"\"Use replication methods for the requested mode.\"\"\""},{"line_number":113,"context_line":"        stretch \u003d driver.configuration.storwize_svc_stretched_cluster_partner"},{"line_number":114,"context_line":"        if stretch:"},{"line_number":115,"context_line":"            return SmartQos(driver)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def get_smartx_specs_opts(self, opts):"},{"line_number":118,"context_line":"        # Check that smarttier is 0/1/2/3"}],"source_content_type":"text/x-python","patch_set":26,"id":"3a50d1a3_edec312b","line":115,"in_reply_to":"3a50d1a3_ccd37b37","updated":"2015-07-27 11:06:25.000000000","message":"This method should be removed, thanks.","commit_id":"c3269c5f79aec738530370249f07a57642f7ae4f"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"fbe673c507fc72db61d8b412be5c5cc094b3204f","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        if not opts[\u0027cachename\u0027]:"},{"line_number":93,"context_line":"            raise exception.InvalidInput("},{"line_number":94,"context_line":"                reason\u003d_(\u0027Cache name is None, please set \u0027"},{"line_number":95,"context_line":"                         \u0027SmartCache:cachename in key.\u0027))"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        cache_id \u003d self.client.get_cache_id_by_name(opts[\u0027cachename\u0027])"},{"line_number":98,"context_line":"        if not cache_id:"}],"source_content_type":"text/x-python","patch_set":28,"id":"3a50d1a3_24044848","line":95,"updated":"2015-07-28 06:26:01.000000000","message":"s/SmartCache:cachename/smartcache:cachename, keep consistent with line 146.","commit_id":"4557108be2f3b0c9ea4e1eef4bb3262538b9bb9a"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"2ff1672b43fd60b5202683442fb5ca8444c09be7","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        if not opts[\u0027cachename\u0027]:"},{"line_number":93,"context_line":"            raise exception.InvalidInput("},{"line_number":94,"context_line":"                reason\u003d_(\u0027Cache name is None, please set \u0027"},{"line_number":95,"context_line":"                         \u0027SmartCache:cachename in key.\u0027))"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        cache_id \u003d self.client.get_cache_id_by_name(opts[\u0027cachename\u0027])"},{"line_number":98,"context_line":"        if not cache_id:"}],"source_content_type":"text/x-python","patch_set":28,"id":"3a50d1a3_68b72c21","line":95,"in_reply_to":"3a50d1a3_1c97e33a","updated":"2015-07-29 15:32:26.000000000","message":"nikesh, good suggestion! Can we optimize this in next patch or next release? This is not a easy work to modify so much, so let\u0027s do this step by step, this patch or release just add the smartX support, and let\u0027s optimize these code in next patch or next release. What do you think of that?","commit_id":"4557108be2f3b0c9ea4e1eef4bb3262538b9bb9a"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"abae7c7fdaaf0173974f71523412cb2977880800","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        if not opts[\u0027cachename\u0027]:"},{"line_number":93,"context_line":"            raise exception.InvalidInput("},{"line_number":94,"context_line":"                reason\u003d_(\u0027Cache name is None, please set \u0027"},{"line_number":95,"context_line":"                         \u0027SmartCache:cachename in key.\u0027))"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        cache_id \u003d self.client.get_cache_id_by_name(opts[\u0027cachename\u0027])"},{"line_number":98,"context_line":"        if not cache_id:"}],"source_content_type":"text/x-python","patch_set":28,"id":"3a50d1a3_56701840","line":95,"in_reply_to":"3a50d1a3_24044848","updated":"2015-07-28 11:59:10.000000000","message":"Done","commit_id":"4557108be2f3b0c9ea4e1eef4bb3262538b9bb9a"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"1f7ed4a3da7005debc8b835948fff53a11793a00","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        if not opts[\u0027cachename\u0027]:"},{"line_number":93,"context_line":"            raise exception.InvalidInput("},{"line_number":94,"context_line":"                reason\u003d_(\u0027Cache name is None, please set \u0027"},{"line_number":95,"context_line":"                         \u0027SmartCache:cachename in key.\u0027))"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        cache_id \u003d self.client.get_cache_id_by_name(opts[\u0027cachename\u0027])"},{"line_number":98,"context_line":"        if not cache_id:"}],"source_content_type":"text/x-python","patch_set":28,"id":"3a50d1a3_2728cae1","line":95,"in_reply_to":"3a50d1a3_24044848","updated":"2015-07-28 07:06:54.000000000","message":"Good point.\nAlso, SmartPartition and SmartCache class is same, only cache is replaced by partition.We could optimize the code.\nSame for functions defined in lines 141 and 150.","commit_id":"4557108be2f3b0c9ea4e1eef4bb3262538b9bb9a"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"abae7c7fdaaf0173974f71523412cb2977880800","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        if not opts[\u0027cachename\u0027]:"},{"line_number":93,"context_line":"            raise exception.InvalidInput("},{"line_number":94,"context_line":"                reason\u003d_(\u0027Cache name is None, please set \u0027"},{"line_number":95,"context_line":"                         \u0027SmartCache:cachename in key.\u0027))"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        cache_id \u003d self.client.get_cache_id_by_name(opts[\u0027cachename\u0027])"},{"line_number":98,"context_line":"        if not cache_id:"}],"source_content_type":"text/x-python","patch_set":28,"id":"3a50d1a3_5629f899","line":95,"in_reply_to":"3a50d1a3_2728cae1","updated":"2015-07-28 11:59:10.000000000","message":"Good suggestion! I will think of how to optimize the code here, but probably do the optimization in another patch, thanks!","commit_id":"4557108be2f3b0c9ea4e1eef4bb3262538b9bb9a"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"1fdfea7d3b4407091bdf46abe5dee095e0ce1ed4","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        if not opts[\u0027cachename\u0027]:"},{"line_number":93,"context_line":"            raise exception.InvalidInput("},{"line_number":94,"context_line":"                reason\u003d_(\u0027Cache name is None, please set \u0027"},{"line_number":95,"context_line":"                         \u0027SmartCache:cachename in key.\u0027))"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        cache_id \u003d self.client.get_cache_id_by_name(opts[\u0027cachename\u0027])"},{"line_number":98,"context_line":"        if not cache_id:"}],"source_content_type":"text/x-python","patch_set":28,"id":"3a50d1a3_1c97e33a","line":95,"in_reply_to":"3a50d1a3_56701840","updated":"2015-07-29 06:56:59.000000000","message":"Thanks, you can optimize this by using only one class and using a parameter in constructor to differentiate objects.\nAlso, you can optimize functions\n\u0027get_cache_id_by_name\u0027 and \u0027get_partition_id_by_name\u0027 by using a single function and using a parameter to differentiate.\nBut its just a suggestion.","commit_id":"4557108be2f3b0c9ea4e1eef4bb3262538b9bb9a"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cbb42ece52f0fc9868e8e256a4f14e8a1169f134","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            # Check QoS priority."},{"line_number":35,"context_line":"            if huawei_utils.check_qos_high_priority(qos):"},{"line_number":36,"context_line":"                self.client.change_lun_priority(lun_id)"},{"line_number":37,"context_line":"            # Create QoS policy and active it."},{"line_number":38,"context_line":"            version \u003d self.client.find_array_version()"},{"line_number":39,"context_line":"            if version \u003e\u003d constants.ARRAY_VERSION:"},{"line_number":40,"context_line":"                (qos_id, lun_list) \u003d self.client.find_available_qos(qos)"}],"source_content_type":"text/x-python","patch_set":38,"id":"3a50d1a3_1b1c1765","line":37,"updated":"2015-08-02 17:46:30.000000000","message":"activate","commit_id":"18b614c0a0963bb80ea52303c70e3250f0091d44"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"143b18c69dab116933553f72b0e3a4673b12d339","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            # Check QoS priority."},{"line_number":35,"context_line":"            if huawei_utils.check_qos_high_priority(qos):"},{"line_number":36,"context_line":"                self.client.change_lun_priority(lun_id)"},{"line_number":37,"context_line":"            # Create QoS policy and active it."},{"line_number":38,"context_line":"            version \u003d self.client.find_array_version()"},{"line_number":39,"context_line":"            if version \u003e\u003d constants.ARRAY_VERSION:"},{"line_number":40,"context_line":"                (qos_id, lun_list) \u003d self.client.find_available_qos(qos)"}],"source_content_type":"text/x-python","patch_set":38,"id":"3a50d1a3_163dc92a","line":37,"in_reply_to":"3a50d1a3_1b1c1765","updated":"2015-08-03 07:44:52.000000000","message":"Done","commit_id":"18b614c0a0963bb80ea52303c70e3250f0091d44"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cbb42ece52f0fc9868e8e256a4f14e8a1169f134","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                    self.client.add_lun_to_qos(qos_id, lun_id, lun_list)"},{"line_number":43,"context_line":"                else:"},{"line_number":44,"context_line":"                    policy_id \u003d self.client.create_qos_policy(qos, lun_id)"},{"line_number":45,"context_line":"                    self.client.active_deactive_qos(policy_id, True)"},{"line_number":46,"context_line":"            else:"},{"line_number":47,"context_line":"                policy_id \u003d self.client.create_qos_policy(qos, lun_id)"},{"line_number":48,"context_line":"                self.client.active_deactive_qos(policy_id, True)"}],"source_content_type":"text/x-python","patch_set":38,"id":"3a50d1a3_db3a2fcd","line":45,"updated":"2015-08-02 17:46:30.000000000","message":"Suggest rename to activate_deactivate_qos","commit_id":"18b614c0a0963bb80ea52303c70e3250f0091d44"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"143b18c69dab116933553f72b0e3a4673b12d339","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                    self.client.add_lun_to_qos(qos_id, lun_id, lun_list)"},{"line_number":43,"context_line":"                else:"},{"line_number":44,"context_line":"                    policy_id \u003d self.client.create_qos_policy(qos, lun_id)"},{"line_number":45,"context_line":"                    self.client.active_deactive_qos(policy_id, True)"},{"line_number":46,"context_line":"            else:"},{"line_number":47,"context_line":"                policy_id \u003d self.client.create_qos_policy(qos, lun_id)"},{"line_number":48,"context_line":"                self.client.active_deactive_qos(policy_id, True)"}],"source_content_type":"text/x-python","patch_set":38,"id":"3a50d1a3_a9a91a7e","line":45,"in_reply_to":"3a50d1a3_db3a2fcd","updated":"2015-08-03 07:44:52.000000000","message":"Done, thanks!","commit_id":"18b614c0a0963bb80ea52303c70e3250f0091d44"}]}
