)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"930d7045ae9397f864e0eba9187855f7d0bd53c5","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Huawei: Fixed problems caused by password expires"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently when the array password expires or"},{"line_number":10,"context_line":"initial driver will logout of connections ."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I86fc6746355c01e394c35fc5b462c8ed9dc861fa"},{"line_number":13,"context_line":"Closes-Bug: #1570208"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a122d0e_632bf382","line":10,"range":{"start_line":10,"start_character":41,"end_line":10,"end_character":42},"updated":"2016-05-05 11:55:12.000000000","message":"Remove this space.","commit_id":"356de57bb547f6cb84bb78c956b734d0519a60de"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"930d7045ae9397f864e0eba9187855f7d0bd53c5","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Huawei: Fixed problems caused by password expires"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently when the array password expires or"},{"line_number":10,"context_line":"initial driver will logout of connections ."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I86fc6746355c01e394c35fc5b462c8ed9dc861fa"},{"line_number":13,"context_line":"Closes-Bug: #1570208"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a122d0e_23457b42","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":7},"updated":"2016-05-05 11:55:12.000000000","message":"initial-\u003einitials?","commit_id":"356de57bb547f6cb84bb78c956b734d0519a60de"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"db21b401e8c95f87de09ad27da5cd1cb1ee073f6","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Huawei: Fixed problems caused by password expires"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently when the array password expires or"},{"line_number":10,"context_line":"initial driver will logout of connections ."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I86fc6746355c01e394c35fc5b462c8ed9dc861fa"},{"line_number":13,"context_line":"Closes-Bug: #1570208"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a122d0e_23d57be4","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":7},"in_reply_to":"1a122d0e_23457b42","updated":"2016-05-05 12:06:18.000000000","message":"Done","commit_id":"356de57bb547f6cb84bb78c956b734d0519a60de"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"db21b401e8c95f87de09ad27da5cd1cb1ee073f6","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Huawei: Fixed problems caused by password expires"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently when the array password expires or"},{"line_number":10,"context_line":"initial driver will logout of connections ."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I86fc6746355c01e394c35fc5b462c8ed9dc861fa"},{"line_number":13,"context_line":"Closes-Bug: #1570208"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a122d0e_63093395","line":10,"range":{"start_line":10,"start_character":41,"end_line":10,"end_character":42},"in_reply_to":"1a122d0e_632bf382","updated":"2016-05-05 12:06:18.000000000","message":"Done","commit_id":"356de57bb547f6cb84bb78c956b734d0519a60de"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"8652ddb6dcee0ecf865848ab9d89d8b2ba275b8b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     huananhuawei \u003chuanan@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-06-12 09:28:13 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Huawei: Fixed problems caused by password expires"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently when the array password expires or"},{"line_number":10,"context_line":"initialized driver will logout of connections."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7aa08908_1815789a","line":7,"range":{"start_line":7,"start_character":42,"end_line":7,"end_character":49},"updated":"2016-06-12 05:32:59.000000000","message":"nit: expiration","commit_id":"abde4f013bd093bfbec1294758f0dc0d502dc922"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"f81b7c1b5d50d475fa2a366d69260848b3d199ab","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     huananhuawei \u003chuanan@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-06-12 09:28:13 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Huawei: Fixed problems caused by password expires"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently when the array password expires or"},{"line_number":10,"context_line":"initialized driver will logout of connections."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7aa08908_8ec59e3e","line":7,"range":{"start_line":7,"start_character":42,"end_line":7,"end_character":49},"in_reply_to":"7aa08908_1815789a","updated":"2016-06-12 09:14:30.000000000","message":"Done","commit_id":"abde4f013bd093bfbec1294758f0dc0d502dc922"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"8652ddb6dcee0ecf865848ab9d89d8b2ba275b8b","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Huawei: Fixed problems caused by password expires"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently when the array password expires or"},{"line_number":10,"context_line":"initialized driver will logout of connections."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I86fc6746355c01e394c35fc5b462c8ed9dc861fa"},{"line_number":13,"context_line":"Closes-Bug: #1570208"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7aa08908_780c7c94","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":11},"updated":"2016-06-12 05:32:59.000000000","message":"what is array password initialization?","commit_id":"abde4f013bd093bfbec1294758f0dc0d502dc922"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"f81b7c1b5d50d475fa2a366d69260848b3d199ab","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Huawei: Fixed problems caused by password expires"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently when the array password expires or"},{"line_number":10,"context_line":"initialized driver will logout of connections."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I86fc6746355c01e394c35fc5b462c8ed9dc861fa"},{"line_number":13,"context_line":"Closes-Bug: #1570208"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7aa08908_2e046a7c","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":11},"in_reply_to":"7aa08908_780c7c94","updated":"2016-06-12 09:14:30.000000000","message":"Factory reset","commit_id":"abde4f013bd093bfbec1294758f0dc0d502dc922"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"27990a3e8cc6ed81457eda3d7a69548a790e4134","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Huawei: Fixed problems caused by password expiration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently when the array password expires or"},{"line_number":10,"context_line":"initialized driver will logout of connections."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I86fc6746355c01e394c35fc5b462c8ed9dc861fa"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7aa08908_0447cabc","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":9},"updated":"2016-06-12 16:38:01.000000000","message":"This is not the current logic; the current logic doesn\u0027t logout.","commit_id":"fb3ee566a8cbe0bfd92bd25f996a9057c9530c02"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"7cc6c7998241a6aaaab6d4fece01bbf5678e43b7","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Huawei: Fixed problems caused by password expiration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently when the array password expires or"},{"line_number":10,"context_line":"initialized driver will logout of connections."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I86fc6746355c01e394c35fc5b462c8ed9dc861fa"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7aa08908_93ce5e2b","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":9},"in_reply_to":"7aa08908_0447cabc","updated":"2016-06-13 02:42:52.000000000","message":"Done","commit_id":"fb3ee566a8cbe0bfd92bd25f996a9057c9530c02"},{"author":{"_account_id":21406,"name":"Vijay Ladani","email":"vijay.ladani@hpe.com","username":"vladani"},"change_message_id":"9a6eb8161994d1411e284fe9e34e7caf06907481","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Huawei: Fixed problems caused by password expiration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When the array password expires orinitialized driver"},{"line_number":10,"context_line":"will logout of connections."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I86fc6746355c01e394c35fc5b462c8ed9dc861fa"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7aa08908_4a18b0d3","line":9,"updated":"2016-06-13 08:56:04.000000000","message":"Grammatical errors: When array password expires or initializes, log out of driver connection.","commit_id":"60180f88b08598cf89cdd7cd9d57835415654c8d"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"c0c0df59fbd415c298dae97bec89105d496e18bc","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Huawei: Fixed problems caused by password expiration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When the array password expires orinitialized driver"},{"line_number":10,"context_line":"will logout of connections."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I86fc6746355c01e394c35fc5b462c8ed9dc861fa"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7aa08908_ac005167","line":9,"in_reply_to":"7aa08908_4a18b0d3","updated":"2016-06-13 09:09:41.000000000","message":"Done","commit_id":"60180f88b08598cf89cdd7cd9d57835415654c8d"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"127d1682584c49a4ecacaa730cecbf2a9ec2e3be","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Huawei: Fixed problems caused by password expiration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When the array password expires or initialized driver"},{"line_number":10,"context_line":"will logout of connections."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I86fc6746355c01e394c35fc5b462c8ed9dc861fa"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"7aa08908_18c9f825","line":9,"range":{"start_line":9,"start_character":35,"end_line":9,"end_character":46},"updated":"2016-06-17 07:22:45.000000000","message":"nit: this is not consistent with your code (new constant name), please fix it.","commit_id":"feb4c9dd7d9e6252fb40f0037ee9c56fc5dac259"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"ccf7ff1602f3ad6357ba8580b2c8f88f694362fd","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Huawei: Fixed problems caused by password expiration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When the array password expires or initialized driver"},{"line_number":10,"context_line":"will logout of connections."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I86fc6746355c01e394c35fc5b462c8ed9dc861fa"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"7aa08908_736dbdcb","line":9,"range":{"start_line":9,"start_character":35,"end_line":9,"end_character":46},"in_reply_to":"7aa08908_18c9f825","updated":"2016-06-17 07:46:56.000000000","message":"Done","commit_id":"feb4c9dd7d9e6252fb40f0037ee9c56fc5dac259"}],"cinder/tests/unit/test_huawei_drivers.py":[{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"4f33b5a9f9ebe589de5a6bb4d9b7bade713d008a","unresolved":false,"context_lines":[{"line_number":2057,"context_line":"                                     \"iBaseToken\": \"2001031430\","},{"line_number":2058,"context_line":"                                     \"deviceid\": \"210235G7J20000000000\","},{"line_number":2059,"context_line":"                                     \"accountstate\": 4}})"},{"line_number":2060,"context_line":"    def test_login_password_initialized_fail(self, mock_do_call):"},{"line_number":2061,"context_line":"        ex \u003d self.assertRaises(exception.VolumeBackendAPIException,"},{"line_number":2062,"context_line":"                               self.driver.client.login)"},{"line_number":2063,"context_line":"        self.assertIsNotNone(re.search(\u0027Password has expired or initial\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_092fe83e","line":2060,"updated":"2016-06-12 09:20:50.000000000","message":"Better to combine these two test cases into one use ddt.","commit_id":"77826b9beb305935663325894514f80684bcfec2"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"84e0f0d91ff214cf8f8dc8af32a1f31c71a876de","unresolved":false,"context_lines":[{"line_number":2057,"context_line":"                                     \"iBaseToken\": \"2001031430\","},{"line_number":2058,"context_line":"                                     \"deviceid\": \"210235G7J20000000000\","},{"line_number":2059,"context_line":"                                     \"accountstate\": 4}})"},{"line_number":2060,"context_line":"    def test_login_password_initialized_fail(self, mock_do_call):"},{"line_number":2061,"context_line":"        ex \u003d self.assertRaises(exception.VolumeBackendAPIException,"},{"line_number":2062,"context_line":"                               self.driver.client.login)"},{"line_number":2063,"context_line":"        self.assertIsNotNone(re.search(\u0027Password has expired or initial\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_2904647c","line":2060,"in_reply_to":"7aa08908_092fe83e","updated":"2016-06-12 09:45:57.000000000","message":"Done","commit_id":"77826b9beb305935663325894514f80684bcfec2"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"27990a3e8cc6ed81457eda3d7a69548a790e4134","unresolved":false,"context_lines":[{"line_number":2037,"context_line":"        device_id \u003d self.driver.client.login()"},{"line_number":2038,"context_line":"        self.assertEqual(\u0027210235G7J20000000000\u0027, device_id)"},{"line_number":2039,"context_line":""},{"line_number":2040,"context_line":"    @ddt.data(3, 4)"},{"line_number":2041,"context_line":"    def test_login_password_expires_and_initialized_fail(self, state):"},{"line_number":2042,"context_line":"        self.mock_object(FakeClient, \u0027do_call\u0027,"},{"line_number":2043,"context_line":"                         mock.Mock(return_value\u003d{\"error\": {\"code\": 0},"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_e4ec3ebd","line":2040,"updated":"2016-06-12 16:38:01.000000000","message":"If declared as separate constants in constants.py, we could use it here instead of these magic numbers.","commit_id":"fb3ee566a8cbe0bfd92bd25f996a9057c9530c02"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"7cc6c7998241a6aaaab6d4fece01bbf5678e43b7","unresolved":false,"context_lines":[{"line_number":2037,"context_line":"        device_id \u003d self.driver.client.login()"},{"line_number":2038,"context_line":"        self.assertEqual(\u0027210235G7J20000000000\u0027, device_id)"},{"line_number":2039,"context_line":""},{"line_number":2040,"context_line":"    @ddt.data(3, 4)"},{"line_number":2041,"context_line":"    def test_login_password_expires_and_initialized_fail(self, state):"},{"line_number":2042,"context_line":"        self.mock_object(FakeClient, \u0027do_call\u0027,"},{"line_number":2043,"context_line":"                         mock.Mock(return_value\u003d{\"error\": {\"code\": 0},"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_73d3f2d5","line":2040,"in_reply_to":"7aa08908_e4ec3ebd","updated":"2016-06-13 02:42:52.000000000","message":"Done","commit_id":"fb3ee566a8cbe0bfd92bd25f996a9057c9530c02"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"27990a3e8cc6ed81457eda3d7a69548a790e4134","unresolved":false,"context_lines":[{"line_number":2047,"context_line":"                                   \"deviceid\": \"210235G7J20000000000\","},{"line_number":2048,"context_line":"                                   \"accountstate\": state}}))"},{"line_number":2049,"context_line":"        ex \u003d self.assertRaises(exception.VolumeBackendAPIException,"},{"line_number":2050,"context_line":"                               self.driver.client.login)"},{"line_number":2051,"context_line":"        self.assertIsNotNone(re.search(\u0027Password has expired or initial\u0027,"},{"line_number":2052,"context_line":"                                       ex.msg))"},{"line_number":2053,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_84329a5c","line":2050,"updated":"2016-06-12 16:38:01.000000000","message":"-1: We also need to assert for logout call.","commit_id":"fb3ee566a8cbe0bfd92bd25f996a9057c9530c02"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"7cc6c7998241a6aaaab6d4fece01bbf5678e43b7","unresolved":false,"context_lines":[{"line_number":2047,"context_line":"                                   \"deviceid\": \"210235G7J20000000000\","},{"line_number":2048,"context_line":"                                   \"accountstate\": state}}))"},{"line_number":2049,"context_line":"        ex \u003d self.assertRaises(exception.VolumeBackendAPIException,"},{"line_number":2050,"context_line":"                               self.driver.client.login)"},{"line_number":2051,"context_line":"        self.assertIsNotNone(re.search(\u0027Password has expired or initial\u0027,"},{"line_number":2052,"context_line":"                                       ex.msg))"},{"line_number":2053,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_d3dc66e6","line":2050,"in_reply_to":"7aa08908_84329a5c","updated":"2016-06-13 02:42:52.000000000","message":"Done","commit_id":"fb3ee566a8cbe0bfd92bd25f996a9057c9530c02"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"27990a3e8cc6ed81457eda3d7a69548a790e4134","unresolved":false,"context_lines":[{"line_number":2048,"context_line":"                                   \"accountstate\": state}}))"},{"line_number":2049,"context_line":"        ex \u003d self.assertRaises(exception.VolumeBackendAPIException,"},{"line_number":2050,"context_line":"                               self.driver.client.login)"},{"line_number":2051,"context_line":"        self.assertIsNotNone(re.search(\u0027Password has expired or initial\u0027,"},{"line_number":2052,"context_line":"                                       ex.msg))"},{"line_number":2053,"context_line":""},{"line_number":2054,"context_line":"    def test_check_volume_exist_on_array(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_c44022a8","line":2051,"updated":"2016-06-12 16:38:01.000000000","message":"Asserting the exception message is not needed.","commit_id":"fb3ee566a8cbe0bfd92bd25f996a9057c9530c02"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"7cc6c7998241a6aaaab6d4fece01bbf5678e43b7","unresolved":false,"context_lines":[{"line_number":2048,"context_line":"                                   \"accountstate\": state}}))"},{"line_number":2049,"context_line":"        ex \u003d self.assertRaises(exception.VolumeBackendAPIException,"},{"line_number":2050,"context_line":"                               self.driver.client.login)"},{"line_number":2051,"context_line":"        self.assertIsNotNone(re.search(\u0027Password has expired or initial\u0027,"},{"line_number":2052,"context_line":"                                       ex.msg))"},{"line_number":2053,"context_line":""},{"line_number":2054,"context_line":"    def test_check_volume_exist_on_array(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_f3dfe2d3","line":2051,"in_reply_to":"7aa08908_c44022a8","updated":"2016-06-13 02:42:52.000000000","message":"Done","commit_id":"fb3ee566a8cbe0bfd92bd25f996a9057c9530c02"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"4487bd26b11c000f0514776fc3beb34831061fdb","unresolved":false,"context_lines":[{"line_number":2047,"context_line":"                                   \"deviceid\": \"210235G7J20000000000\","},{"line_number":2048,"context_line":"                                   \"accountstate\": state}}))"},{"line_number":2049,"context_line":"        self.assertRaises(exception.VolumeBackendAPIException,"},{"line_number":2050,"context_line":"                          self.driver.client.login)"},{"line_number":2051,"context_line":""},{"line_number":2052,"context_line":"    def test_login_logout_fail(self):"},{"line_number":2053,"context_line":"        login_info \u003d {\"error\": {\"code\": 0},"}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_065f0776","line":2050,"updated":"2016-06-16 12:26:18.000000000","message":"We also need to assert for the logout call.\n\nself.driver.client.logut.assert_called_once()","commit_id":"84b89cb8bcd30823c23d548e40169d626233ecae"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"4487bd26b11c000f0514776fc3beb34831061fdb","unresolved":false,"context_lines":[{"line_number":2049,"context_line":"        self.assertRaises(exception.VolumeBackendAPIException,"},{"line_number":2050,"context_line":"                          self.driver.client.login)"},{"line_number":2051,"context_line":""},{"line_number":2052,"context_line":"    def test_login_logout_fail(self):"},{"line_number":2053,"context_line":"        login_info \u003d {\"error\": {\"code\": 0},"},{"line_number":2054,"context_line":"                      \"data\": {\"username\": \"admin\","},{"line_number":2055,"context_line":"                               \"iBaseToken\": \"2001031430\","}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_a671d30e","line":2052,"updated":"2016-06-16 12:26:18.000000000","message":"My comment was not to add a new unit test. We only need to assert that logout is called in the above test.","commit_id":"84b89cb8bcd30823c23d548e40169d626233ecae"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"ed031f50b74fc7247eb61152e62dd0fee0e2cd08","unresolved":false,"context_lines":[{"line_number":2049,"context_line":"        self.assertRaises(exception.VolumeBackendAPIException,"},{"line_number":2050,"context_line":"                          self.driver.client.login)"},{"line_number":2051,"context_line":""},{"line_number":2052,"context_line":"    def test_login_logout_fail(self):"},{"line_number":2053,"context_line":"        login_info \u003d {\"error\": {\"code\": 0},"},{"line_number":2054,"context_line":"                      \"data\": {\"username\": \"admin\","},{"line_number":2055,"context_line":"                               \"iBaseToken\": \"2001031430\","}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_ac3b4dc7","line":2052,"in_reply_to":"7aa08908_a671d30e","updated":"2016-06-17 02:53:27.000000000","message":"I think add a new unit test is better.","commit_id":"84b89cb8bcd30823c23d548e40169d626233ecae"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"127d1682584c49a4ecacaa730cecbf2a9ec2e3be","unresolved":false,"context_lines":[{"line_number":2046,"context_line":"                                   \"iBaseToken\": \"2001031430\","},{"line_number":2047,"context_line":"                                   \"deviceid\": \"210235G7J20000000000\","},{"line_number":2048,"context_line":"                                   \"accountstate\": state}}))"},{"line_number":2049,"context_line":"        self.assertRaises(exception.VolumeBackendAPIException,"},{"line_number":2050,"context_line":"                          self.driver.client.login)"},{"line_number":2051,"context_line":""},{"line_number":2052,"context_line":"    def test_login_logout_fail(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_588540cd","line":2049,"updated":"2016-06-17 07:22:45.000000000","message":"This patch is to call logout if array password expires. So we also have to assert that logout is called.","commit_id":"feb4c9dd7d9e6252fb40f0037ee9c56fc5dac259"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"ccf7ff1602f3ad6357ba8580b2c8f88f694362fd","unresolved":false,"context_lines":[{"line_number":2046,"context_line":"                                   \"iBaseToken\": \"2001031430\","},{"line_number":2047,"context_line":"                                   \"deviceid\": \"210235G7J20000000000\","},{"line_number":2048,"context_line":"                                   \"accountstate\": state}}))"},{"line_number":2049,"context_line":"        self.assertRaises(exception.VolumeBackendAPIException,"},{"line_number":2050,"context_line":"                          self.driver.client.login)"},{"line_number":2051,"context_line":""},{"line_number":2052,"context_line":"    def test_login_logout_fail(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_f36b6d83","line":2049,"in_reply_to":"7aa08908_588540cd","updated":"2016-06-17 07:46:56.000000000","message":"test_login_password_expires_and_reset_fail is test for password expires or reset with logout success case, test_login_logout_fail is test for expires or reset with logout fail case, it\u0027s two difference cases.","commit_id":"feb4c9dd7d9e6252fb40f0037ee9c56fc5dac259"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"eba4d7d7f2e7f61cba333f6902b7d943f2fccbeb","unresolved":false,"context_lines":[{"line_number":2046,"context_line":"                                   \"iBaseToken\": \"2001031430\","},{"line_number":2047,"context_line":"                                   \"deviceid\": \"210235G7J20000000000\","},{"line_number":2048,"context_line":"                                   \"accountstate\": state}}))"},{"line_number":2049,"context_line":"        self.assertRaises(exception.VolumeBackendAPIException,"},{"line_number":2050,"context_line":"                          self.driver.client.login)"},{"line_number":2051,"context_line":""},{"line_number":2052,"context_line":"    def test_login_logout_fail(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a9d85d2_fe11dfb0","line":2049,"in_reply_to":"7aa08908_8f42aa0d","updated":"2016-06-20 07:14:59.000000000","message":"I understand what you mean, thanks Vipin.","commit_id":"feb4c9dd7d9e6252fb40f0037ee9c56fc5dac259"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"10a32692520cafb6785b33456ec0f43cf7e389f6","unresolved":false,"context_lines":[{"line_number":2046,"context_line":"                                   \"iBaseToken\": \"2001031430\","},{"line_number":2047,"context_line":"                                   \"deviceid\": \"210235G7J20000000000\","},{"line_number":2048,"context_line":"                                   \"accountstate\": state}}))"},{"line_number":2049,"context_line":"        self.assertRaises(exception.VolumeBackendAPIException,"},{"line_number":2050,"context_line":"                          self.driver.client.login)"},{"line_number":2051,"context_line":""},{"line_number":2052,"context_line":"    def test_login_logout_fail(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_8f42aa0d","line":2049,"in_reply_to":"7aa08908_f36b6d83","updated":"2016-06-17 13:30:50.000000000","message":"I understand that they are two separate cases.\n\nAssume that someone removed the logout call in https://review.openstack.org/#/c/305633/11/cinder/volume/drivers/huawei/rest_client.py line 136. This case will pass. This case is supposed to ensure that logout is called when the password is expired.\n\nHere is the modified test case:\nhttp://paste.openstack.org/show/516853/\n\nIt will fail if the logout call is removed.","commit_id":"feb4c9dd7d9e6252fb40f0037ee9c56fc5dac259"}],"cinder/volume/drivers/huawei/constants.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"8652ddb6dcee0ecf865848ab9d89d8b2ba275b8b","unresolved":false,"context_lines":[{"line_number":58,"context_line":"MAX_HOSTNAME_LENGTH \u003d 31"},{"line_number":59,"context_line":"MAX_VOL_DESCRIPTION \u003d 170"},{"line_number":60,"context_line":"PORT_NUM_PER_CONTR \u003d 2"},{"line_number":61,"context_line":"PWD_EXPIRED_OR_INITIAL \u003d (3, 4)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"OS_TYPE \u003d {\u0027Linux\u0027: \u00270\u0027,"},{"line_number":64,"context_line":"           \u0027Windows\u0027: \u00271\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_580f0088","line":61,"range":{"start_line":61,"start_character":15,"end_line":61,"end_character":22},"updated":"2016-06-12 05:32:59.000000000","message":"Please change INITIAL to INITIALIZATION","commit_id":"abde4f013bd093bfbec1294758f0dc0d502dc922"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"f81b7c1b5d50d475fa2a366d69260848b3d199ab","unresolved":false,"context_lines":[{"line_number":58,"context_line":"MAX_HOSTNAME_LENGTH \u003d 31"},{"line_number":59,"context_line":"MAX_VOL_DESCRIPTION \u003d 170"},{"line_number":60,"context_line":"PORT_NUM_PER_CONTR \u003d 2"},{"line_number":61,"context_line":"PWD_EXPIRED_OR_INITIAL \u003d (3, 4)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"OS_TYPE \u003d {\u0027Linux\u0027: \u00270\u0027,"},{"line_number":64,"context_line":"           \u0027Windows\u0027: \u00271\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_2e2bcaec","line":61,"range":{"start_line":61,"start_character":15,"end_line":61,"end_character":22},"in_reply_to":"7aa08908_580f0088","updated":"2016-06-12 09:14:30.000000000","message":"Done","commit_id":"abde4f013bd093bfbec1294758f0dc0d502dc922"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"27990a3e8cc6ed81457eda3d7a69548a790e4134","unresolved":false,"context_lines":[{"line_number":58,"context_line":"MAX_HOSTNAME_LENGTH \u003d 31"},{"line_number":59,"context_line":"MAX_VOL_DESCRIPTION \u003d 170"},{"line_number":60,"context_line":"PORT_NUM_PER_CONTR \u003d 2"},{"line_number":61,"context_line":"PWD_EXPIRED_OR_INITIALIZATION \u003d (3, 4)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"OS_TYPE \u003d {\u0027Linux\u0027: \u00270\u0027,"},{"line_number":64,"context_line":"           \u0027Windows\u0027: \u00271\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_a4f6b68c","line":61,"updated":"2016-06-12 16:38:01.000000000","message":"I would prefer separate constants for these status values.","commit_id":"fb3ee566a8cbe0bfd92bd25f996a9057c9530c02"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"7cc6c7998241a6aaaab6d4fece01bbf5678e43b7","unresolved":false,"context_lines":[{"line_number":58,"context_line":"MAX_HOSTNAME_LENGTH \u003d 31"},{"line_number":59,"context_line":"MAX_VOL_DESCRIPTION \u003d 170"},{"line_number":60,"context_line":"PORT_NUM_PER_CONTR \u003d 2"},{"line_number":61,"context_line":"PWD_EXPIRED_OR_INITIALIZATION \u003d (3, 4)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"OS_TYPE \u003d {\u0027Linux\u0027: \u00270\u0027,"},{"line_number":64,"context_line":"           \u0027Windows\u0027: \u00271\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_53efd686","line":61,"in_reply_to":"7aa08908_a4f6b68c","updated":"2016-06-13 02:42:52.000000000","message":"Done","commit_id":"fb3ee566a8cbe0bfd92bd25f996a9057c9530c02"},{"author":{"_account_id":21406,"name":"Vijay Ladani","email":"vijay.ladani@hpe.com","username":"vladani"},"change_message_id":"9a6eb8161994d1411e284fe9e34e7caf06907481","unresolved":false,"context_lines":[{"line_number":59,"context_line":"MAX_VOL_DESCRIPTION \u003d 170"},{"line_number":60,"context_line":"PORT_NUM_PER_CONTR \u003d 2"},{"line_number":61,"context_line":"PWD_EXPIRED \u003d 3"},{"line_number":62,"context_line":"PWD_INITIALIZATION \u003d 4"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"OS_TYPE \u003d {\u0027Linux\u0027: \u00270\u0027,"},{"line_number":65,"context_line":"           \u0027Windows\u0027: \u00271\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_8a5c587e","line":62,"updated":"2016-06-13 08:56:04.000000000","message":"PWD_INITIALIZED - be consistent on wording\n\nrest_client.py file has message text: \"Password has expired or initialized\"","commit_id":"60180f88b08598cf89cdd7cd9d57835415654c8d"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"c0c0df59fbd415c298dae97bec89105d496e18bc","unresolved":false,"context_lines":[{"line_number":59,"context_line":"MAX_VOL_DESCRIPTION \u003d 170"},{"line_number":60,"context_line":"PORT_NUM_PER_CONTR \u003d 2"},{"line_number":61,"context_line":"PWD_EXPIRED \u003d 3"},{"line_number":62,"context_line":"PWD_INITIALIZATION \u003d 4"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"OS_TYPE \u003d {\u0027Linux\u0027: \u00270\u0027,"},{"line_number":65,"context_line":"           \u0027Windows\u0027: \u00271\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_0cfa4575","line":62,"in_reply_to":"7aa08908_8a5c587e","updated":"2016-06-13 09:09:41.000000000","message":"Done","commit_id":"60180f88b08598cf89cdd7cd9d57835415654c8d"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"09dbaf1481726c6844fe95dfdc16e25f8a587004","unresolved":false,"context_lines":[{"line_number":59,"context_line":"MAX_VOL_DESCRIPTION \u003d 170"},{"line_number":60,"context_line":"PORT_NUM_PER_CONTR \u003d 2"},{"line_number":61,"context_line":"PWD_EXPIRED \u003d 3"},{"line_number":62,"context_line":"PWD_INITIALIZED \u003d 4"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"OS_TYPE \u003d {\u0027Linux\u0027: \u00270\u0027,"},{"line_number":65,"context_line":"           \u0027Windows\u0027: \u00271\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_3e183575","line":62,"range":{"start_line":62,"start_character":0,"end_line":62,"end_character":15},"updated":"2016-06-16 18:34:35.000000000","message":"I\u0027m still not a fan of this constant name. I think its very confusing.","commit_id":"84b89cb8bcd30823c23d548e40169d626233ecae"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"ed031f50b74fc7247eb61152e62dd0fee0e2cd08","unresolved":false,"context_lines":[{"line_number":59,"context_line":"MAX_VOL_DESCRIPTION \u003d 170"},{"line_number":60,"context_line":"PORT_NUM_PER_CONTR \u003d 2"},{"line_number":61,"context_line":"PWD_EXPIRED \u003d 3"},{"line_number":62,"context_line":"PWD_INITIALIZED \u003d 4"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"OS_TYPE \u003d {\u0027Linux\u0027: \u00270\u0027,"},{"line_number":65,"context_line":"           \u0027Windows\u0027: \u00271\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_6c7045a5","line":62,"range":{"start_line":62,"start_character":0,"end_line":62,"end_character":15},"in_reply_to":"7aa08908_3e183575","updated":"2016-06-17 02:53:27.000000000","message":"Done","commit_id":"84b89cb8bcd30823c23d548e40169d626233ecae"}],"cinder/volume/drivers/huawei/rest_client.py":[{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"930d7045ae9397f864e0eba9187855f7d0bd53c5","unresolved":false,"context_lines":[{"line_number":134,"context_line":"            if (result[\u0027data\u0027][\u0027accountstate\u0027]"},{"line_number":135,"context_line":"                    in constants.PWD_EXPIRED_OR_INITIAL):"},{"line_number":136,"context_line":"                self.logout()"},{"line_number":137,"context_line":"                msg \u003d _(\"Password has expired or initial, \""},{"line_number":138,"context_line":"                        \"please change the password.\")"},{"line_number":139,"context_line":"                LOG.error(msg)"},{"line_number":140,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_23b3bb4e","line":137,"range":{"start_line":137,"start_character":49,"end_line":137,"end_character":56},"updated":"2016-05-05 11:55:12.000000000","message":"initial?","commit_id":"356de57bb547f6cb84bb78c956b734d0519a60de"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"db21b401e8c95f87de09ad27da5cd1cb1ee073f6","unresolved":false,"context_lines":[{"line_number":134,"context_line":"            if (result[\u0027data\u0027][\u0027accountstate\u0027]"},{"line_number":135,"context_line":"                    in constants.PWD_EXPIRED_OR_INITIAL):"},{"line_number":136,"context_line":"                self.logout()"},{"line_number":137,"context_line":"                msg \u003d _(\"Password has expired or initial, \""},{"line_number":138,"context_line":"                        \"please change the password.\")"},{"line_number":139,"context_line":"                LOG.error(msg)"},{"line_number":140,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_c3fac776","line":137,"range":{"start_line":137,"start_character":49,"end_line":137,"end_character":56},"in_reply_to":"1a122d0e_23b3bb4e","updated":"2016-05-05 12:06:18.000000000","message":"Done","commit_id":"356de57bb547f6cb84bb78c956b734d0519a60de"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"8652ddb6dcee0ecf865848ab9d89d8b2ba275b8b","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            self.headers[\u0027iBaseToken\u0027] \u003d result[\u0027data\u0027][\u0027iBaseToken\u0027]"},{"line_number":134,"context_line":"            if (result[\u0027data\u0027][\u0027accountstate\u0027]"},{"line_number":135,"context_line":"                    in constants.PWD_EXPIRED_OR_INITIAL):"},{"line_number":136,"context_line":"                self.logout()"},{"line_number":137,"context_line":"                msg \u003d _(\"Password has expired or initialized, \""},{"line_number":138,"context_line":"                        \"please change the password.\")"},{"line_number":139,"context_line":"                LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_7883dccc","line":136,"updated":"2016-06-12 05:32:59.000000000","message":"Looks like we need a unit test for this code path.","commit_id":"abde4f013bd093bfbec1294758f0dc0d502dc922"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"f81b7c1b5d50d475fa2a366d69260848b3d199ab","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            self.headers[\u0027iBaseToken\u0027] \u003d result[\u0027data\u0027][\u0027iBaseToken\u0027]"},{"line_number":134,"context_line":"            if (result[\u0027data\u0027][\u0027accountstate\u0027]"},{"line_number":135,"context_line":"                    in constants.PWD_EXPIRED_OR_INITIAL):"},{"line_number":136,"context_line":"                self.logout()"},{"line_number":137,"context_line":"                msg \u003d _(\"Password has expired or initialized, \""},{"line_number":138,"context_line":"                        \"please change the password.\")"},{"line_number":139,"context_line":"                LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_2e12aab4","line":136,"in_reply_to":"7aa08908_7883dccc","updated":"2016-06-12 09:14:30.000000000","message":"Done","commit_id":"abde4f013bd093bfbec1294758f0dc0d502dc922"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"8652ddb6dcee0ecf865848ab9d89d8b2ba275b8b","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                    in constants.PWD_EXPIRED_OR_INITIAL):"},{"line_number":136,"context_line":"                self.logout()"},{"line_number":137,"context_line":"                msg \u003d _(\"Password has expired or initialized, \""},{"line_number":138,"context_line":"                        \"please change the password.\")"},{"line_number":139,"context_line":"                LOG.error(msg)"},{"line_number":140,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":141,"context_line":"            break"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_387954fd","line":138,"range":{"start_line":138,"start_character":25,"end_line":138,"end_character":51},"updated":"2016-06-12 05:32:59.000000000","message":"This implies the cinder-volume service has to be restarted, right?","commit_id":"abde4f013bd093bfbec1294758f0dc0d502dc922"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"f81b7c1b5d50d475fa2a366d69260848b3d199ab","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                    in constants.PWD_EXPIRED_OR_INITIAL):"},{"line_number":136,"context_line":"                self.logout()"},{"line_number":137,"context_line":"                msg \u003d _(\"Password has expired or initialized, \""},{"line_number":138,"context_line":"                        \"please change the password.\")"},{"line_number":139,"context_line":"                LOG.error(msg)"},{"line_number":140,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":141,"context_line":"            break"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_ce44c6b8","line":138,"range":{"start_line":138,"start_character":25,"end_line":138,"end_character":51},"in_reply_to":"7aa08908_387954fd","updated":"2016-06-12 09:14:30.000000000","message":"Yes, in this case, we must modiify array password and restart cinder-volume service.","commit_id":"abde4f013bd093bfbec1294758f0dc0d502dc922"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"27990a3e8cc6ed81457eda3d7a69548a790e4134","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            self.headers[\u0027iBaseToken\u0027] \u003d result[\u0027data\u0027][\u0027iBaseToken\u0027]"},{"line_number":134,"context_line":"            if (result[\u0027data\u0027][\u0027accountstate\u0027]"},{"line_number":135,"context_line":"                    in constants.PWD_EXPIRED_OR_INITIALIZATION):"},{"line_number":136,"context_line":"                self.logout()"},{"line_number":137,"context_line":"                msg \u003d _(\"Password has expired or initialized, \""},{"line_number":138,"context_line":"                        \"please change the password.\")"},{"line_number":139,"context_line":"                LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_2431265b","line":136,"range":{"start_line":136,"start_character":16,"end_line":136,"end_character":29},"updated":"2016-06-12 16:38:01.000000000","message":"If the login failed, do we need to logout?","commit_id":"fb3ee566a8cbe0bfd92bd25f996a9057c9530c02"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"7cc6c7998241a6aaaab6d4fece01bbf5678e43b7","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            self.headers[\u0027iBaseToken\u0027] \u003d result[\u0027data\u0027][\u0027iBaseToken\u0027]"},{"line_number":134,"context_line":"            if (result[\u0027data\u0027][\u0027accountstate\u0027]"},{"line_number":135,"context_line":"                    in constants.PWD_EXPIRED_OR_INITIALIZATION):"},{"line_number":136,"context_line":"                self.logout()"},{"line_number":137,"context_line":"                msg \u003d _(\"Password has expired or initialized, \""},{"line_number":138,"context_line":"                        \"please change the password.\")"},{"line_number":139,"context_line":"                LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_73a13246","line":136,"range":{"start_line":136,"start_character":16,"end_line":136,"end_character":29},"in_reply_to":"7aa08908_2431265b","updated":"2016-06-13 02:42:52.000000000","message":"If we do not logout will occupy the array connection numbers.","commit_id":"fb3ee566a8cbe0bfd92bd25f996a9057c9530c02"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"909330ba9830cf0b283812b6e0cc424f9e87ec88","unresolved":false,"context_lines":[{"line_number":134,"context_line":"            if (result[\u0027data\u0027][\u0027accountstate\u0027]"},{"line_number":135,"context_line":"                    in (constants.PWD_EXPIRED, constants.PWD_INITIALIZED)):"},{"line_number":136,"context_line":"                self.logout()"},{"line_number":137,"context_line":"                msg \u003d _(\"Password has expired or initialized, \""},{"line_number":138,"context_line":"                        \"please change the password.\")"},{"line_number":139,"context_line":"                LOG.error(msg)"},{"line_number":140,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_9f42b53c","line":137,"range":{"start_line":137,"start_character":49,"end_line":137,"end_character":60},"updated":"2016-06-13 23:13:52.000000000","message":"I don\u0027t think its clear what a \"password initialized\" means.  Can this be reworded? Does this mean the password is not yet set?","commit_id":"4e389d76675b268e670ceaea95bcbe60abbcd2dc"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"36a266bb5333c1835d46f05dfdbebf1a4b5a681f","unresolved":false,"context_lines":[{"line_number":134,"context_line":"            if (result[\u0027data\u0027][\u0027accountstate\u0027]"},{"line_number":135,"context_line":"                    in (constants.PWD_EXPIRED, constants.PWD_INITIALIZED)):"},{"line_number":136,"context_line":"                self.logout()"},{"line_number":137,"context_line":"                msg \u003d _(\"Password has expired or initialized, \""},{"line_number":138,"context_line":"                        \"please change the password.\")"},{"line_number":139,"context_line":"                LOG.error(msg)"},{"line_number":140,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_d441770b","line":137,"range":{"start_line":137,"start_character":49,"end_line":137,"end_character":60},"in_reply_to":"7aa08908_7ea9ab8f","updated":"2016-06-15 06:14:10.000000000","message":"Sure, i will modify, Thank you for your review.","commit_id":"4e389d76675b268e670ceaea95bcbe60abbcd2dc"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"93ad39561fe9da12f882d1a706b5352d2b9f5ee7","unresolved":false,"context_lines":[{"line_number":134,"context_line":"            if (result[\u0027data\u0027][\u0027accountstate\u0027]"},{"line_number":135,"context_line":"                    in (constants.PWD_EXPIRED, constants.PWD_INITIALIZED)):"},{"line_number":136,"context_line":"                self.logout()"},{"line_number":137,"context_line":"                msg \u003d _(\"Password has expired or initialized, \""},{"line_number":138,"context_line":"                        \"please change the password.\")"},{"line_number":139,"context_line":"                LOG.error(msg)"},{"line_number":140,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_e55246dd","line":137,"range":{"start_line":137,"start_character":49,"end_line":137,"end_character":60},"in_reply_to":"7aa08908_9f42b53c","updated":"2016-06-14 01:01:22.000000000","message":"If you forget your password, you can reset your password by serial port or storage factory password has not been modified，In these two cases, the password is in the initial state.","commit_id":"4e389d76675b268e670ceaea95bcbe60abbcd2dc"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5b95e16ba121a32a8666621f6cd677d810ab727b","unresolved":false,"context_lines":[{"line_number":134,"context_line":"            if (result[\u0027data\u0027][\u0027accountstate\u0027]"},{"line_number":135,"context_line":"                    in (constants.PWD_EXPIRED, constants.PWD_INITIALIZED)):"},{"line_number":136,"context_line":"                self.logout()"},{"line_number":137,"context_line":"                msg \u003d _(\"Password has expired or initialized, \""},{"line_number":138,"context_line":"                        \"please change the password.\")"},{"line_number":139,"context_line":"                LOG.error(msg)"},{"line_number":140,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_7ea9ab8f","line":137,"range":{"start_line":137,"start_character":49,"end_line":137,"end_character":60},"in_reply_to":"7aa08908_e55246dd","updated":"2016-06-14 13:42:00.000000000","message":"\"Password initialized\" should be reworded.\n\nCan you change it to maybe \"the initial password has to be reset\"?","commit_id":"4e389d76675b268e670ceaea95bcbe60abbcd2dc"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"f96159b10fb1a73278b12b930e716cf66c463cd0","unresolved":false,"context_lines":[{"line_number":134,"context_line":"            if (result[\u0027data\u0027][\u0027accountstate\u0027]"},{"line_number":135,"context_line":"                    in (constants.PWD_EXPIRED, constants.PWD_INITIALIZED)):"},{"line_number":136,"context_line":"                self.logout()"},{"line_number":137,"context_line":"                msg \u003d _(\"Password has expired or initialized, \""},{"line_number":138,"context_line":"                        \"please change the password.\")"},{"line_number":139,"context_line":"                LOG.error(msg)"},{"line_number":140,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_aed3d302","line":137,"range":{"start_line":137,"start_character":49,"end_line":137,"end_character":60},"in_reply_to":"7aa08908_e55246dd","updated":"2016-06-14 16:55:07.000000000","message":"Then shouldn\u0027t the state be called something like \"uninitialized\"?","commit_id":"4e389d76675b268e670ceaea95bcbe60abbcd2dc"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"4487bd26b11c000f0514776fc3beb34831061fdb","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            self.headers[\u0027iBaseToken\u0027] \u003d result[\u0027data\u0027][\u0027iBaseToken\u0027]"},{"line_number":134,"context_line":"            if (result[\u0027data\u0027][\u0027accountstate\u0027]"},{"line_number":135,"context_line":"                    in (constants.PWD_EXPIRED, constants.PWD_INITIALIZED)):"},{"line_number":136,"context_line":"                self.logout()"},{"line_number":137,"context_line":"                msg \u003d _(\"Password has expired or has been reset, \""},{"line_number":138,"context_line":"                        \"please change the password.\")"},{"line_number":139,"context_line":"                LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_e6c8fb23","line":136,"updated":"2016-06-16 12:26:18.000000000","message":"Do we need to ignore any exception raised by logout (after logging it) because if we do not, then the following error message will not be printed.","commit_id":"84b89cb8bcd30823c23d548e40169d626233ecae"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"ed031f50b74fc7247eb61152e62dd0fee0e2cd08","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            self.headers[\u0027iBaseToken\u0027] \u003d result[\u0027data\u0027][\u0027iBaseToken\u0027]"},{"line_number":134,"context_line":"            if (result[\u0027data\u0027][\u0027accountstate\u0027]"},{"line_number":135,"context_line":"                    in (constants.PWD_EXPIRED, constants.PWD_INITIALIZED)):"},{"line_number":136,"context_line":"                self.logout()"},{"line_number":137,"context_line":"                msg \u003d _(\"Password has expired or has been reset, \""},{"line_number":138,"context_line":"                        \"please change the password.\")"},{"line_number":139,"context_line":"                LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_ac34edde","line":136,"in_reply_to":"7aa08908_e6c8fb23","updated":"2016-06-17 02:53:27.000000000","message":"If logout raised exception it will print logout error message instead of the following error message.","commit_id":"84b89cb8bcd30823c23d548e40169d626233ecae"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"e112e80e02b46b60b94c89de3c8518785ffc8d15","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            self.headers[\u0027iBaseToken\u0027] \u003d result[\u0027data\u0027][\u0027iBaseToken\u0027]"},{"line_number":134,"context_line":"            if (result[\u0027data\u0027][\u0027accountstate\u0027]"},{"line_number":135,"context_line":"                    in (constants.PWD_EXPIRED, constants.PWD_RESET)):"},{"line_number":136,"context_line":"                self.logout()"},{"line_number":137,"context_line":"                msg \u003d _(\"Password has expired or has been reset, \""},{"line_number":138,"context_line":"                        \"please change the password.\")"},{"line_number":139,"context_line":"                LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1aa78d24_99592338","line":136,"updated":"2016-07-06 22:52:58.000000000","message":"why do you have to logout if the password has expired or is invalid?  Aren\u0027t you already in a failed login state?","commit_id":"8e3857372e342ec6c77f571fadcfa9875f2ac282"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"3e3eee336cea44b710e5cb560fedb01575a559c8","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            self.headers[\u0027iBaseToken\u0027] \u003d result[\u0027data\u0027][\u0027iBaseToken\u0027]"},{"line_number":134,"context_line":"            if (result[\u0027data\u0027][\u0027accountstate\u0027]"},{"line_number":135,"context_line":"                    in (constants.PWD_EXPIRED, constants.PWD_RESET)):"},{"line_number":136,"context_line":"                self.logout()"},{"line_number":137,"context_line":"                msg \u003d _(\"Password has expired or has been reset, \""},{"line_number":138,"context_line":"                        \"please change the password.\")"},{"line_number":139,"context_line":"                LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1aa78d24_d5408709","line":136,"in_reply_to":"1aa78d24_99592338","updated":"2016-07-07 04:29:53.000000000","message":"In this case, login will success but the accountstate not normal and we can\u0027t execute command , it will occupy the array connection numbers so we need logout.","commit_id":"8e3857372e342ec6c77f571fadcfa9875f2ac282"}]}
