)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":7,"context_line":"refactor Huawei Volume driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This blueprint is an attempt to refactor the Huawei volume driver in liberty."},{"line_number":10,"context_line":"We will add a base dirver to implement the basic functions that the Cinder driver required."},{"line_number":11,"context_line":"The sub-class will inherit the base driver according to different storages."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I768889e2577a4d975397218eb31e89b42e08e04f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3afb71cf_7d1a4670","line":10,"updated":"2015-06-05 10:31:24.000000000","message":"Typo: s/dirver/driver","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"c985cb495ef2c29abd7e5b885c53a8ded95e4870","unresolved":false,"context_lines":[{"line_number":11,"context_line":"The sub-class will inherit from the base driver according to different storages."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The followings are the changes about the refactor:"},{"line_number":14,"context_line":"1.Abstract a base class named HuaweiBaseDriver to make Huawei driver more uniersal, and you can find it in the huawei_driver.py."},{"line_number":15,"context_line":"2.Put all static variables into the constants.py."},{"line_number":16,"context_line":"3.Rename rest_common.py to rest_client.py. rest_client.py stores the relevant interfaces and method implementations for Huawei driver."},{"line_number":17,"context_line":"4.Migrate some public methods from rest_client.py to huawei_utils.py, such as parse_xml_file(), _get_volume_type() and so on."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"fa32b979_cd589159","line":14,"updated":"2015-06-15 08:55:06.000000000","message":"s/uniersal/universal","commit_id":"e5b6fe1dd9da219f0539019fadacab271f9acff6"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"51c2fe3c3396dff9eae128f58df77048ed0f4174","unresolved":false,"context_lines":[{"line_number":11,"context_line":"The sub-class will inherit from the base driver according to different storages."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The followings are the changes about the refactor:"},{"line_number":14,"context_line":"1.Abstract a base class named HuaweiBaseDriver to make Huawei driver more uniersal, and you can find it in the huawei_driver.py."},{"line_number":15,"context_line":"2.Put all static variables into the constants.py."},{"line_number":16,"context_line":"3.Rename rest_common.py to rest_client.py. rest_client.py stores the relevant interfaces and method implementations for Huawei driver."},{"line_number":17,"context_line":"4.Migrate some public methods from rest_client.py to huawei_utils.py, such as parse_xml_file(), _get_volume_type() and so on."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"fa32b979_18b0f942","line":14,"in_reply_to":"fa32b979_cd589159","updated":"2015-06-15 09:01:13.000000000","message":"Done","commit_id":"e5b6fe1dd9da219f0539019fadacab271f9acff6"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"27f1978f68e68b4a6106db6e1b04419399f887a0","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Refactor Huawei Volume driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This blueprint attempts to refactor Huawei volume driver in liberty."},{"line_number":10,"context_line":"We will add a base driver to implement the basic functions that the cinder driver required."},{"line_number":11,"context_line":"The sub-class will inherit from the base driver according to different storages."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The followings are the changes about the refactor:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"fa32b979_08dbc47d","line":10,"updated":"2015-06-15 10:17:47.000000000","message":"Subsequent lines should be wrapped at 72 characters. https://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"9d87cddcf6d6befc19787b095159d7bc655c6024"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"27f1978f68e68b4a6106db6e1b04419399f887a0","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This blueprint attempts to refactor Huawei volume driver in liberty."},{"line_number":10,"context_line":"We will add a base driver to implement the basic functions that the cinder driver required."},{"line_number":11,"context_line":"The sub-class will inherit from the base driver according to different storages."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The followings are the changes about the refactor:"},{"line_number":14,"context_line":"1.Abstract a base class named HuaweiBaseDriver to make Huawei driver more uniersal, and you can find it in the huawei_driver.py."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"fa32b979_08c2e485","line":11,"updated":"2015-06-15 10:17:47.000000000","message":"Subsequent lines should be wrapped at 72 characters. https://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"9d87cddcf6d6befc19787b095159d7bc655c6024"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"27f1978f68e68b4a6106db6e1b04419399f887a0","unresolved":false,"context_lines":[{"line_number":11,"context_line":"The sub-class will inherit from the base driver according to different storages."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The followings are the changes about the refactor:"},{"line_number":14,"context_line":"1.Abstract a base class named HuaweiBaseDriver to make Huawei driver more uniersal, and you can find it in the huawei_driver.py."},{"line_number":15,"context_line":"2.Put all static variables into the constants.py."},{"line_number":16,"context_line":"3.Rename rest_common.py to rest_client.py. rest_client.py stores the relevant interfaces and method implementations for Huawei driver."},{"line_number":17,"context_line":"4.Migrate some public methods from rest_client.py to huawei_utils.py, such as parse_xml_file(), _get_volume_type() and so on."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"fa32b979_285808fa","line":14,"updated":"2015-06-15 10:17:47.000000000","message":"Subsequent lines should be wrapped at 72 characters. https://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"9d87cddcf6d6befc19787b095159d7bc655c6024"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"b3df8949ed5f059318e6bafa605c8f65adf03f1f","unresolved":false,"context_lines":[{"line_number":11,"context_line":"The sub-class will inherit from the base driver according to different storages."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The followings are the changes about the refactor:"},{"line_number":14,"context_line":"1.Abstract a base class named HuaweiBaseDriver to make Huawei driver more uniersal, and you can find it in the huawei_driver.py."},{"line_number":15,"context_line":"2.Put all static variables into the constants.py."},{"line_number":16,"context_line":"3.Rename rest_common.py to rest_client.py. rest_client.py stores the relevant interfaces and method implementations for Huawei driver."},{"line_number":17,"context_line":"4.Migrate some public methods from rest_client.py to huawei_utils.py, such as parse_xml_file(), _get_volume_type() and so on."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"fa32b979_85657d46","line":14,"updated":"2015-06-15 10:06:24.000000000","message":"again same :)\n\ns/uniersal/universal","commit_id":"9d87cddcf6d6befc19787b095159d7bc655c6024"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"b186809557cb37885a0f468ec9474e18f67154a7","unresolved":false,"context_lines":[{"line_number":13,"context_line":"The followings are the changes about the refactor:"},{"line_number":14,"context_line":"1.Abstract a base class named HuaweiBaseDriver to make Huawei driver more uniersal, and you can find it in the huawei_driver.py."},{"line_number":15,"context_line":"2.Put all static variables into the constants.py."},{"line_number":16,"context_line":"3.Rename rest_common.py to rest_client.py. rest_client.py stores the relevant interfaces and method implementations for Huawei driver."},{"line_number":17,"context_line":"4.Migrate some public methods from rest_client.py to huawei_utils.py, such as parse_xml_file(), _get_volume_type() and so on."},{"line_number":18,"context_line":"5.This refactor involves only structural adjustment and does not involve code changes."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"fa32b979_2857a803","line":16,"updated":"2015-06-15 10:12:32.000000000","message":"Subsequent lines should be wrapped at 72 characters.\nhttps://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"9d87cddcf6d6befc19787b095159d7bc655c6024"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"b186809557cb37885a0f468ec9474e18f67154a7","unresolved":false,"context_lines":[{"line_number":14,"context_line":"1.Abstract a base class named HuaweiBaseDriver to make Huawei driver more uniersal, and you can find it in the huawei_driver.py."},{"line_number":15,"context_line":"2.Put all static variables into the constants.py."},{"line_number":16,"context_line":"3.Rename rest_common.py to rest_client.py. rest_client.py stores the relevant interfaces and method implementations for Huawei driver."},{"line_number":17,"context_line":"4.Migrate some public methods from rest_client.py to huawei_utils.py, such as parse_xml_file(), _get_volume_type() and so on."},{"line_number":18,"context_line":"5.This refactor involves only structural adjustment and does not involve code changes."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I768889e2577a4d975397218eb31e89b42e08e04f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"fa32b979_48730cb2","line":17,"updated":"2015-06-15 10:12:32.000000000","message":"Subsequent lines should be wrapped at 72 characters. https://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"9d87cddcf6d6befc19787b095159d7bc655c6024"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"27f1978f68e68b4a6106db6e1b04419399f887a0","unresolved":false,"context_lines":[{"line_number":16,"context_line":"3.Rename rest_common.py to rest_client.py. rest_client.py stores the relevant interfaces and method implementations for Huawei driver."},{"line_number":17,"context_line":"4.Migrate some public methods from rest_client.py to huawei_utils.py, such as parse_xml_file(), _get_volume_type() and so on."},{"line_number":18,"context_line":"5.This refactor involves only structural adjustment and does not involve code changes."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I768889e2577a4d975397218eb31e89b42e08e04f"},{"line_number":21,"context_line":"Implements: blueprint refactor-huawei-volume-driver"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"fa32b979_2826c868","line":19,"updated":"2015-06-15 10:17:47.000000000","message":"Subsequent lines should be wrapped at 72 characters. https://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"9d87cddcf6d6befc19787b095159d7bc655c6024"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7d50ae1c52cd6d1e288f4cc5d92018a762c8f53b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Refactor Huawei Volume driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This blueprint attempts to refactor Huawei volume driver in liberty."},{"line_number":10,"context_line":"We will add a base driver to implement the basic functions that the"},{"line_number":11,"context_line":"cinder driver required."},{"line_number":12,"context_line":"The sub-class will inherit from the base driver according to different"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"fa32b979_a8f7bb89","line":9,"updated":"2015-06-17 15:09:52.000000000","message":"/blueprint/patch/","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"ce93dcbf18986b6b510e2f682e697972afa57ccf","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Refactor Huawei Volume driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This blueprint attempts to refactor Huawei volume driver in liberty."},{"line_number":10,"context_line":"We will add a base driver to implement the basic functions that the"},{"line_number":11,"context_line":"cinder driver required."},{"line_number":12,"context_line":"The sub-class will inherit from the base driver according to different"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"9a41bdd9_322e07fb","line":9,"in_reply_to":"fa32b979_a8f7bb89","updated":"2015-07-18 06:12:58.000000000","message":"Done","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"18b17320fc9e711b39a2f479f82e64df22df3c27","unresolved":false,"context_lines":[{"line_number":21,"context_line":"4.Migrate some public methods from rest_client.py to huawei_utils.py,"},{"line_number":22,"context_line":"such as parse_xml_file(), _get_volume_type() and so on."},{"line_number":23,"context_line":"5.This refactor involves only structural adjustment and does not involve"},{"line_number":24,"context_line":"code changes."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Change-Id: I768889e2577a4d975397218eb31e89b42e08e04f"},{"line_number":27,"context_line":"Implements: blueprint refactor-huawei-volume-driver"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"fa32b979_e30ba422","line":24,"updated":"2015-06-17 15:59:58.000000000","message":"It of course involves \"code changes\".  Can you change \"code changes\" to \"functional changes\"?","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"ce93dcbf18986b6b510e2f682e697972afa57ccf","unresolved":false,"context_lines":[{"line_number":21,"context_line":"4.Migrate some public methods from rest_client.py to huawei_utils.py,"},{"line_number":22,"context_line":"such as parse_xml_file(), _get_volume_type() and so on."},{"line_number":23,"context_line":"5.This refactor involves only structural adjustment and does not involve"},{"line_number":24,"context_line":"code changes."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Change-Id: I768889e2577a4d975397218eb31e89b42e08e04f"},{"line_number":27,"context_line":"Implements: blueprint refactor-huawei-volume-driver"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"9a41bdd9_f2373f4b","line":24,"in_reply_to":"fa32b979_e30ba422","updated":"2015-07-18 06:12:58.000000000","message":"Done","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"66d403c832633c3aafaaae9ed621a98198dbbb1e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"We add a base driver to implement the basic functions."},{"line_number":11,"context_line":"The sub-class will inherit from the base driver according to different"},{"line_number":12,"context_line":"storages."},{"line_number":13,"context_line":"The followings are the changes about this refactor:"},{"line_number":14,"context_line":"1. Abstract a base class named HuaweiBaseDriver to make Huawei driver more"},{"line_number":15,"context_line":"universal. You can find it in the huawei_driver.py."},{"line_number":16,"context_line":"2. Put all static variables into the constants.py."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"ba3cc151_3cb29507","line":13,"updated":"2015-07-10 14:53:46.000000000","message":"I suggest rephrasing to: \"The following changes were made in this refactor: \"","commit_id":"8bd6852d184ee177ca5039b0e9c22dccf0a437b9"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"c9719c61c7a0bd8a07b76366ec233a2ae4bbcbd6","unresolved":false,"context_lines":[{"line_number":10,"context_line":"We add a base driver to implement the basic functions."},{"line_number":11,"context_line":"The sub-class will inherit from the base driver according to different"},{"line_number":12,"context_line":"storages."},{"line_number":13,"context_line":"The followings are the changes about this refactor:"},{"line_number":14,"context_line":"1. Abstract a base class named HuaweiBaseDriver to make Huawei driver more"},{"line_number":15,"context_line":"universal. You can find it in the huawei_driver.py."},{"line_number":16,"context_line":"2. Put all static variables into the constants.py."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"9a41bdd9_13655c44","line":13,"in_reply_to":"ba3cc151_3cb29507","updated":"2015-07-11 03:03:59.000000000","message":"Done","commit_id":"8bd6852d184ee177ca5039b0e9c22dccf0a437b9"}],"1.21":[{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"292ec4c4878d39e27fe2d1aaaaee06c08bc6223a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"You are using pip version 6.0.8, however version 7.0.3 is available."},{"line_number":2,"context_line":"You should consider upgrading via the \u0027pip install --upgrade pip\u0027 command."},{"line_number":3,"context_line":"Requirement already satisfied (use --upgrade to upgrade): git-review in /usr/local/lib/python2.7/dist-packages"},{"line_number":4,"context_line":"Requirement already satisfied (use --upgrade to upgrade): argparse in /usr/lib/python2.7 (from git-review)"}],"source_content_type":"application/octet-stream","patch_set":11,"id":"fa32b979_fa572600","line":1,"updated":"2015-06-15 23:06:23.000000000","message":"whats this file? seems like it shouldn\u0027t be added?","commit_id":"e359708a18e2baa7d4f84473e7472063fb3dd00d"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"467c992c8e2e39779ca78fd7fc1d8b879ea0cf35","unresolved":false,"context_lines":[{"line_number":1,"context_line":"You are using pip version 6.0.8, however version 7.0.3 is available."},{"line_number":2,"context_line":"You should consider upgrading via the \u0027pip install --upgrade pip\u0027 command."},{"line_number":3,"context_line":"Requirement already satisfied (use --upgrade to upgrade): git-review in /usr/local/lib/python2.7/dist-packages"},{"line_number":4,"context_line":"Requirement already satisfied (use --upgrade to upgrade): argparse in /usr/lib/python2.7 (from git-review)"}],"source_content_type":"application/octet-stream","patch_set":11,"id":"fa32b979_eb12f3b3","line":1,"in_reply_to":"fa32b979_fa572600","updated":"2015-06-16 02:54:16.000000000","message":"thanks, I have deleted this file.","commit_id":"e359708a18e2baa7d4f84473e7472063fb3dd00d"}],"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":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":42,"context_line":"               \u0027display_name\u0027: \u0027vol1\u0027,"},{"line_number":43,"context_line":"               \u0027display_description\u0027: \u0027test volume\u0027,"},{"line_number":44,"context_line":"               \u0027volume_type_id\u0027: None,"},{"line_number":45,"context_line":"               \u0027provider_location\u0027: \u002711\u0027}"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"test_snap \u003d {\u0027name\u0027: \u0027volume-21ec7341-9256-497b-97d9-ef48edcf0635\u0027,"},{"line_number":48,"context_line":"             \u0027size\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_3d528e14","line":45,"updated":"2015-06-05 10:31:24.000000000","message":"The last item in the dictionary should have a trailing comma. For below dicts as well.\n\nhttp://docs.openstack.org/developer/hacking/#dictionaries-lists","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":42,"context_line":"               \u0027display_name\u0027: \u0027vol1\u0027,"},{"line_number":43,"context_line":"               \u0027display_description\u0027: \u0027test volume\u0027,"},{"line_number":44,"context_line":"               \u0027volume_type_id\u0027: None,"},{"line_number":45,"context_line":"               \u0027provider_location\u0027: \u002711\u0027}"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"test_snap \u003d {\u0027name\u0027: \u0027volume-21ec7341-9256-497b-97d9-ef48edcf0635\u0027,"},{"line_number":48,"context_line":"             \u0027size\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_07b86de4","line":45,"in_reply_to":"3afb71cf_3d528e14","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":873,"context_line":""},{"line_number":874,"context_line":"    def test_login_success(self):"},{"line_number":875,"context_line":"        deviceid \u003d self.driver.restclient.login()"},{"line_number":876,"context_line":"        self.assertEqual(deviceid, \u0027210235G7J20000000000\u0027)"},{"line_number":877,"context_line":""},{"line_number":878,"context_line":"    def test_create_volume_success(self):"},{"line_number":879,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_ddddba71","line":876,"updated":"2015-06-05 10:31:24.000000000","message":"Here the order of arguments is wrong, this should be (expected, actual)\n\nSo,\n\nself.assertEqual(\u0027210235G7J20000000000\u0027, deviceid)","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":873,"context_line":""},{"line_number":874,"context_line":"    def test_login_success(self):"},{"line_number":875,"context_line":"        deviceid \u003d self.driver.restclient.login()"},{"line_number":876,"context_line":"        self.assertEqual(deviceid, \u0027210235G7J20000000000\u0027)"},{"line_number":877,"context_line":""},{"line_number":878,"context_line":"    def test_create_volume_success(self):"},{"line_number":879,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_a7c9997a","line":876,"in_reply_to":"3afb71cf_ddddba71","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":878,"context_line":"    def test_create_volume_success(self):"},{"line_number":879,"context_line":"        self.driver.restclient.login()"},{"line_number":880,"context_line":"        lun_info \u003d self.driver.create_volume(test_volume)"},{"line_number":881,"context_line":"        self.assertEqual(lun_info[\u0027provider_location\u0027], \u00271\u0027)"},{"line_number":882,"context_line":"#        self.assertEqual(lun_info[\u0027lun_info\u0027][\u0027NAME\u0027],"},{"line_number":883,"context_line":"#                         \u00275mFHcBv4RkCcD+JyrWc0SA\u0027)"},{"line_number":884,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_7d8da67a","line":881,"updated":"2015-06-05 10:31:24.000000000","message":"Same as above.","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":878,"context_line":"    def test_create_volume_success(self):"},{"line_number":879,"context_line":"        self.driver.restclient.login()"},{"line_number":880,"context_line":"        lun_info \u003d self.driver.create_volume(test_volume)"},{"line_number":881,"context_line":"        self.assertEqual(lun_info[\u0027provider_location\u0027], \u00271\u0027)"},{"line_number":882,"context_line":"#        self.assertEqual(lun_info[\u0027lun_info\u0027][\u0027NAME\u0027],"},{"line_number":883,"context_line":"#                         \u00275mFHcBv4RkCcD+JyrWc0SA\u0027)"},{"line_number":884,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_87c45d5f","line":881,"in_reply_to":"3afb71cf_7d8da67a","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":880,"context_line":"        lun_info \u003d self.driver.create_volume(test_volume)"},{"line_number":881,"context_line":"        self.assertEqual(lun_info[\u0027provider_location\u0027], \u00271\u0027)"},{"line_number":882,"context_line":"#        self.assertEqual(lun_info[\u0027lun_info\u0027][\u0027NAME\u0027],"},{"line_number":883,"context_line":"#                         \u00275mFHcBv4RkCcD+JyrWc0SA\u0027)"},{"line_number":884,"context_line":""},{"line_number":885,"context_line":"    def test_delete_volume_success(self):"},{"line_number":886,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_1da59203","line":883,"updated":"2015-06-05 10:31:24.000000000","message":"Please remove the commented code.","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":890,"context_line":"    def test_create_snapshot_success(self):"},{"line_number":891,"context_line":"        self.driver.restclient.login()"},{"line_number":892,"context_line":"        lun_info \u003d self.driver.create_snapshot(test_volume)"},{"line_number":893,"context_line":"        self.assertEqual(lun_info[\u0027provider_location\u0027], 11)"},{"line_number":894,"context_line":"#        self.assertEqual(lun_info[\u0027lun_info\u0027][\u0027NAME\u0027], \u0027YheUoRwbSX2BxN7\u0027)"},{"line_number":895,"context_line":""},{"line_number":896,"context_line":"    def test_delete_snapshot_success(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_7de4863a","line":893,"updated":"2015-06-05 10:31:24.000000000","message":"Same as above.","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":891,"context_line":"        self.driver.restclient.login()"},{"line_number":892,"context_line":"        lun_info \u003d self.driver.create_snapshot(test_volume)"},{"line_number":893,"context_line":"        self.assertEqual(lun_info[\u0027provider_location\u0027], 11)"},{"line_number":894,"context_line":"#        self.assertEqual(lun_info[\u0027lun_info\u0027][\u0027NAME\u0027], \u0027YheUoRwbSX2BxN7\u0027)"},{"line_number":895,"context_line":""},{"line_number":896,"context_line":"    def test_delete_snapshot_success(self):"},{"line_number":897,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_1dca32a2","line":894,"updated":"2015-06-05 10:31:24.000000000","message":"Please remove the commented code.","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":891,"context_line":"        self.driver.restclient.login()"},{"line_number":892,"context_line":"        lun_info \u003d self.driver.create_snapshot(test_volume)"},{"line_number":893,"context_line":"        self.assertEqual(lun_info[\u0027provider_location\u0027], 11)"},{"line_number":894,"context_line":"#        self.assertEqual(lun_info[\u0027lun_info\u0027][\u0027NAME\u0027], \u0027YheUoRwbSX2BxN7\u0027)"},{"line_number":895,"context_line":""},{"line_number":896,"context_line":"    def test_delete_snapshot_success(self):"},{"line_number":897,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_27ac899f","line":894,"in_reply_to":"3afb71cf_1dca32a2","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":902,"context_line":"        self.driver.restclient.login()"},{"line_number":903,"context_line":"        lun_info \u003d self.driver.create_volume_from_snapshot(test_volume,"},{"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":""},{"line_number":907,"context_line":"    def test_initialize_connection_success(self):"},{"line_number":908,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_ddc49a93","line":905,"updated":"2015-06-05 10:31:24.000000000","message":"Same as above.","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":902,"context_line":"        self.driver.restclient.login()"},{"line_number":903,"context_line":"        lun_info \u003d self.driver.create_volume_from_snapshot(test_volume,"},{"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":""},{"line_number":907,"context_line":"    def test_initialize_connection_success(self):"},{"line_number":908,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_972d8048","line":905,"in_reply_to":"3afb71cf_ddc49a93","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":908,"context_line":"        self.driver.restclient.login()"},{"line_number":909,"context_line":"        iscsi_properties \u003d self.driver.initialize_connection(test_volume,"},{"line_number":910,"context_line":"                                                             FakeConnector)"},{"line_number":911,"context_line":"        self.assertEqual(iscsi_properties[\u0027data\u0027][\u0027target_lun\u0027], 1)"},{"line_number":912,"context_line":""},{"line_number":913,"context_line":"    def test_terminate_connection_success(self):"},{"line_number":914,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_9dbe22fe","line":911,"updated":"2015-06-05 10:31:24.000000000","message":"Same as above.","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":908,"context_line":"        self.driver.restclient.login()"},{"line_number":909,"context_line":"        iscsi_properties \u003d self.driver.initialize_connection(test_volume,"},{"line_number":910,"context_line":"                                                             FakeConnector)"},{"line_number":911,"context_line":"        self.assertEqual(iscsi_properties[\u0027data\u0027][\u0027target_lun\u0027], 1)"},{"line_number":912,"context_line":""},{"line_number":913,"context_line":"    def test_terminate_connection_success(self):"},{"line_number":914,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_7730c49e","line":911,"in_reply_to":"3afb71cf_9dbe22fe","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":919,"context_line":"    def test_get_volume_status(self):"},{"line_number":920,"context_line":"        self.driver.restclient.login()"},{"line_number":921,"context_line":"        data \u003d self.driver.get_volume_stats()"},{"line_number":922,"context_line":"        self.assertEqual(data[\u0027driver_version\u0027], \u00271.1.0\u0027)"},{"line_number":923,"context_line":""},{"line_number":924,"context_line":"    def test_extend_volume(self):"},{"line_number":925,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_1d41120c","line":922,"updated":"2015-06-05 10:31:24.000000000","message":"Same as above.","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":919,"context_line":"    def test_get_volume_status(self):"},{"line_number":920,"context_line":"        self.driver.restclient.login()"},{"line_number":921,"context_line":"        data \u003d self.driver.get_volume_stats()"},{"line_number":922,"context_line":"        self.assertEqual(data[\u0027driver_version\u0027], \u00271.1.0\u0027)"},{"line_number":923,"context_line":""},{"line_number":924,"context_line":"    def test_extend_volume(self):"},{"line_number":925,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_1722b052","line":922,"in_reply_to":"3afb71cf_1d41120c","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":924,"context_line":"    def test_extend_volume(self):"},{"line_number":925,"context_line":"        self.driver.restclient.login()"},{"line_number":926,"context_line":"        lun_info \u003d self.driver.extend_volume(test_volume, 3)"},{"line_number":927,"context_line":"        self.assertEqual(lun_info[\u0027provider_location\u0027], \u00271\u0027)"},{"line_number":928,"context_line":""},{"line_number":929,"context_line":"    def test_login_fail(self):"},{"line_number":930,"context_line":"        self.driver.restclient.test_fail \u003d True"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_fd451617","line":927,"updated":"2015-06-05 10:31:24.000000000","message":"Same as above.","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":960,"context_line":"        self.driver.restclient.test_fail \u003d True"},{"line_number":961,"context_line":"        iscsi_properties \u003d self.driver.initialize_connection(test_volume,"},{"line_number":962,"context_line":"                                                             FakeConnector)"},{"line_number":963,"context_line":"        self.assertEqual(iscsi_properties[\u0027data\u0027][\u0027target_lun\u0027], 1)"},{"line_number":964,"context_line":""},{"line_number":965,"context_line":"    def test_get_default_timeout(self):"},{"line_number":966,"context_line":"        result \u003d huawei_utils._get_default_timeout(self.configuration)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_5d5e6aea","line":963,"updated":"2015-06-05 10:31:24.000000000","message":"Same as above.","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":960,"context_line":"        self.driver.restclient.test_fail \u003d True"},{"line_number":961,"context_line":"        iscsi_properties \u003d self.driver.initialize_connection(test_volume,"},{"line_number":962,"context_line":"                                                             FakeConnector)"},{"line_number":963,"context_line":"        self.assertEqual(iscsi_properties[\u0027data\u0027][\u0027target_lun\u0027], 1)"},{"line_number":964,"context_line":""},{"line_number":965,"context_line":"    def test_get_default_timeout(self):"},{"line_number":966,"context_line":"        result \u003d huawei_utils._get_default_timeout(self.configuration)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_e796714b","line":963,"in_reply_to":"3afb71cf_5d5e6aea","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":976,"context_line":"        self.driver.restclient._associate_lun_to_lungroup(\u002711\u0027, \u002711\u0027)"},{"line_number":977,"context_line":"        result \u003d self.driver.restclient._is_lun_associated_to_lungroup(\u002711\u0027,"},{"line_number":978,"context_line":"                                                                       \u002711\u0027)"},{"line_number":979,"context_line":"        self.assertEqual(True, result)"},{"line_number":980,"context_line":""},{"line_number":981,"context_line":"    def test_lun_is_not_associated_to_lun_group(self):"},{"line_number":982,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_dd725a7c","line":979,"updated":"2015-06-05 10:31:24.000000000","message":"Please use self.assertTrue(result)","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":976,"context_line":"        self.driver.restclient._associate_lun_to_lungroup(\u002711\u0027, \u002711\u0027)"},{"line_number":977,"context_line":"        result \u003d self.driver.restclient._is_lun_associated_to_lungroup(\u002711\u0027,"},{"line_number":978,"context_line":"                                                                       \u002711\u0027)"},{"line_number":979,"context_line":"        self.assertEqual(True, result)"},{"line_number":980,"context_line":""},{"line_number":981,"context_line":"    def test_lun_is_not_associated_to_lun_group(self):"},{"line_number":982,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_97d46020","line":979,"in_reply_to":"3afb71cf_dd725a7c","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":984,"context_line":"        self.driver.restclient._remove_lun_from_lungroup(\u002712\u0027, \u002712\u0027)"},{"line_number":985,"context_line":"        result \u003d self.driver.restclient._is_lun_associated_to_lungroup(\u002712\u0027,"},{"line_number":986,"context_line":"                                                                       \u002712\u0027)"},{"line_number":987,"context_line":"        self.assertEqual(False, result)"},{"line_number":988,"context_line":""},{"line_number":989,"context_line":"    def test_get_tgtip(self):"},{"line_number":990,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_7d69268b","line":987,"updated":"2015-06-05 10:31:24.000000000","message":"Please use self.assertFalse(result)","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":984,"context_line":"        self.driver.restclient._remove_lun_from_lungroup(\u002712\u0027, \u002712\u0027)"},{"line_number":985,"context_line":"        result \u003d self.driver.restclient._is_lun_associated_to_lungroup(\u002712\u0027,"},{"line_number":986,"context_line":"                                                                       \u002712\u0027)"},{"line_number":987,"context_line":"        self.assertEqual(False, result)"},{"line_number":988,"context_line":""},{"line_number":989,"context_line":"    def test_get_tgtip(self):"},{"line_number":990,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_77d7a423","line":987,"in_reply_to":"3afb71cf_7d69268b","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":990,"context_line":"        self.driver.restclient.login()"},{"line_number":991,"context_line":"        portg_id \u003d self.driver.restclient._find_tgt_port_group(self.portgroup)"},{"line_number":992,"context_line":"        result \u003d self.driver.restclient._get_tgt_ip_from_portgroup(portg_id)"},{"line_number":993,"context_line":"        self.assertEqual(self.target_ip, result)"},{"line_number":994,"context_line":""},{"line_number":995,"context_line":"    def test_get_lun_conf_params(self):"},{"line_number":996,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_7d0006ab","line":993,"updated":"2015-06-05 10:31:24.000000000","message":"Same as above. Order of parameters.","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":990,"context_line":"        self.driver.restclient.login()"},{"line_number":991,"context_line":"        portg_id \u003d self.driver.restclient._find_tgt_port_group(self.portgroup)"},{"line_number":992,"context_line":"        result \u003d self.driver.restclient._get_tgt_ip_from_portgroup(portg_id)"},{"line_number":993,"context_line":"        self.assertEqual(self.target_ip, result)"},{"line_number":994,"context_line":""},{"line_number":995,"context_line":"    def test_get_lun_conf_params(self):"},{"line_number":996,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_a7a079a0","line":993,"in_reply_to":"3afb71cf_7d0006ab","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":1122,"context_line":""},{"line_number":1123,"context_line":"    def test_login_success(self):"},{"line_number":1124,"context_line":"        deviceid \u003d self.driver.restclient.login()"},{"line_number":1125,"context_line":"        self.assertEqual(deviceid, \u0027210235G7J20000000000\u0027)"},{"line_number":1126,"context_line":""},{"line_number":1127,"context_line":"    def test_create_volume_success(self):"},{"line_number":1128,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_5dd30a39","line":1125,"updated":"2015-06-05 10:31:24.000000000","message":"Same as above.","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":1122,"context_line":""},{"line_number":1123,"context_line":"    def test_login_success(self):"},{"line_number":1124,"context_line":"        deviceid \u003d self.driver.restclient.login()"},{"line_number":1125,"context_line":"        self.assertEqual(deviceid, \u0027210235G7J20000000000\u0027)"},{"line_number":1126,"context_line":""},{"line_number":1127,"context_line":"    def test_create_volume_success(self):"},{"line_number":1128,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_17e990e6","line":1125,"in_reply_to":"3afb71cf_5dd30a39","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":1127,"context_line":"    def test_create_volume_success(self):"},{"line_number":1128,"context_line":"        self.driver.restclient.login()"},{"line_number":1129,"context_line":"        lun_info \u003d self.driver.create_volume(test_volume)"},{"line_number":1130,"context_line":"        self.assertEqual(lun_info[\u0027provider_location\u0027], \u00271\u0027)"},{"line_number":1131,"context_line":"#        self.assertEqual(lun_info[\u0027lun_info\u0027][\u0027NAME\u0027],"},{"line_number":1132,"context_line":"#                         \u00275mFHcBv4RkCcD+JyrWc0SA\u0027)"},{"line_number":1133,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_5dbaeae2","line":1130,"updated":"2015-06-05 10:31:24.000000000","message":"Same as above, order of arguments is wrong.","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":1127,"context_line":"    def test_create_volume_success(self):"},{"line_number":1128,"context_line":"        self.driver.restclient.login()"},{"line_number":1129,"context_line":"        lun_info \u003d self.driver.create_volume(test_volume)"},{"line_number":1130,"context_line":"        self.assertEqual(lun_info[\u0027provider_location\u0027], \u00271\u0027)"},{"line_number":1131,"context_line":"#        self.assertEqual(lun_info[\u0027lun_info\u0027][\u0027NAME\u0027],"},{"line_number":1132,"context_line":"#                         \u00275mFHcBv4RkCcD+JyrWc0SA\u0027)"},{"line_number":1133,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_97bb40e5","line":1130,"in_reply_to":"3afb71cf_5dbaeae2","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":1129,"context_line":"        lun_info \u003d self.driver.create_volume(test_volume)"},{"line_number":1130,"context_line":"        self.assertEqual(lun_info[\u0027provider_location\u0027], \u00271\u0027)"},{"line_number":1131,"context_line":"#        self.assertEqual(lun_info[\u0027lun_info\u0027][\u0027NAME\u0027],"},{"line_number":1132,"context_line":"#                         \u00275mFHcBv4RkCcD+JyrWc0SA\u0027)"},{"line_number":1133,"context_line":""},{"line_number":1134,"context_line":"    def test_delete_volume_success(self):"},{"line_number":1135,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_1ddd9242","line":1132,"updated":"2015-06-05 10:31:24.000000000","message":"Remove the commented code.","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":1129,"context_line":"        lun_info \u003d self.driver.create_volume(test_volume)"},{"line_number":1130,"context_line":"        self.assertEqual(lun_info[\u0027provider_location\u0027], \u00271\u0027)"},{"line_number":1131,"context_line":"#        self.assertEqual(lun_info[\u0027lun_info\u0027][\u0027NAME\u0027],"},{"line_number":1132,"context_line":"#                         \u00275mFHcBv4RkCcD+JyrWc0SA\u0027)"},{"line_number":1133,"context_line":""},{"line_number":1134,"context_line":"    def test_delete_volume_success(self):"},{"line_number":1135,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_77be84d5","line":1132,"in_reply_to":"3afb71cf_1ddd9242","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":1139,"context_line":"    def test_create_snapshot_success(self):"},{"line_number":1140,"context_line":"        self.driver.restclient.login()"},{"line_number":1141,"context_line":"        lun_info \u003d self.driver.create_snapshot(test_volume)"},{"line_number":1142,"context_line":"        self.assertEqual(lun_info[\u0027provider_location\u0027], 11)"},{"line_number":1143,"context_line":"#        self.assertEqual(lun_info[\u0027lun_info\u0027][\u0027NAME\u0027], \u0027YheUoRwbSX2BxN7\u0027)"},{"line_number":1144,"context_line":""},{"line_number":1145,"context_line":"    def test_delete_snapshot_success(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_fdaf5692","line":1142,"updated":"2015-06-05 10:31:24.000000000","message":"Same as above.","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":1139,"context_line":"    def test_create_snapshot_success(self):"},{"line_number":1140,"context_line":"        self.driver.restclient.login()"},{"line_number":1141,"context_line":"        lun_info \u003d self.driver.create_snapshot(test_volume)"},{"line_number":1142,"context_line":"        self.assertEqual(lun_info[\u0027provider_location\u0027], 11)"},{"line_number":1143,"context_line":"#        self.assertEqual(lun_info[\u0027lun_info\u0027][\u0027NAME\u0027], \u0027YheUoRwbSX2BxN7\u0027)"},{"line_number":1144,"context_line":""},{"line_number":1145,"context_line":"    def test_delete_snapshot_success(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_57b5c8eb","line":1142,"in_reply_to":"3afb71cf_fdaf5692","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":1151,"context_line":"        self.driver.restclient.login()"},{"line_number":1152,"context_line":"        lun_info \u003d self.driver.create_volume_from_snapshot(test_volume,"},{"line_number":1153,"context_line":"                                                           test_volume)"},{"line_number":1154,"context_line":"        self.assertEqual(lun_info[\u0027provider_location\u0027], \u00271\u0027)"},{"line_number":1155,"context_line":""},{"line_number":1156,"context_line":"    def test_initialize_connection_success(self):"},{"line_number":1157,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_bd79de31","line":1154,"updated":"2015-06-05 10:31:24.000000000","message":"Correct the order of arguments.","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":1151,"context_line":"        self.driver.restclient.login()"},{"line_number":1152,"context_line":"        lun_info \u003d self.driver.create_volume_from_snapshot(test_volume,"},{"line_number":1153,"context_line":"                                                           test_volume)"},{"line_number":1154,"context_line":"        self.assertEqual(lun_info[\u0027provider_location\u0027], \u00271\u0027)"},{"line_number":1155,"context_line":""},{"line_number":1156,"context_line":"    def test_initialize_connection_success(self):"},{"line_number":1157,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_17d0701e","line":1154,"in_reply_to":"3afb71cf_bd79de31","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":1157,"context_line":"        self.driver.restclient.login()"},{"line_number":1158,"context_line":"        iscsi_properties \u003d self.driver.initialize_connection(test_volume,"},{"line_number":1159,"context_line":"                                                             FakeConnector)"},{"line_number":1160,"context_line":"        self.assertEqual(iscsi_properties[\u0027data\u0027][\u0027target_lun\u0027], 1)"},{"line_number":1161,"context_line":""},{"line_number":1162,"context_line":"    def test_terminate_connection_success(self):"},{"line_number":1163,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_7d73664e","line":1160,"updated":"2015-06-05 10:31:24.000000000","message":"Same as above.","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":1157,"context_line":"        self.driver.restclient.login()"},{"line_number":1158,"context_line":"        iscsi_properties \u003d self.driver.initialize_connection(test_volume,"},{"line_number":1159,"context_line":"                                                             FakeConnector)"},{"line_number":1160,"context_line":"        self.assertEqual(iscsi_properties[\u0027data\u0027][\u0027target_lun\u0027], 1)"},{"line_number":1161,"context_line":""},{"line_number":1162,"context_line":"    def test_terminate_connection_success(self):"},{"line_number":1163,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_f7ca746d","line":1160,"in_reply_to":"3afb71cf_7d73664e","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":1168,"context_line":"    def test_get_volume_status(self):"},{"line_number":1169,"context_line":"        self.driver.restclient.login()"},{"line_number":1170,"context_line":"        data \u003d self.driver.get_volume_stats()"},{"line_number":1171,"context_line":"        self.assertEqual(data[\u0027driver_version\u0027], \u00271.1.0\u0027)"},{"line_number":1172,"context_line":""},{"line_number":1173,"context_line":"    def test_extend_volume(self):"},{"line_number":1174,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_3d94ce35","line":1171,"updated":"2015-06-05 10:31:24.000000000","message":"Same as above.","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":1168,"context_line":"    def test_get_volume_status(self):"},{"line_number":1169,"context_line":"        self.driver.restclient.login()"},{"line_number":1170,"context_line":"        data \u003d self.driver.get_volume_stats()"},{"line_number":1171,"context_line":"        self.assertEqual(data[\u0027driver_version\u0027], \u00271.1.0\u0027)"},{"line_number":1172,"context_line":""},{"line_number":1173,"context_line":"    def test_extend_volume(self):"},{"line_number":1174,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_478c2535","line":1171,"in_reply_to":"3afb71cf_3d94ce35","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":1173,"context_line":"    def test_extend_volume(self):"},{"line_number":1174,"context_line":"        self.driver.restclient.login()"},{"line_number":1175,"context_line":"        lun_info \u003d self.driver.extend_volume(test_volume, 3)"},{"line_number":1176,"context_line":"        self.assertEqual(lun_info[\u0027provider_location\u0027], \u00271\u0027)"},{"line_number":1177,"context_line":""},{"line_number":1178,"context_line":"    def test_login_fail(self):"},{"line_number":1179,"context_line":"        self.driver.restclient.test_fail \u003d True"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_1d99126f","line":1176,"updated":"2015-06-05 10:31:24.000000000","message":"Same as above.","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":1173,"context_line":"    def test_extend_volume(self):"},{"line_number":1174,"context_line":"        self.driver.restclient.login()"},{"line_number":1175,"context_line":"        lun_info \u003d self.driver.extend_volume(test_volume, 3)"},{"line_number":1176,"context_line":"        self.assertEqual(lun_info[\u0027provider_location\u0027], \u00271\u0027)"},{"line_number":1177,"context_line":""},{"line_number":1178,"context_line":"    def test_login_fail(self):"},{"line_number":1179,"context_line":"        self.driver.restclient.test_fail \u003d True"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_879b3d72","line":1176,"in_reply_to":"3afb71cf_1d99126f","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":1225,"context_line":"        self.driver.restclient._associate_lun_to_lungroup(\u002711\u0027, \u002711\u0027)"},{"line_number":1226,"context_line":"        result \u003d self.driver.restclient._is_lun_associated_to_lungroup(\u002711\u0027,"},{"line_number":1227,"context_line":"                                                                       \u002711\u0027)"},{"line_number":1228,"context_line":"        self.assertEqual(True, result)"},{"line_number":1229,"context_line":""},{"line_number":1230,"context_line":"    def test_lun_is_not_associated_to_lun_group(self):"},{"line_number":1231,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_7daa4672","line":1228,"updated":"2015-06-05 10:31:24.000000000","message":"Please use self.assertTrue(result)","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":1225,"context_line":"        self.driver.restclient._associate_lun_to_lungroup(\u002711\u0027, \u002711\u0027)"},{"line_number":1226,"context_line":"        result \u003d self.driver.restclient._is_lun_associated_to_lungroup(\u002711\u0027,"},{"line_number":1227,"context_line":"                                                                       \u002711\u0027)"},{"line_number":1228,"context_line":"        self.assertEqual(True, result)"},{"line_number":1229,"context_line":""},{"line_number":1230,"context_line":"    def test_lun_is_not_associated_to_lun_group(self):"},{"line_number":1231,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_d7c9b879","line":1228,"in_reply_to":"3afb71cf_7daa4672","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":1233,"context_line":"        self.driver.restclient._remove_lun_from_lungroup(\u002712\u0027, \u002712\u0027)"},{"line_number":1234,"context_line":"        result \u003d self.driver.restclient._is_lun_associated_to_lungroup(\u002712\u0027,"},{"line_number":1235,"context_line":"                                                                       \u002712\u0027)"},{"line_number":1236,"context_line":"        self.assertEqual(False, result)"},{"line_number":1237,"context_line":""},{"line_number":1238,"context_line":"    def test_get_lun_conf_params(self):"},{"line_number":1239,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_5db66add","line":1236,"updated":"2015-06-05 10:31:24.000000000","message":"Please use self.assertFalse(result)","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":1233,"context_line":"        self.driver.restclient._remove_lun_from_lungroup(\u002712\u0027, \u002712\u0027)"},{"line_number":1234,"context_line":"        result \u003d self.driver.restclient._is_lun_associated_to_lungroup(\u002712\u0027,"},{"line_number":1235,"context_line":"                                                                       \u002712\u0027)"},{"line_number":1236,"context_line":"        self.assertEqual(False, result)"},{"line_number":1237,"context_line":""},{"line_number":1238,"context_line":"    def test_get_lun_conf_params(self):"},{"line_number":1239,"context_line":"        self.driver.restclient.login()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_b7c4fc5e","line":1236,"in_reply_to":"3afb71cf_5db66add","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":1258,"context_line":"        self.assertEqual(\u00270\u0027, host_os)"},{"line_number":1259,"context_line":""},{"line_number":1260,"context_line":"    def create_fake_conf_file(self):"},{"line_number":1261,"context_line":"        \"\"\"Create a fake Config file"},{"line_number":1262,"context_line":"        Huawei storage customize a XML configuration file,"},{"line_number":1263,"context_line":"        the configuration file is used to set the Huawei storage custom"},{"line_number":1264,"context_line":"        parameters, therefore, in the UT test we need to simulate such a"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_bdc79e44","line":1261,"updated":"2015-06-05 10:31:24.000000000","message":"Multi line docstrings should start with a one line summary followed by an empty line.\n\nhttp://docs.openstack.org/developer/hacking/#docstrings","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":1258,"context_line":"        self.assertEqual(\u00270\u0027, host_os)"},{"line_number":1259,"context_line":""},{"line_number":1260,"context_line":"    def create_fake_conf_file(self):"},{"line_number":1261,"context_line":"        \"\"\"Create a fake Config file"},{"line_number":1262,"context_line":"        Huawei storage customize a XML configuration file,"},{"line_number":1263,"context_line":"        the configuration file is used to set the Huawei storage custom"},{"line_number":1264,"context_line":"        parameters, therefore, in the UT test we need to simulate such a"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_27836906","line":1261,"in_reply_to":"3afb71cf_bdc79e44","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7d50ae1c52cd6d1e288f4cc5d92018a762c8f53b","unresolved":false,"context_lines":[{"line_number":42,"context_line":"               \u0027display_name\u0027: \u0027vol1\u0027,"},{"line_number":43,"context_line":"               \u0027display_description\u0027: \u0027test volume\u0027,"},{"line_number":44,"context_line":"               \u0027volume_type_id\u0027: None,"},{"line_number":45,"context_line":"               \u0027provider_location\u0027: \u002711\u0027, }"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"test_snap \u003d {\u0027name\u0027: \u0027volume-21ec7341-9256-497b-97d9-ef48edcf0635\u0027,"},{"line_number":48,"context_line":"             \u0027size\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_289c0b0e","line":45,"updated":"2015-06-17 15:09:52.000000000","message":"Please put closing } on the next line. The reason for the dict guideline of having the trailing comma is so when new lines are added to the dict it is a one line change instead of two. With the } on the same line, adding another value in the future would result in modification of the existing line along with the addition of the newline.\n\nNot a big deal IMO, but if updating it would be good to fix.","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"ce93dcbf18986b6b510e2f682e697972afa57ccf","unresolved":false,"context_lines":[{"line_number":42,"context_line":"               \u0027display_name\u0027: \u0027vol1\u0027,"},{"line_number":43,"context_line":"               \u0027display_description\u0027: \u0027test volume\u0027,"},{"line_number":44,"context_line":"               \u0027volume_type_id\u0027: None,"},{"line_number":45,"context_line":"               \u0027provider_location\u0027: \u002711\u0027, }"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"test_snap \u003d {\u0027name\u0027: \u0027volume-21ec7341-9256-497b-97d9-ef48edcf0635\u0027,"},{"line_number":48,"context_line":"             \u0027size\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a41bdd9_127983fc","line":45,"in_reply_to":"fa32b979_289c0b0e","updated":"2015-07-18 06:12:58.000000000","message":"Thanks, I will fix this.","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"5f351ffe33e612ecf1f081b239e330fe368a7659","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        \"LOGICTYPE\": \"0\","},{"line_number":310,"context_line":"        \"LOCATION\": \"ENG0.B5.P0\","},{"line_number":311,"context_line":"        \"MTU\": \"1500\","},{"line_number":312,"context_line":"        \"PARENTID\": \"1.5\""},{"line_number":313,"context_line":"    }]"},{"line_number":314,"context_line":"}"},{"line_number":315,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_a61d6710","line":312,"updated":"2015-06-25 11:23:15.000000000","message":"Should have a trailing comma here.","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"ce93dcbf18986b6b510e2f682e697972afa57ccf","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        \"LOGICTYPE\": \"0\","},{"line_number":310,"context_line":"        \"LOCATION\": \"ENG0.B5.P0\","},{"line_number":311,"context_line":"        \"MTU\": \"1500\","},{"line_number":312,"context_line":"        \"PARENTID\": \"1.5\""},{"line_number":313,"context_line":"    }]"},{"line_number":314,"context_line":"}"},{"line_number":315,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a41bdd9_926d9334","line":312,"in_reply_to":"fa32b979_a61d6710","updated":"2015-07-18 06:12:58.000000000","message":"Done","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"5f351ffe33e612ecf1f081b239e330fe368a7659","unresolved":false,"context_lines":[{"line_number":359,"context_line":"        \"ID\": \"1\","},{"line_number":360,"context_line":"        \"PARENTID\": \"\","},{"line_number":361,"context_line":"        \"NETWORKNAME\": \"\","},{"line_number":362,"context_line":"        \"TYPE\": 21"},{"line_number":363,"context_line":"    },"},{"line_number":364,"context_line":"    {"},{"line_number":365,"context_line":"        \"PARENTTYPE\": 245,"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_e6ddaf41","line":362,"updated":"2015-06-25 11:23:15.000000000","message":"Same as above.","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"ce93dcbf18986b6b510e2f682e697972afa57ccf","unresolved":false,"context_lines":[{"line_number":359,"context_line":"        \"ID\": \"1\","},{"line_number":360,"context_line":"        \"PARENTID\": \"\","},{"line_number":361,"context_line":"        \"NETWORKNAME\": \"\","},{"line_number":362,"context_line":"        \"TYPE\": 21"},{"line_number":363,"context_line":"    },"},{"line_number":364,"context_line":"    {"},{"line_number":365,"context_line":"        \"PARENTTYPE\": 245,"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a41bdd9_b268d722","line":362,"in_reply_to":"fa32b979_e6ddaf41","updated":"2015-07-18 06:12:58.000000000","message":"Done","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"5f351ffe33e612ecf1f081b239e330fe368a7659","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        \"ID\": \"2\","},{"line_number":376,"context_line":"        \"PARENTID\": \"\","},{"line_number":377,"context_line":"        \"NETWORKNAME\": \"\","},{"line_number":378,"context_line":"        \"TYPE\": 21"},{"line_number":379,"context_line":"    }]"},{"line_number":380,"context_line":"}"},{"line_number":381,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_86e943e8","line":378,"updated":"2015-06-25 11:23:15.000000000","message":"Here.","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"ce93dcbf18986b6b510e2f682e697972afa57ccf","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        \"ID\": \"2\","},{"line_number":376,"context_line":"        \"PARENTID\": \"\","},{"line_number":377,"context_line":"        \"NETWORKNAME\": \"\","},{"line_number":378,"context_line":"        \"TYPE\": 21"},{"line_number":379,"context_line":"    }]"},{"line_number":380,"context_line":"}"},{"line_number":381,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a41bdd9_52770b02","line":378,"in_reply_to":"fa32b979_86e943e8","updated":"2015-07-18 06:12:58.000000000","message":"Done","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"5f351ffe33e612ecf1f081b239e330fe368a7659","unresolved":false,"context_lines":[{"line_number":426,"context_line":"        \"COPYPROGRESS\": \"0\","},{"line_number":427,"context_line":"        \"COPYSPEED\": \"2\","},{"line_number":428,"context_line":"        \"TYPE\": 219,"},{"line_number":429,"context_line":"        \"COPYSTARTTIME\": \"-1\""},{"line_number":430,"context_line":"    }"},{"line_number":431,"context_line":"}"},{"line_number":432,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_46efbbe8","line":429,"updated":"2015-06-25 11:23:15.000000000","message":"Should have a trailing comma here. And many place in this file.","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"ce93dcbf18986b6b510e2f682e697972afa57ccf","unresolved":false,"context_lines":[{"line_number":426,"context_line":"        \"COPYPROGRESS\": \"0\","},{"line_number":427,"context_line":"        \"COPYSPEED\": \"2\","},{"line_number":428,"context_line":"        \"TYPE\": 219,"},{"line_number":429,"context_line":"        \"COPYSTARTTIME\": \"-1\""},{"line_number":430,"context_line":"    }"},{"line_number":431,"context_line":"}"},{"line_number":432,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a41bdd9_1260a334","line":429,"in_reply_to":"fa32b979_46efbbe8","updated":"2015-07-18 06:12:58.000000000","message":"Done","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"ecb8f1a039033d9b44c40e5b7848d8f6d0b349a1","unresolved":false,"context_lines":[{"line_number":312,"context_line":"        \"LOGICTYPE\": \"0\","},{"line_number":313,"context_line":"        \"LOCATION\": \"ENG0.B5.P0\","},{"line_number":314,"context_line":"        \"MTU\": \"1500\","},{"line_number":315,"context_line":"        \"PARENTID\": \"1.5\""},{"line_number":316,"context_line":"    }]"},{"line_number":317,"context_line":"}"},{"line_number":318,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":20,"id":"ba3cc151_b8fb4d78","line":315,"updated":"2015-07-03 03:57:07.000000000","message":"Please, add the trailing comma.","commit_id":"78dadad80435dce312a19f71ff366e4113efbe36"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"ecb8f1a039033d9b44c40e5b7848d8f6d0b349a1","unresolved":false,"context_lines":[{"line_number":362,"context_line":"        \"ID\": \"1\","},{"line_number":363,"context_line":"        \"PARENTID\": \"\","},{"line_number":364,"context_line":"        \"NETWORKNAME\": \"\","},{"line_number":365,"context_line":"        \"TYPE\": 21"},{"line_number":366,"context_line":"    },"},{"line_number":367,"context_line":"    {"},{"line_number":368,"context_line":"        \"PARENTTYPE\": 245,"}],"source_content_type":"text/x-python","patch_set":20,"id":"ba3cc151_5831e158","line":365,"updated":"2015-07-03 03:57:07.000000000","message":"here","commit_id":"78dadad80435dce312a19f71ff366e4113efbe36"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"ecb8f1a039033d9b44c40e5b7848d8f6d0b349a1","unresolved":false,"context_lines":[{"line_number":378,"context_line":"        \"ID\": \"2\","},{"line_number":379,"context_line":"        \"PARENTID\": \"\","},{"line_number":380,"context_line":"        \"NETWORKNAME\": \"\","},{"line_number":381,"context_line":"        \"TYPE\": 21"},{"line_number":382,"context_line":"    }]"},{"line_number":383,"context_line":"}"},{"line_number":384,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":20,"id":"ba3cc151_b8426dac","line":381,"updated":"2015-07-03 03:57:07.000000000","message":"here","commit_id":"78dadad80435dce312a19f71ff366e4113efbe36"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"ecb8f1a039033d9b44c40e5b7848d8f6d0b349a1","unresolved":false,"context_lines":[{"line_number":575,"context_line":"        \"PARENTID\":\"1\","},{"line_number":576,"context_line":"        \"CTRL_ID\":\"0\","},{"line_number":577,"context_line":"        \"TYPE\":255,"},{"line_number":578,"context_line":"        \"TARGET_TYPE\":\"212\""},{"line_number":579,"context_line":"    }]"},{"line_number":580,"context_line":"}"},{"line_number":581,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":20,"id":"ba3cc151_b8290de8","line":578,"updated":"2015-07-03 03:57:07.000000000","message":"here","commit_id":"78dadad80435dce312a19f71ff366e4113efbe36"}],"cinder/tests/unit/test_huawei_drivers_compatibility.py":[{"author":{"_account_id":15424,"name":"javeme","email":"javaloveme@gmail.com","username":"javeme"},"change_message_id":"cc9e7accbaac8d69b5e2b4b8323401db8d025ac2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright 2012 OpenStack Foundation\r"},{"line_number":2,"context_line":"#\r"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may\r"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain\r"}],"source_content_type":"text/x-python","patch_set":20,"id":"ba3cc151_d5ba080a","line":1,"updated":"2015-07-01 06:56:12.000000000","message":"Please remove the  ‘\\r’","commit_id":"78dadad80435dce312a19f71ff366e4113efbe36"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"8bd4440213df35153a6b1093ca9b8c656434f2be","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright 2012 OpenStack Foundation\r"},{"line_number":2,"context_line":"#\r"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may\r"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain\r"}],"source_content_type":"text/x-python","patch_set":20,"id":"ba3cc151_b8fcadb8","line":1,"in_reply_to":"ba3cc151_d5ba080a","updated":"2015-07-03 03:47:24.000000000","message":"Done","commit_id":"78dadad80435dce312a19f71ff366e4113efbe36"}],"cinder/volume/drivers/huawei/constants.py":[{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"5f351ffe33e612ecf1f081b239e330fe368a7659","unresolved":false,"context_lines":[{"line_number":31,"context_line":"           \u0027AIX\u0027: \u00274\u0027,"},{"line_number":32,"context_line":"           \u0027XenServer\u0027: \u00275\u0027,"},{"line_number":33,"context_line":"           \u0027Mac OS X\u0027: \u00276\u0027,"},{"line_number":34,"context_line":"           \u0027VMware ESX\u0027: \u00277\u0027}"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"huawei_valid_keys \u003d [\u0027maxIOPS\u0027, \u0027minIOPS\u0027, \u0027minBandWidth\u0027,"},{"line_number":37,"context_line":"                     \u0027maxBandWidth\u0027, \u0027latency\u0027, \u0027IOType\u0027]"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_66bd1fb0","line":34,"updated":"2015-06-25 11:23:15.000000000","message":"Why not use capital letter here?","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"ce93dcbf18986b6b510e2f682e697972afa57ccf","unresolved":false,"context_lines":[{"line_number":31,"context_line":"           \u0027AIX\u0027: \u00274\u0027,"},{"line_number":32,"context_line":"           \u0027XenServer\u0027: \u00275\u0027,"},{"line_number":33,"context_line":"           \u0027Mac OS X\u0027: \u00276\u0027,"},{"line_number":34,"context_line":"           \u0027VMware ESX\u0027: \u00277\u0027}"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"huawei_valid_keys \u003d [\u0027maxIOPS\u0027, \u0027minIOPS\u0027, \u0027minBandWidth\u0027,"},{"line_number":37,"context_line":"                     \u0027maxBandWidth\u0027, \u0027latency\u0027, \u0027IOType\u0027]"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a41bdd9_d23a3be7","line":34,"in_reply_to":"fa32b979_66bd1fb0","updated":"2015-07-18 06:12:58.000000000","message":"Done","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"5f351ffe33e612ecf1f081b239e330fe368a7659","unresolved":false,"context_lines":[{"line_number":34,"context_line":"           \u0027VMware ESX\u0027: \u00277\u0027}"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"huawei_valid_keys \u003d [\u0027maxIOPS\u0027, \u0027minIOPS\u0027, \u0027minBandWidth\u0027,"},{"line_number":37,"context_line":"                     \u0027maxBandWidth\u0027, \u0027latency\u0027, \u0027IOType\u0027]"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_26e2b7d5","line":37,"updated":"2015-06-25 11:23:15.000000000","message":"same too.","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"ce93dcbf18986b6b510e2f682e697972afa57ccf","unresolved":false,"context_lines":[{"line_number":34,"context_line":"           \u0027VMware ESX\u0027: \u00277\u0027}"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"huawei_valid_keys \u003d [\u0027maxIOPS\u0027, \u0027minIOPS\u0027, \u0027minBandWidth\u0027,"},{"line_number":37,"context_line":"                     \u0027maxBandWidth\u0027, \u0027latency\u0027, \u0027IOType\u0027]"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a41bdd9_f23dffdd","line":37,"in_reply_to":"fa32b979_26e2b7d5","updated":"2015-07-18 06:12:58.000000000","message":"Done","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"}],"cinder/volume/drivers/huawei/huawei_driver.py":[{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"39529af03ae0d78c57875a760b9c43e9369cbc83","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        LOG.info(_LI("},{"line_number":77,"context_line":"            \u0027Create Volume: %(volume)s Size: %(size)s.\u0027),"},{"line_number":78,"context_line":"            {\u0027volume\u0027: volume_name,"},{"line_number":79,"context_line":"             \u0027size\u0027: volume_size})"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        params \u003d huawei_utils._get_lun_conf_params(self.configuration)"},{"line_number":82,"context_line":"        params[\u0027pool_id\u0027] \u003d poolinfo[\u0027ID\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_9df2a299","line":79,"updated":"2015-06-05 10:31:24.000000000","message":"the last item in the dictionary should have a trailing comma.\n\nhttp://docs.openstack.org/developer/hacking/#dictionaries-lists\n\nSame for below dicts as well.","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"cf54b4891ae0ecafba6cee7db85ff23b5ba020f5","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        LOG.info(_LI("},{"line_number":77,"context_line":"            \u0027Create Volume: %(volume)s Size: %(size)s.\u0027),"},{"line_number":78,"context_line":"            {\u0027volume\u0027: volume_name,"},{"line_number":79,"context_line":"             \u0027size\u0027: volume_size})"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        params \u003d huawei_utils._get_lun_conf_params(self.configuration)"},{"line_number":82,"context_line":"        params[\u0027pool_id\u0027] \u003d poolinfo[\u0027ID\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_87721d48","line":79,"in_reply_to":"3afb71cf_9df2a299","updated":"2015-06-09 00:37:17.000000000","message":"Done","commit_id":"328a9d4ad5801fa18e6a224a07acd03385f0f407"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"e109a88eef6d7999f4a147126c90884493e9829d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2015 - 2016 Huawei Technologies Co., Ltd."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa32b979_ff10adaa","line":1,"updated":"2015-06-14 13:03:57.000000000","message":"A range of dates is unnecessary in copyright statement. It should be the first published year.\n\nRefer to https://wiki.openstack.org/wiki/Documentation/Copyright.","commit_id":"6ca5c2976a60bfe499c4dc6e21a3dfa046d64791"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"0c36f9ce4403dff6ee96174009d2ee71c75376c4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2015 - 2016 Huawei Technologies Co., Ltd."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa32b979_706847f6","line":1,"in_reply_to":"fa32b979_30eddf8b","updated":"2015-06-15 01:36:12.000000000","message":"sorry for commenting from CI account.\nBelow link is more precise for what Edwin Wang is pointing out:\n https://wiki.openstack.org/wiki/Documentation/Copyright#Overall_Copyright_Statement_Guidance","commit_id":"6ca5c2976a60bfe499c4dc6e21a3dfa046d64791"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"fb26a36428f9eea745d101f90ff27d2ed2c8262d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2015 - 2016 Huawei Technologies Co., Ltd."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa32b979_c11aa017","line":1,"in_reply_to":"fa32b979_6b04d814","updated":"2015-06-15 06:26:59.000000000","message":"thanks, I will fix this in next patch.","commit_id":"6ca5c2976a60bfe499c4dc6e21a3dfa046d64791"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"cbdb57a3170858e935767a03b194795f67ba296a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2015 - 2016 Huawei Technologies Co., Ltd."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa32b979_6b04d814","line":1,"in_reply_to":"fa32b979_706847f6","updated":"2015-06-15 01:42:57.000000000","message":"Thanks, Nikesh.","commit_id":"6ca5c2976a60bfe499c4dc6e21a3dfa046d64791"},{"author":{"_account_id":12285,"name":"nikeshmahalka","email":"nikeshmahalka@vedams.com","username":"Nikesh"},"change_message_id":"3ff5e6458e6922cec2cba4d025d8a2ae60e4b08c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2015 - 2016 Huawei Technologies Co., Ltd."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa32b979_30eddf8b","line":1,"in_reply_to":"fa32b979_ff10adaa","updated":"2015-06-15 01:27:59.000000000","message":"Refer to https://wiki.openstack.org/wiki/Documentation/Copyright#Overall_Copyright_Statement_Guidance","commit_id":"6ca5c2976a60bfe499c4dc6e21a3dfa046d64791"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"e109a88eef6d7999f4a147126c90884493e9829d","unresolved":false,"context_lines":[{"line_number":373,"context_line":"                 properties)"},{"line_number":374,"context_line":"        return {\u0027driver_volume_type\u0027: \u0027iscsi\u0027, \u0027data\u0027: properties}"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"    @utils.synchronized(\u0027huawei\u0027, external\u003dTrue)"},{"line_number":377,"context_line":"    def terminate_connection_iscsi(self, volume, connector):"},{"line_number":378,"context_line":"        \"\"\"Delete map between a volume and a host.\"\"\""},{"line_number":379,"context_line":"        initiator_name \u003d connector[\u0027initiator\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa32b979_1feeb18b","line":376,"updated":"2015-06-14 13:03:57.000000000","message":"Do we really need local lock files in so many functions?","commit_id":"6ca5c2976a60bfe499c4dc6e21a3dfa046d64791"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"292ec4c4878d39e27fe2d1aaaaee06c08bc6223a","unresolved":false,"context_lines":[{"line_number":41,"context_line":"CONF.register_opts(huawei_opt)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"class HuaweiBaseDriver(driver.VolumeDriver):"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":47,"context_line":"        super(HuaweiBaseDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa32b979_1ab8cae4","line":44,"updated":"2015-06-15 23:06:23.000000000","message":"Not really a blocking issue, but while you are doing this refactor you may want to switch to inheriting from the new abc base classes (BaseVD, etc).","commit_id":"e359708a18e2baa7d4f84473e7472063fb3dd00d"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"9b8499d5d656b8eea1f4e44c9314dd2703ec9aeb","unresolved":false,"context_lines":[{"line_number":32,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"huawei_opt \u003d ["},{"line_number":35,"context_line":"    cfg.StrOpt(\u0027cinder_huawei_conf_file\u0027,"},{"line_number":36,"context_line":"               default\u003d\u0027/etc/cinder/cinder_huawei_conf.xml\u0027,"},{"line_number":37,"context_line":"               help\u003d\u0027The configuration file for the Cinder Huawei \u0027"},{"line_number":38,"context_line":"                    \u0027driver\u0027)]"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa32b979_28dd046f","line":35,"updated":"2015-06-17 05:17:57.000000000","message":"Can Cinder drivers have separate config files?","commit_id":"5563aa08092a3f8fc784c0328f283475478a643a"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"d4845b49ece20447bddfdb398f6b40890d097744","unresolved":false,"context_lines":[{"line_number":32,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"huawei_opt \u003d ["},{"line_number":35,"context_line":"    cfg.StrOpt(\u0027cinder_huawei_conf_file\u0027,"},{"line_number":36,"context_line":"               default\u003d\u0027/etc/cinder/cinder_huawei_conf.xml\u0027,"},{"line_number":37,"context_line":"               help\u003d\u0027The configuration file for the Cinder Huawei \u0027"},{"line_number":38,"context_line":"                    \u0027driver\u0027)]"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa32b979_c3f0f993","line":35,"in_reply_to":"fa32b979_28dd046f","updated":"2015-06-17 06:20:18.000000000","message":"cinder_huawei_conf_file.xml is only for huawei driver.","commit_id":"5563aa08092a3f8fc784c0328f283475478a643a"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"9b8499d5d656b8eea1f4e44c9314dd2703ec9aeb","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            if self.restclient._check_lun_exist(lun_id) is True:"},{"line_number":111,"context_line":"                self.restclient._delete_lun(lun_id)"},{"line_number":112,"context_line":"        else:"},{"line_number":113,"context_line":"            LOG.warning(_LW(\"Can\u0027t find lun or lungroup on the array.\"))"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        return True"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"fa32b979_685b0cf7","line":113,"updated":"2015-06-17 05:17:57.000000000","message":"probably helpful to mention lun_id","commit_id":"5563aa08092a3f8fc784c0328f283475478a643a"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"d4845b49ece20447bddfdb398f6b40890d097744","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            if self.restclient._check_lun_exist(lun_id) is True:"},{"line_number":111,"context_line":"                self.restclient._delete_lun(lun_id)"},{"line_number":112,"context_line":"        else:"},{"line_number":113,"context_line":"            LOG.warning(_LW(\"Can\u0027t find lun or lungroup on the array.\"))"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        return True"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"fa32b979_a367f54b","line":113,"in_reply_to":"fa32b979_685b0cf7","updated":"2015-06-17 06:20:18.000000000","message":"Done","commit_id":"5563aa08092a3f8fc784c0328f283475478a643a"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"9b8499d5d656b8eea1f4e44c9314dd2703ec9aeb","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        else:"},{"line_number":113,"context_line":"            LOG.warning(_LW(\"Can\u0027t find lun or lungroup on the array.\"))"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        return True"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":118,"context_line":"        \"\"\"Create a volume from a snapshot."}],"source_content_type":"text/x-python","patch_set":13,"id":"fa32b979_c86a5881","line":115,"updated":"2015-06-17 05:17:57.000000000","message":"Always return True?","commit_id":"5563aa08092a3f8fc784c0328f283475478a643a"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"d4845b49ece20447bddfdb398f6b40890d097744","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        else:"},{"line_number":113,"context_line":"            LOG.warning(_LW(\"Can\u0027t find lun or lungroup on the array.\"))"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        return True"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":118,"context_line":"        \"\"\"Create a volume from a snapshot."}],"source_content_type":"text/x-python","patch_set":13,"id":"fa32b979_23544551","line":115,"in_reply_to":"fa32b979_c86a5881","updated":"2015-06-17 06:20:18.000000000","message":"thanks, I will fix this soon.","commit_id":"5563aa08092a3f8fc784c0328f283475478a643a"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"9b8499d5d656b8eea1f4e44c9314dd2703ec9aeb","unresolved":false,"context_lines":[{"line_number":201,"context_line":"    def extend_volume(self, volume, new_size):"},{"line_number":202,"context_line":"        \"\"\"Extends a Huawei volume.\"\"\""},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        LOG.info(_LI(\u0027Entering extend_volume.\u0027))"},{"line_number":205,"context_line":"        volume_size \u003d huawei_utils._get_volume_size(volume)"},{"line_number":206,"context_line":"        new_volume_size \u003d int(new_size) * units.Gi / 512"},{"line_number":207,"context_line":"        volume_name \u003d huawei_utils._encode_name(volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa32b979_c8181821","line":204,"updated":"2015-06-17 05:17:57.000000000","message":"Inconsistent. Not all methods log this.","commit_id":"5563aa08092a3f8fc784c0328f283475478a643a"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"d4845b49ece20447bddfdb398f6b40890d097744","unresolved":false,"context_lines":[{"line_number":201,"context_line":"    def extend_volume(self, volume, new_size):"},{"line_number":202,"context_line":"        \"\"\"Extends a Huawei volume.\"\"\""},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        LOG.info(_LI(\u0027Entering extend_volume.\u0027))"},{"line_number":205,"context_line":"        volume_size \u003d huawei_utils._get_volume_size(volume)"},{"line_number":206,"context_line":"        new_volume_size \u003d int(new_size) * units.Gi / 512"},{"line_number":207,"context_line":"        volume_name \u003d huawei_utils._encode_name(volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa32b979_43e629b1","line":204,"in_reply_to":"fa32b979_c8181821","updated":"2015-06-17 06:20:18.000000000","message":"thanks, I will remove this log message.","commit_id":"5563aa08092a3f8fc784c0328f283475478a643a"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"9b8499d5d656b8eea1f4e44c9314dd2703ec9aeb","unresolved":false,"context_lines":[{"line_number":260,"context_line":"        else:"},{"line_number":261,"context_line":"            LOG.warning(_LW(\"Can\u0027t find snapshot on the array.\"))"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"        return True"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    @utils.synchronized(\u0027huawei\u0027, external\u003dTrue)"},{"line_number":266,"context_line":"    def initialize_connection_fc(self, volume, connector):"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa32b979_68e0ecfa","line":263,"updated":"2015-06-17 05:17:57.000000000","message":"Similarly when to return false?","commit_id":"5563aa08092a3f8fc784c0328f283475478a643a"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"d4845b49ece20447bddfdb398f6b40890d097744","unresolved":false,"context_lines":[{"line_number":260,"context_line":"        else:"},{"line_number":261,"context_line":"            LOG.warning(_LW(\"Can\u0027t find snapshot on the array.\"))"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"        return True"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    @utils.synchronized(\u0027huawei\u0027, external\u003dTrue)"},{"line_number":266,"context_line":"    def initialize_connection_fc(self, volume, connector):"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa32b979_438149c2","line":263,"in_reply_to":"fa32b979_68e0ecfa","updated":"2015-06-17 06:20:18.000000000","message":"Done","commit_id":"5563aa08092a3f8fc784c0328f283475478a643a"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"9b8499d5d656b8eea1f4e44c9314dd2703ec9aeb","unresolved":false,"context_lines":[{"line_number":547,"context_line":"        1.1.0 - Provide Huawei OceanStor 18000 storage volume driver."},{"line_number":548,"context_line":"    \"\"\""},{"line_number":549,"context_line":""},{"line_number":550,"context_line":"    VERSION \u003d \"1.1.0\""},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":553,"context_line":"        super(Huawei18000ISCSIDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa32b979_28ce6482","line":550,"updated":"2015-06-17 05:17:57.000000000","message":"Do you plan to up the version?","commit_id":"5563aa08092a3f8fc784c0328f283475478a643a"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"d4845b49ece20447bddfdb398f6b40890d097744","unresolved":false,"context_lines":[{"line_number":547,"context_line":"        1.1.0 - Provide Huawei OceanStor 18000 storage volume driver."},{"line_number":548,"context_line":"    \"\"\""},{"line_number":549,"context_line":""},{"line_number":550,"context_line":"    VERSION \u003d \"1.1.0\""},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":553,"context_line":"        super(Huawei18000ISCSIDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa32b979_a38055c1","line":550,"in_reply_to":"fa32b979_28ce6482","updated":"2015-06-17 06:20:18.000000000","message":"No,I don\u0027t plan to up the version.:)","commit_id":"5563aa08092a3f8fc784c0328f283475478a643a"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"9b8499d5d656b8eea1f4e44c9314dd2703ec9aeb","unresolved":false,"context_lines":[{"line_number":580,"context_line":"        1.1.0 - Provide Huawei OceanStor 18000 storage volume driver."},{"line_number":581,"context_line":"    \"\"\""},{"line_number":582,"context_line":""},{"line_number":583,"context_line":"    VERSION \u003d \"1.1.0\""},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":586,"context_line":"        super(Huawei18000FCDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa32b979_e8c39c55","line":583,"updated":"2015-06-17 05:17:57.000000000","message":"Do you plan to up the version?","commit_id":"5563aa08092a3f8fc784c0328f283475478a643a"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7d50ae1c52cd6d1e288f4cc5d92018a762c8f53b","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    cfg.StrOpt(\u0027cinder_huawei_conf_file\u0027,"},{"line_number":36,"context_line":"               default\u003d\u0027/etc/cinder/cinder_huawei_conf.xml\u0027,"},{"line_number":37,"context_line":"               help\u003d\u0027The configuration file for the Cinder Huawei \u0027"},{"line_number":38,"context_line":"                    \u0027driver\u0027)]"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"CONF \u003d cfg.CONF"},{"line_number":41,"context_line":"CONF.register_opts(huawei_opt)"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_687c53b5","line":38,"updated":"2015-06-17 15:09:52.000000000","message":"Please end with a period.","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"ce93dcbf18986b6b510e2f682e697972afa57ccf","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    cfg.StrOpt(\u0027cinder_huawei_conf_file\u0027,"},{"line_number":36,"context_line":"               default\u003d\u0027/etc/cinder/cinder_huawei_conf.xml\u0027,"},{"line_number":37,"context_line":"               help\u003d\u0027The configuration file for the Cinder Huawei \u0027"},{"line_number":38,"context_line":"                    \u0027driver\u0027)]"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"CONF \u003d cfg.CONF"},{"line_number":41,"context_line":"CONF.register_opts(huawei_opt)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a41bdd9_722a4f92","line":38,"in_reply_to":"fa32b979_687c53b5","updated":"2015-07-18 06:12:58.000000000","message":"Done","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7d50ae1c52cd6d1e288f4cc5d92018a762c8f53b","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        super(HuaweiBaseDriver, self).__init__(*args, **kwargs)"},{"line_number":48,"context_line":"        self.configuration \u003d kwargs.get(\u0027configuration\u0027, None)"},{"line_number":49,"context_line":"        if not self.configuration:"},{"line_number":50,"context_line":"            msg \u003d (_(\u0027_instantiate_driver: configuration not found.\u0027))"},{"line_number":51,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        self.configuration.append_config_values(huawei_opt)"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_8860b702","line":50,"updated":"2015-06-17 15:09:52.000000000","message":"No need for the outer (). Then again, no harm with them either.","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"ce93dcbf18986b6b510e2f682e697972afa57ccf","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        super(HuaweiBaseDriver, self).__init__(*args, **kwargs)"},{"line_number":48,"context_line":"        self.configuration \u003d kwargs.get(\u0027configuration\u0027, None)"},{"line_number":49,"context_line":"        if not self.configuration:"},{"line_number":50,"context_line":"            msg \u003d (_(\u0027_instantiate_driver: configuration not found.\u0027))"},{"line_number":51,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        self.configuration.append_config_values(huawei_opt)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a41bdd9_d211db5e","line":50,"in_reply_to":"fa32b979_8860b702","updated":"2015-07-18 06:12:58.000000000","message":"Done","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7d50ae1c52cd6d1e288f4cc5d92018a762c8f53b","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        LOG.info(_LI(\u0027Delete Volume: %(name)s  array lun id: %(lun_id)s.\u0027),"},{"line_number":108,"context_line":"                 {\u0027name\u0027: name, \u0027lun_id\u0027: lun_id},)"},{"line_number":109,"context_line":"        if lun_id:"},{"line_number":110,"context_line":"            if self.restclient._check_lun_exist(lun_id) is True:"},{"line_number":111,"context_line":"                self.restclient._delete_lun(lun_id)"},{"line_number":112,"context_line":"        else:"},{"line_number":113,"context_line":"            LOG.warning(_LW(\"Can\u0027t find %(lun_id)s on the array.\"),"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_c306a01b","line":110,"updated":"2015-06-17 15:09:52.000000000","message":"Could remove \"is True\" from here.","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"ce93dcbf18986b6b510e2f682e697972afa57ccf","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        LOG.info(_LI(\u0027Delete Volume: %(name)s  array lun id: %(lun_id)s.\u0027),"},{"line_number":108,"context_line":"                 {\u0027name\u0027: name, \u0027lun_id\u0027: lun_id},)"},{"line_number":109,"context_line":"        if lun_id:"},{"line_number":110,"context_line":"            if self.restclient._check_lun_exist(lun_id) is True:"},{"line_number":111,"context_line":"                self.restclient._delete_lun(lun_id)"},{"line_number":112,"context_line":"        else:"},{"line_number":113,"context_line":"            LOG.warning(_LW(\"Can\u0027t find %(lun_id)s on the array.\"),"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a41bdd9_7201ef05","line":110,"in_reply_to":"fa32b979_c306a01b","updated":"2015-07-18 06:12:58.000000000","message":"Done","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7d50ae1c52cd6d1e288f4cc5d92018a762c8f53b","unresolved":false,"context_lines":[{"line_number":333,"context_line":"            {\u0027initiator_name\u0027: initiator_name,"},{"line_number":334,"context_line":"             \u0027volume\u0027: volume_name},)"},{"line_number":335,"context_line":""},{"line_number":336,"context_line":"        (iscsi_iqn, target_ip, portgroup_id) \u003d \\"},{"line_number":337,"context_line":"            self.restclient._get_iscsi_params(self.configuration, connector)"},{"line_number":338,"context_line":"        LOG.info(_LI(\u0027initialize_connection_iscsi,iscsi_iqn: %(iscsi_iqn)s, \u0027"},{"line_number":339,"context_line":"                     \u0027target_ip: %(target_ip)s, \u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_839898c1","line":336,"updated":"2015-06-17 15:09:52.000000000","message":"If updating, it would be good to get rid of the \\ and wrap the assignment in () to span multiple lines.","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"ce93dcbf18986b6b510e2f682e697972afa57ccf","unresolved":false,"context_lines":[{"line_number":333,"context_line":"            {\u0027initiator_name\u0027: initiator_name,"},{"line_number":334,"context_line":"             \u0027volume\u0027: volume_name},)"},{"line_number":335,"context_line":""},{"line_number":336,"context_line":"        (iscsi_iqn, target_ip, portgroup_id) \u003d \\"},{"line_number":337,"context_line":"            self.restclient._get_iscsi_params(self.configuration, connector)"},{"line_number":338,"context_line":"        LOG.info(_LI(\u0027initialize_connection_iscsi,iscsi_iqn: %(iscsi_iqn)s, \u0027"},{"line_number":339,"context_line":"                     \u0027target_ip: %(target_ip)s, \u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a41bdd9_95133d5c","line":336,"in_reply_to":"fa32b979_839898c1","updated":"2015-07-18 06:12:58.000000000","message":"Done","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"18b17320fc9e711b39a2f479f82e64df22df3c27","unresolved":false,"context_lines":[{"line_number":549,"context_line":"        1.1.0 - Provide Huawei OceanStor 18000 storage volume driver."},{"line_number":550,"context_line":"    \"\"\""},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"    VERSION \u003d \"1.1.0\""},{"line_number":553,"context_line":""},{"line_number":554,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":555,"context_line":"        super(Huawei18000ISCSIDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_b8370a4c","line":552,"updated":"2015-06-17 15:59:58.000000000","message":"You should bump the version for this refactor change.","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"ce93dcbf18986b6b510e2f682e697972afa57ccf","unresolved":false,"context_lines":[{"line_number":549,"context_line":"        1.1.0 - Provide Huawei OceanStor 18000 storage volume driver."},{"line_number":550,"context_line":"    \"\"\""},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"    VERSION \u003d \"1.1.0\""},{"line_number":553,"context_line":""},{"line_number":554,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":555,"context_line":"        super(Huawei18000ISCSIDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a41bdd9_d51f8559","line":552,"in_reply_to":"fa32b979_b8370a4c","updated":"2015-07-18 06:12:58.000000000","message":"Done","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"18b17320fc9e711b39a2f479f82e64df22df3c27","unresolved":false,"context_lines":[{"line_number":582,"context_line":"        1.1.0 - Provide Huawei OceanStor 18000 storage volume driver."},{"line_number":583,"context_line":"    \"\"\""},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"    VERSION \u003d \"1.1.0\""},{"line_number":586,"context_line":""},{"line_number":587,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":588,"context_line":"        super(Huawei18000FCDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_783e6229","line":585,"updated":"2015-06-17 15:59:58.000000000","message":"Here too","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"ce93dcbf18986b6b510e2f682e697972afa57ccf","unresolved":false,"context_lines":[{"line_number":582,"context_line":"        1.1.0 - Provide Huawei OceanStor 18000 storage volume driver."},{"line_number":583,"context_line":"    \"\"\""},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"    VERSION \u003d \"1.1.0\""},{"line_number":586,"context_line":""},{"line_number":587,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":588,"context_line":"        super(Huawei18000FCDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a41bdd9_f522c9a2","line":585,"in_reply_to":"fa32b979_783e6229","updated":"2015-07-18 06:12:58.000000000","message":"Done","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":15424,"name":"javeme","email":"javaloveme@gmail.com","username":"javeme"},"change_message_id":"cc9e7accbaac8d69b5e2b4b8323401db8d025ac2","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        return True"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    @utils.synchronized(\u0027huawei\u0027, external\u003dTrue)"},{"line_number":269,"context_line":"    def initialize_connection_fc(self, volume, connector):"},{"line_number":270,"context_line":"        wwns \u003d connector[\u0027wwpns\u0027]"},{"line_number":271,"context_line":"        volume_name \u003d huawei_utils.encode_name(volume[\u0027id\u0027])"},{"line_number":272,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"ba3cc151_75645c21","line":269,"updated":"2015-07-01 06:56:12.000000000","message":"This method seems to be protected, to get a better sense, we can add a prefix ‘_’ to it.","commit_id":"78dadad80435dce312a19f71ff366e4113efbe36"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"8bd4440213df35153a6b1093ca9b8c656434f2be","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        return True"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    @utils.synchronized(\u0027huawei\u0027, external\u003dTrue)"},{"line_number":269,"context_line":"    def initialize_connection_fc(self, volume, connector):"},{"line_number":270,"context_line":"        wwns \u003d connector[\u0027wwpns\u0027]"},{"line_number":271,"context_line":"        volume_name \u003d huawei_utils.encode_name(volume[\u0027id\u0027])"},{"line_number":272,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"ba3cc151_cd3f75b2","line":269,"in_reply_to":"ba3cc151_75645c21","updated":"2015-07-03 03:47:24.000000000","message":"Thanks for your suggestion javeme, but we really do not distinguish whether it is a protected method or not. I will discuss with our other team members about this, thanks！","commit_id":"78dadad80435dce312a19f71ff366e4113efbe36"},{"author":{"_account_id":15424,"name":"javeme","email":"javaloveme@gmail.com","username":"javeme"},"change_message_id":"cc9e7accbaac8d69b5e2b4b8323401db8d025ac2","unresolved":false,"context_lines":[{"line_number":325,"context_line":"        return info"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"    @utils.synchronized(\u0027huawei\u0027, external\u003dTrue)"},{"line_number":328,"context_line":"    def initialize_connection_iscsi(self, volume, connector):"},{"line_number":329,"context_line":"        \"\"\"Map a volume to a host and return target iSCSI information.\"\"\""},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"        LOG.info(_LI(\u0027Enter initialize_connection_iscsi.\u0027))"}],"source_content_type":"text/x-python","patch_set":20,"id":"ba3cc151_754bfc87","line":328,"updated":"2015-07-01 06:56:12.000000000","message":"ditto","commit_id":"78dadad80435dce312a19f71ff366e4113efbe36"},{"author":{"_account_id":15424,"name":"javeme","email":"javaloveme@gmail.com","username":"javeme"},"change_message_id":"cc9e7accbaac8d69b5e2b4b8323401db8d025ac2","unresolved":false,"context_lines":[{"line_number":384,"context_line":"        return {\u0027driver_volume_type\u0027: \u0027iscsi\u0027, \u0027data\u0027: properties}"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"    @utils.synchronized(\u0027huawei\u0027, external\u003dTrue)"},{"line_number":387,"context_line":"    def terminate_connection_iscsi(self, volume, connector):"},{"line_number":388,"context_line":"        \"\"\"Delete map between a volume and a host.\"\"\""},{"line_number":389,"context_line":"        initiator_name \u003d connector[\u0027initiator\u0027]"},{"line_number":390,"context_line":"        volume_name \u003d huawei_utils.encode_name(volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":20,"id":"ba3cc151_b530a402","line":387,"updated":"2015-07-01 06:56:12.000000000","message":"ditto","commit_id":"78dadad80435dce312a19f71ff366e4113efbe36"},{"author":{"_account_id":15424,"name":"javeme","email":"javaloveme@gmail.com","username":"javeme"},"change_message_id":"cc9e7accbaac8d69b5e2b4b8323401db8d025ac2","unresolved":false,"context_lines":[{"line_number":455,"context_line":"            self.restclient.remove_host(hostid)"},{"line_number":456,"context_line":"            self.restclient.delete_mapping_view(view_id)"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"    def terminate_connection_fc(self, volume, connector):"},{"line_number":459,"context_line":"        \"\"\"Delete map between a volume and a host.\"\"\""},{"line_number":460,"context_line":"        wwns \u003d connector[\u0027wwpns\u0027]"},{"line_number":461,"context_line":"        volume_name \u003d huawei_utils.encode_name(volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":20,"id":"ba3cc151_7519bc87","line":458,"updated":"2015-07-01 06:56:12.000000000","message":"ditto","commit_id":"78dadad80435dce312a19f71ff366e4113efbe36"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"adef92be66051d1d4c6251192ed852985a659c5e","unresolved":false,"context_lines":[{"line_number":338,"context_line":"            {\u0027initiator_name\u0027: initiator_name,"},{"line_number":339,"context_line":"             \u0027volume\u0027: volume_name},)"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"        (iscsi_iqn, target_ip, portgroup_id) \u003d \\"},{"line_number":342,"context_line":"            self.restclient.get_iscsi_params(self.xml_file_path, connector)"},{"line_number":343,"context_line":"        LOG.info(_LI(\u0027initialize_connection_iscsi,iscsi_iqn: %(iscsi_iqn)s, \u0027"},{"line_number":344,"context_line":"                     \u0027target_ip: %(target_ip)s, \u0027"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_b5c42440","line":341,"updated":"2015-07-07 19:17:31.000000000","message":"Use ()","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":338,"context_line":"            {\u0027initiator_name\u0027: initiator_name,"},{"line_number":339,"context_line":"             \u0027volume\u0027: volume_name},)"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"        (iscsi_iqn, target_ip, portgroup_id) \u003d \\"},{"line_number":342,"context_line":"            self.restclient.get_iscsi_params(self.xml_file_path, connector)"},{"line_number":343,"context_line":"        LOG.info(_LI(\u0027initialize_connection_iscsi,iscsi_iqn: %(iscsi_iqn)s, \u0027"},{"line_number":344,"context_line":"                     \u0027target_ip: %(target_ip)s, \u0027"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_54498cb6","line":341,"in_reply_to":"ba3cc151_b5c42440","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"}],"cinder/volume/drivers/huawei/rest_client.py":[{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"3c0447b7eeaddb55010ca2f0d492facf373ce25d","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":"import cookielib"},{"line_number":17,"context_line":"import json"},{"line_number":18,"context_line":"import time"},{"line_number":19,"context_line":"import urllib2"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa32b979_cc05e9c2","line":16,"updated":"2015-06-15 13:08:31.000000000","message":"cookielib is not used.","commit_id":"9d87cddcf6d6befc19787b095159d7bc655c6024"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"3c0447b7eeaddb55010ca2f0d492facf373ce25d","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def __init__(self, configuration):"},{"line_number":37,"context_line":"        self.configuration \u003d configuration"},{"line_number":38,"context_line":"        self.cookie \u003d http_cookiejar.CookieJar()"},{"line_number":39,"context_line":"        self.url \u003d None"},{"line_number":40,"context_line":"        self.productversion \u003d None"},{"line_number":41,"context_line":"        self.headers \u003d {\"Connection\": \"keep-alive\","}],"source_content_type":"text/x-python","patch_set":9,"id":"fa32b979_4cfa39bf","line":38,"updated":"2015-06-15 13:08:31.000000000","message":"http_cookiejar is not defined.","commit_id":"9d87cddcf6d6befc19787b095159d7bc655c6024"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"e3b5d8173966c9ea114ffeb525bb0e557a6e9292","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2015 - 2016 Huawei Technologies Co., Ltd."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_ef0a1fd2","line":1,"updated":"2015-06-15 13:34:18.000000000","message":"A range of dates is unnecessary in copyright statement. It should be the first published year.\n\nRefer to https://wiki.openstack.org/wiki/Documentation/Copyright#Overall_Copyright_Statement_Guidance","commit_id":"1f741f6fac96cbfb0085f27a3117e5c468078957"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"ab1787a504cef26adb30511fdba47fbd915b6206","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2015 - 2016 Huawei Technologies Co., Ltd."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_72cfd656","line":1,"in_reply_to":"fa32b979_ef0a1fd2","updated":"2015-06-15 13:57:42.000000000","message":"Done","commit_id":"1f741f6fac96cbfb0085f27a3117e5c468078957"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"e3b5d8173966c9ea114ffeb525bb0e557a6e9292","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":"import cookielib"},{"line_number":17,"context_line":"import json"},{"line_number":18,"context_line":"import time"},{"line_number":19,"context_line":"import urllib2"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_cf2cfb4c","line":16,"updated":"2015-06-15 13:34:18.000000000","message":"cookielib is not used.","commit_id":"1f741f6fac96cbfb0085f27a3117e5c468078957"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"ab1787a504cef26adb30511fdba47fbd915b6206","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":"import cookielib"},{"line_number":17,"context_line":"import json"},{"line_number":18,"context_line":"import time"},{"line_number":19,"context_line":"import urllib2"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_151e7463","line":16,"in_reply_to":"fa32b979_cf2cfb4c","updated":"2015-06-15 13:57:42.000000000","message":"thanks you commets.Ther is conflict in merger.you can review the new patch.","commit_id":"1f741f6fac96cbfb0085f27a3117e5c468078957"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"e3b5d8173966c9ea114ffeb525bb0e557a6e9292","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def __init__(self, configuration):"},{"line_number":37,"context_line":"        self.configuration \u003d configuration"},{"line_number":38,"context_line":"        self.cookie \u003d http_cookiejar.CookieJar()"},{"line_number":39,"context_line":"        self.url \u003d None"},{"line_number":40,"context_line":"        self.productversion \u003d None"},{"line_number":41,"context_line":"        self.headers \u003d {\"Connection\": \"keep-alive\","}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_2f18071d","line":38,"updated":"2015-06-15 13:34:18.000000000","message":"http_cookiejar is not defined.","commit_id":"1f741f6fac96cbfb0085f27a3117e5c468078957"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"3b51fb70887bfb8e6323a8c7143296ff53ca8eaa","unresolved":false,"context_lines":[{"line_number":1065,"context_line":"        # Get local time."},{"line_number":1066,"context_line":"        localtime \u003d time.strftime(\u0027%Y%m%d%H%M%S\u0027, time.localtime(time.time()))"},{"line_number":1067,"context_line":"        # Package QoS name."},{"line_number":1068,"context_line":"        qos_name \u003d QOS_NAME_PREFIX + lun_id + \u0027_\u0027 + localtime"},{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"        mergedata \u003d {\"TYPE\": \"230\","},{"line_number":1071,"context_line":"                     \"NAME\": qos_name,"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa32b979_e372dd10","line":1068,"updated":"2015-06-17 06:14:39.000000000","message":"QOS_NAME_PREFIX is not defined yet.","commit_id":"5563aa08092a3f8fc784c0328f283475478a643a"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"148d35b9df30c6ffd728b55fb4205cbfbe1f907e","unresolved":false,"context_lines":[{"line_number":1065,"context_line":"        # Get local time."},{"line_number":1066,"context_line":"        localtime \u003d time.strftime(\u0027%Y%m%d%H%M%S\u0027, time.localtime(time.time()))"},{"line_number":1067,"context_line":"        # Package QoS name."},{"line_number":1068,"context_line":"        qos_name \u003d QOS_NAME_PREFIX + lun_id + \u0027_\u0027 + localtime"},{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"        mergedata \u003d {\"TYPE\": \"230\","},{"line_number":1071,"context_line":"                     \"NAME\": qos_name,"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa32b979_3e077e19","line":1068,"in_reply_to":"fa32b979_e372dd10","updated":"2015-06-17 06:25:14.000000000","message":"Thanks, I will fix this soon.","commit_id":"5563aa08092a3f8fc784c0328f283475478a643a"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7d50ae1c52cd6d1e288f4cc5d92018a762c8f53b","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        try:"},{"line_number":75,"context_line":"            res_json \u003d json.loads(res)"},{"line_number":76,"context_line":"        except Exception as err:"},{"line_number":77,"context_line":"            err_msg \u003d (_LE(\u0027JSON transfer error: %s.\u0027) % err)"},{"line_number":78,"context_line":"            LOG.error(err_msg)"},{"line_number":79,"context_line":"            raise"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_43c61069","line":77,"updated":"2015-06-17 15:09:52.000000000","message":"This needs six.text_type(err) since you are performing the string formatting immediately here. This is only used for the LOG.error call though, so I would recommend getting rid of err_msg and just put this right in the logger call, passing err in as an argument.","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"ce93dcbf18986b6b510e2f682e697972afa57ccf","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        try:"},{"line_number":75,"context_line":"            res_json \u003d json.loads(res)"},{"line_number":76,"context_line":"        except Exception as err:"},{"line_number":77,"context_line":"            err_msg \u003d (_LE(\u0027JSON transfer error: %s.\u0027) % err)"},{"line_number":78,"context_line":"            LOG.error(err_msg)"},{"line_number":79,"context_line":"            raise"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a41bdd9_f2b2dfe4","line":77,"in_reply_to":"fa32b979_43c61069","updated":"2015-07-18 06:12:58.000000000","message":"Done","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7d50ae1c52cd6d1e288f4cc5d92018a762c8f53b","unresolved":false,"context_lines":[{"line_number":363,"context_line":"        LOG.info(_LI("},{"line_number":364,"context_line":"            \u0027_mapping_hostgroup_and_lungroup, lun_group: %(lun_group)s, \u0027"},{"line_number":365,"context_line":"            \u0027view_id: %(view_id)s, lun_id: %(lun_id)s.\u0027),"},{"line_number":366,"context_line":"            {\u0027lun_group\u0027: six.text_type(lungroup_id),"},{"line_number":367,"context_line":"             \u0027view_id\u0027: six.text_type(view_id),"},{"line_number":368,"context_line":"             \u0027lun_id\u0027: six.text_type(lun_id)})"},{"line_number":369,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_0306c885","line":366,"updated":"2015-06-17 15:09:52.000000000","message":"None of these six.text_type calls are needed.","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"ce93dcbf18986b6b510e2f682e697972afa57ccf","unresolved":false,"context_lines":[{"line_number":363,"context_line":"        LOG.info(_LI("},{"line_number":364,"context_line":"            \u0027_mapping_hostgroup_and_lungroup, lun_group: %(lun_group)s, \u0027"},{"line_number":365,"context_line":"            \u0027view_id: %(view_id)s, lun_id: %(lun_id)s.\u0027),"},{"line_number":366,"context_line":"            {\u0027lun_group\u0027: six.text_type(lungroup_id),"},{"line_number":367,"context_line":"             \u0027view_id\u0027: six.text_type(view_id),"},{"line_number":368,"context_line":"             \u0027lun_id\u0027: six.text_type(lun_id)})"},{"line_number":369,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a41bdd9_f2009f68","line":366,"in_reply_to":"fa32b979_0306c885","updated":"2015-07-18 06:12:58.000000000","message":"Done","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7d50ae1c52cd6d1e288f4cc5d92018a762c8f53b","unresolved":false,"context_lines":[{"line_number":525,"context_line":"                        host_lun_id \u003d hostassoinfo[\u0027HostLUNID\u0027]"},{"line_number":526,"context_line":"                        break"},{"line_number":527,"context_line":"                    except Exception as err:"},{"line_number":528,"context_line":"                        msg \u003d (_LE(\"JSON transfer data error. %s\") % err)"},{"line_number":529,"context_line":"                        LOG.error(msg)"},{"line_number":530,"context_line":"                        raise"},{"line_number":531,"context_line":"        return host_lun_id"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_63ed54b6","line":528,"updated":"2015-06-17 15:09:52.000000000","message":"Move into the logger call and pass err as an argument (preferred), or use six.text_type(err).","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"ce93dcbf18986b6b510e2f682e697972afa57ccf","unresolved":false,"context_lines":[{"line_number":525,"context_line":"                        host_lun_id \u003d hostassoinfo[\u0027HostLUNID\u0027]"},{"line_number":526,"context_line":"                        break"},{"line_number":527,"context_line":"                    except Exception as err:"},{"line_number":528,"context_line":"                        msg \u003d (_LE(\"JSON transfer data error. %s\") % err)"},{"line_number":529,"context_line":"                        LOG.error(msg)"},{"line_number":530,"context_line":"                        raise"},{"line_number":531,"context_line":"        return host_lun_id"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a41bdd9_b2f3f79e","line":528,"in_reply_to":"fa32b979_63ed54b6","updated":"2015-07-18 06:12:58.000000000","message":"Done","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7d50ae1c52cd6d1e288f4cc5d92018a762c8f53b","unresolved":false,"context_lines":[{"line_number":884,"context_line":"        ip_info \u003d self._get_iscsi_port_info(iscsiip)"},{"line_number":885,"context_line":"        iqn_prefix \u003d self._get_iscsi_tgt_port()"},{"line_number":886,"context_line":""},{"line_number":887,"context_line":"        LOG.info(_LI(\u0027Request ip info is: %s.\u0027), ip_info)"},{"line_number":888,"context_line":"        split_list \u003d ip_info.split(\".\")"},{"line_number":889,"context_line":"        newstr \u003d split_list[1] + split_list[2]"},{"line_number":890,"context_line":"        LOG.info(_LI(\u0027New str info is: %s.\u0027), newstr)"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_431e10bc","line":887,"updated":"2015-06-17 15:09:52.000000000","message":"These seem like they should be LOG.debug, not LOG.info.","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"ce93dcbf18986b6b510e2f682e697972afa57ccf","unresolved":false,"context_lines":[{"line_number":884,"context_line":"        ip_info \u003d self._get_iscsi_port_info(iscsiip)"},{"line_number":885,"context_line":"        iqn_prefix \u003d self._get_iscsi_tgt_port()"},{"line_number":886,"context_line":""},{"line_number":887,"context_line":"        LOG.info(_LI(\u0027Request ip info is: %s.\u0027), ip_info)"},{"line_number":888,"context_line":"        split_list \u003d ip_info.split(\".\")"},{"line_number":889,"context_line":"        newstr \u003d split_list[1] + split_list[2]"},{"line_number":890,"context_line":"        LOG.info(_LI(\u0027New str info is: %s.\u0027), newstr)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a41bdd9_72ed6fb6","line":887,"in_reply_to":"fa32b979_431e10bc","updated":"2015-07-18 06:12:58.000000000","message":"Done","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":11079,"name":"TaoBai","email":"baitao5@huawei.com","username":"TaoBai"},"change_message_id":"e3e4e83f89c272496c98538d1628698a46ce7a7a","unresolved":false,"context_lines":[{"line_number":940,"context_line":"            total_capacity_gb\u003dcapacity[\u0027total_capacity\u0027],"},{"line_number":941,"context_line":"            free_capacity_gb\u003dcapacity[\u0027free_capacity\u0027],"},{"line_number":942,"context_line":"            reserved_percentage\u003d0,"},{"line_number":943,"context_line":"            QoS_support\u003dFalse,"},{"line_number":944,"context_line":"        ))"},{"line_number":945,"context_line":"        data[\"pools\"].append(pool)"},{"line_number":946,"context_line":"        return data"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_42328011","line":943,"updated":"2015-06-24 11:47:46.000000000","message":"Seems your driver support QoS, isn\u0027t it ? If yes, why not set QoS_support\u003dTrue","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"ce93dcbf18986b6b510e2f682e697972afa57ccf","unresolved":false,"context_lines":[{"line_number":940,"context_line":"            total_capacity_gb\u003dcapacity[\u0027total_capacity\u0027],"},{"line_number":941,"context_line":"            free_capacity_gb\u003dcapacity[\u0027free_capacity\u0027],"},{"line_number":942,"context_line":"            reserved_percentage\u003d0,"},{"line_number":943,"context_line":"            QoS_support\u003dFalse,"},{"line_number":944,"context_line":"        ))"},{"line_number":945,"context_line":"        data[\"pools\"].append(pool)"},{"line_number":946,"context_line":"        return data"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a41bdd9_122bc3ec","line":943,"in_reply_to":"fa32b979_42328011","updated":"2015-07-18 06:12:58.000000000","message":"Done","commit_id":"f10b4dda252b5c2485872dde15507d4827e93848"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"adef92be66051d1d4c6251192ed852985a659c5e","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                        \"Content-Type\": \"application/json\"}"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def call(self, url\u003dFalse, data\u003dNone, method\u003dNone):"},{"line_number":45,"context_line":"        \"\"\"Send requests to 18000 server."},{"line_number":46,"context_line":"        Send HTTPS call, get response in JSON."},{"line_number":47,"context_line":"        Convert response into Python Object and return it."},{"line_number":48,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_5a15c746","line":45,"updated":"2015-07-07 19:17:31.000000000","message":"Add a new line after line 45.","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                        \"Content-Type\": \"application/json\"}"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def call(self, url\u003dFalse, data\u003dNone, method\u003dNone):"},{"line_number":45,"context_line":"        \"\"\"Send requests to 18000 server."},{"line_number":46,"context_line":"        Send HTTPS call, get response in JSON."},{"line_number":47,"context_line":"        Convert response into Python Object and return it."},{"line_number":48,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_b46a58ec","line":45,"in_reply_to":"ba3cc151_5a15c746","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"adef92be66051d1d4c6251192ed852985a659c5e","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        except Exception as err:"},{"line_number":71,"context_line":"            LOG.error(_LE(\u0027\\nBad response from server: %(url)s.\u0027"},{"line_number":72,"context_line":"                          \u0027 Error: %(err)s\u0027), {\u0027url\u0027: url, \u0027err\u0027: err})"},{"line_number":73,"context_line":"            json_msg \u003d \u0027{\"error\":{\"code\":-403,\"description\":\u0027 \\"},{"line_number":74,"context_line":"                \u0027\"Connet server error\"}}\u0027"},{"line_number":75,"context_line":"            res_json \u003d json.loads(json_msg)"},{"line_number":76,"context_line":"            return res_json"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_b51d0468","line":73,"updated":"2015-07-07 19:17:31.000000000","message":"Use () instead of \\","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        except Exception as err:"},{"line_number":71,"context_line":"            LOG.error(_LE(\u0027\\nBad response from server: %(url)s.\u0027"},{"line_number":72,"context_line":"                          \u0027 Error: %(err)s\u0027), {\u0027url\u0027: url, \u0027err\u0027: err})"},{"line_number":73,"context_line":"            json_msg \u003d \u0027{\"error\":{\"code\":-403,\"description\":\u0027 \\"},{"line_number":74,"context_line":"                \u0027\"Connet server error\"}}\u0027"},{"line_number":75,"context_line":"            res_json \u003d json.loads(json_msg)"},{"line_number":76,"context_line":"            return res_json"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_6f115d53","line":73,"in_reply_to":"ba3cc151_b51d0468","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0bcef5f9895fb5cd1c1de8c009b8bccf29a07d77","unresolved":false,"context_lines":[{"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"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        return res_json"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_f9adbbe9","line":82,"updated":"2015-07-08 01:36:58.000000000","message":"Just only here use err_msg, so no need this arg, just LOG.error(_LE(xxx)) is fine.","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"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"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        return res_json"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_0f29b189","line":82,"in_reply_to":"ba3cc151_f9adbbe9","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"687ab12b683e26e8241a8178b8feecb2d9ccca54","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        LOG.error(msg)"},{"line_number":115,"context_line":"        raise exception.CinderException(msg)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def login_out(self):"},{"line_number":118,"context_line":"        \"\"\"logout the session.\"\"\""},{"line_number":119,"context_line":"        url \u003d self.url + \"/sessions\""},{"line_number":120,"context_line":"        if self.url:"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_3eb9f715","line":117,"updated":"2015-07-07 08:42:43.000000000","message":"The name of function is inappropriate. It should be \"logout\"","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        LOG.error(msg)"},{"line_number":115,"context_line":"        raise exception.CinderException(msg)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def login_out(self):"},{"line_number":118,"context_line":"        \"\"\"logout the session.\"\"\""},{"line_number":119,"context_line":"        url \u003d self.url + \"/sessions\""},{"line_number":120,"context_line":"        if self.url:"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_4f8b3969","line":117,"in_reply_to":"ba3cc151_3eb9f715","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"687ab12b683e26e8241a8178b8feecb2d9ccca54","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        if error_code \u003d\u003d constants.ERROR_CONNECT_TO_SERVER or \\"},{"line_number":162,"context_line":"           error_code \u003d\u003d constants.ERROR_UNAUTHORIZED_TO_SERVER:"},{"line_number":163,"context_line":"            LOG.error(_LE(\"cant\u0027t open the recent url, relogin.\"))"},{"line_number":164,"context_line":"            self.login()"},{"line_number":165,"context_line":"            result \u003d self.call(url, data, \"GET\")"},{"line_number":166,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_5e963b95","line":163,"updated":"2015-07-07 08:42:43.000000000","message":"\"cant\u0027t\"??， should be \"can\u0027t\"","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        if error_code \u003d\u003d constants.ERROR_CONNECT_TO_SERVER or \\"},{"line_number":162,"context_line":"           error_code \u003d\u003d constants.ERROR_UNAUTHORIZED_TO_SERVER:"},{"line_number":163,"context_line":"            LOG.error(_LE(\"cant\u0027t open the recent url, relogin.\"))"},{"line_number":164,"context_line":"            self.login()"},{"line_number":165,"context_line":"            result \u003d self.call(url, data, \"GET\")"},{"line_number":166,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_6fdb9d7e","line":163,"in_reply_to":"ba3cc151_5e963b95","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0bcef5f9895fb5cd1c1de8c009b8bccf29a07d77","unresolved":false,"context_lines":[{"line_number":478,"context_line":"        return lun_group_id"},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"    def _create_hostgroup_with_check(self, host_group_name):"},{"line_number":481,"context_line":"        \"\"\"check if host exists in array, or create it.\"\"\""},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        hostgroup_id \u003d self.find_hostgroup(host_group_name)"},{"line_number":484,"context_line":"        if hostgroup_id:"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_39b6c3f9","line":481,"updated":"2015-07-08 01:36:58.000000000","message":"capital letter here \"Check\"","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"adef92be66051d1d4c6251192ed852985a659c5e","unresolved":false,"context_lines":[{"line_number":478,"context_line":"        return lun_group_id"},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"    def _create_hostgroup_with_check(self, host_group_name):"},{"line_number":481,"context_line":"        \"\"\"check if host exists in array, or create it.\"\"\""},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        hostgroup_id \u003d self.find_hostgroup(host_group_name)"},{"line_number":484,"context_line":"        if hostgroup_id:"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_3541f40b","line":481,"updated":"2015-07-07 19:17:31.000000000","message":"host group\n\nin -\u003e on","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":478,"context_line":"        return lun_group_id"},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"    def _create_hostgroup_with_check(self, host_group_name):"},{"line_number":481,"context_line":"        \"\"\"check if host exists in array, or create it.\"\"\""},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        hostgroup_id \u003d self.find_hostgroup(host_group_name)"},{"line_number":484,"context_line":"        if hostgroup_id:"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_cfcc29be","line":481,"in_reply_to":"ba3cc151_3541f40b","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":478,"context_line":"        return lun_group_id"},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"    def _create_hostgroup_with_check(self, host_group_name):"},{"line_number":481,"context_line":"        \"\"\"check if host exists in array, or create it.\"\"\""},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        hostgroup_id \u003d self.find_hostgroup(host_group_name)"},{"line_number":484,"context_line":"        if hostgroup_id:"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_8fbf01fc","line":481,"in_reply_to":"ba3cc151_39b6c3f9","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"adef92be66051d1d4c6251192ed852985a659c5e","unresolved":false,"context_lines":[{"line_number":495,"context_line":"        except Exception:"},{"line_number":496,"context_line":"            LOG.info(_LI("},{"line_number":497,"context_line":"                \u0027failed to create hostgroup: %(name)s. \u0027"},{"line_number":498,"context_line":"                \u0027check if it exists in array.\u0027),"},{"line_number":499,"context_line":"                {\u0027name\u0027: host_group_name})"},{"line_number":500,"context_line":"            hostgroup_id \u003d self.find_hostgroup(host_group_name)"},{"line_number":501,"context_line":"            if hostgroup_id is None:"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_755e9cea","line":498,"updated":"2015-07-07 19:17:31.000000000","message":"on array","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":495,"context_line":"        except Exception:"},{"line_number":496,"context_line":"            LOG.info(_LI("},{"line_number":497,"context_line":"                \u0027failed to create hostgroup: %(name)s. \u0027"},{"line_number":498,"context_line":"                \u0027check if it exists in array.\u0027),"},{"line_number":499,"context_line":"                {\u0027name\u0027: host_group_name})"},{"line_number":500,"context_line":"            hostgroup_id \u003d self.find_hostgroup(host_group_name)"},{"line_number":501,"context_line":"            if hostgroup_id is None:"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_4fb9f914","line":498,"in_reply_to":"ba3cc151_755e9cea","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"adef92be66051d1d4c6251192ed852985a659c5e","unresolved":false,"context_lines":[{"line_number":501,"context_line":"            if hostgroup_id is None:"},{"line_number":502,"context_line":"                err_msg \u003d (_("},{"line_number":503,"context_line":"                    \u0027error to create hostgroup: %(name)s. \u0027"},{"line_number":504,"context_line":"                    \u0027and it not exists in array.\u0027),"},{"line_number":505,"context_line":"                    {\u0027name\u0027: host_group_name})"},{"line_number":506,"context_line":"                LOG.error(err_msg)"},{"line_number":507,"context_line":"                raise exception.CinderException(err_msg)"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_355814fa","line":504,"updated":"2015-07-07 19:17:31.000000000","message":"on","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":501,"context_line":"            if hostgroup_id is None:"},{"line_number":502,"context_line":"                err_msg \u003d (_("},{"line_number":503,"context_line":"                    \u0027error to create hostgroup: %(name)s. \u0027"},{"line_number":504,"context_line":"                    \u0027and it not exists in array.\u0027),"},{"line_number":505,"context_line":"                    {\u0027name\u0027: host_group_name})"},{"line_number":506,"context_line":"                LOG.error(err_msg)"},{"line_number":507,"context_line":"                raise exception.CinderException(err_msg)"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_ef348dad","line":504,"in_reply_to":"ba3cc151_355814fa","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0bcef5f9895fb5cd1c1de8c009b8bccf29a07d77","unresolved":false,"context_lines":[{"line_number":659,"context_line":"        if \"data\" in result:"},{"line_number":660,"context_line":"            return result[\u0027data\u0027][\u0027ID\u0027]"},{"line_number":661,"context_line":"        else:"},{"line_number":662,"context_line":"            return None"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"    def _is_host_associate_to_hostgroup(self, hostgroup_id, host_id):"},{"line_number":665,"context_line":"        \"\"\"Check whether the host is associated to the hostgroup.\"\"\""}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_99c58f5d","line":662,"updated":"2015-07-08 01:36:58.000000000","message":"Just return is fine. No need to return None.","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":659,"context_line":"        if \"data\" in result:"},{"line_number":660,"context_line":"            return result[\u0027data\u0027][\u0027ID\u0027]"},{"line_number":661,"context_line":"        else:"},{"line_number":662,"context_line":"            return None"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"    def _is_host_associate_to_hostgroup(self, hostgroup_id, host_id):"},{"line_number":665,"context_line":"        \"\"\"Check whether the host is associated to the hostgroup.\"\"\""}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_cf43c912","line":662,"in_reply_to":"ba3cc151_99c58f5d","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0bcef5f9895fb5cd1c1de8c009b8bccf29a07d77","unresolved":false,"context_lines":[{"line_number":714,"context_line":""},{"line_number":715,"context_line":"    def remove_lun_from_lungroup(self, lungroupid, lunid):"},{"line_number":716,"context_line":"        \"\"\"Remove lun from lungroup.\"\"\""},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"        url \u003d self.url + (\"/lungroup/associate?ID\u003d%s\""},{"line_number":719,"context_line":"                          \"\u0026ASSOCIATEOBJTYPE\u003d11\u0026ASSOCIATEOBJID\u003d%s\""},{"line_number":720,"context_line":"                          % (lungroupid, lunid))"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_798e8b2f","line":717,"updated":"2015-07-08 01:36:58.000000000","message":"Remove this blank line to make consistent with other functions.","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":714,"context_line":""},{"line_number":715,"context_line":"    def remove_lun_from_lungroup(self, lungroupid, lunid):"},{"line_number":716,"context_line":"        \"\"\"Remove lun from lungroup.\"\"\""},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"        url \u003d self.url + (\"/lungroup/associate?ID\u003d%s\""},{"line_number":719,"context_line":"                          \"\u0026ASSOCIATEOBJTYPE\u003d11\u0026ASSOCIATEOBJID\u003d%s\""},{"line_number":720,"context_line":"                          % (lungroupid, lunid))"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_4f5019d5","line":717,"in_reply_to":"ba3cc151_798e8b2f","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0bcef5f9895fb5cd1c1de8c009b8bccf29a07d77","unresolved":false,"context_lines":[{"line_number":751,"context_line":""},{"line_number":752,"context_line":"    def _add_initiator_to_array(self, initiator_name):"},{"line_number":753,"context_line":"        \"\"\"Add a new initiator to storage device.\"\"\""},{"line_number":754,"context_line":""},{"line_number":755,"context_line":"        url \u003d self.url + \"/iscsi_initiator/\""},{"line_number":756,"context_line":"        data \u003d json.dumps({\"TYPE\": \"222\","},{"line_number":757,"context_line":"                           \"ID\": initiator_name,"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_99734f4e","line":754,"updated":"2015-07-08 01:36:58.000000000","message":"Remove this blank line","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":751,"context_line":""},{"line_number":752,"context_line":"    def _add_initiator_to_array(self, initiator_name):"},{"line_number":753,"context_line":"        \"\"\"Add a new initiator to storage device.\"\"\""},{"line_number":754,"context_line":""},{"line_number":755,"context_line":"        url \u003d self.url + \"/iscsi_initiator/\""},{"line_number":756,"context_line":"        data \u003d json.dumps({\"TYPE\": \"222\","},{"line_number":757,"context_line":"                           \"ID\": initiator_name,"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_af5525c3","line":754,"in_reply_to":"ba3cc151_99734f4e","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0bcef5f9895fb5cd1c1de8c009b8bccf29a07d77","unresolved":false,"context_lines":[{"line_number":983,"context_line":""},{"line_number":984,"context_line":"    def _get_tgt_iqn(self, iscsiip):"},{"line_number":985,"context_line":"        \"\"\"Get target iSCSI iqn.\"\"\""},{"line_number":986,"context_line":""},{"line_number":987,"context_line":"        ip_info \u003d self._get_iscsi_port_info(iscsiip)"},{"line_number":988,"context_line":"        iqn_prefix \u003d self._get_iscsi_tgt_port()"},{"line_number":989,"context_line":"        if not ip_info:"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_79952b31","line":986,"updated":"2015-07-08 01:36:58.000000000","message":"Remove this blank line","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":983,"context_line":""},{"line_number":984,"context_line":"    def _get_tgt_iqn(self, iscsiip):"},{"line_number":985,"context_line":"        \"\"\"Get target iSCSI iqn.\"\"\""},{"line_number":986,"context_line":""},{"line_number":987,"context_line":"        ip_info \u003d self._get_iscsi_port_info(iscsiip)"},{"line_number":988,"context_line":"        iqn_prefix \u003d self._get_iscsi_tgt_port()"},{"line_number":989,"context_line":"        if not ip_info:"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_ef024dba","line":986,"in_reply_to":"ba3cc151_79952b31","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"667b8c001b6f795cbaa45db543371ad25dcdcb19","unresolved":false,"context_lines":[{"line_number":988,"context_line":"        iqn_prefix \u003d self._get_iscsi_tgt_port()"},{"line_number":989,"context_line":"        if not ip_info:"},{"line_number":990,"context_line":"            err_msg \u003d (_("},{"line_number":991,"context_line":"                \u0027Get iSCSI port info error, pleas check the target IP \u0027"},{"line_number":992,"context_line":"                \u0027configured in huawei conf file.\u0027))"},{"line_number":993,"context_line":"            LOG.error(err_msg)"},{"line_number":994,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_79d68b50","line":991,"updated":"2015-07-08 01:31:44.000000000","message":"pleas -\u003e please","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":988,"context_line":"        iqn_prefix \u003d self._get_iscsi_tgt_port()"},{"line_number":989,"context_line":"        if not ip_info:"},{"line_number":990,"context_line":"            err_msg \u003d (_("},{"line_number":991,"context_line":"                \u0027Get iSCSI port info error, pleas check the target IP \u0027"},{"line_number":992,"context_line":"                \u0027configured in huawei conf file.\u0027))"},{"line_number":993,"context_line":"            LOG.error(err_msg)"},{"line_number":994,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_0f08d1d8","line":991,"in_reply_to":"ba3cc151_79d68b50","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"667b8c001b6f795cbaa45db543371ad25dcdcb19","unresolved":false,"context_lines":[{"line_number":1038,"context_line":"        pool_name \u003d root.findtext(\u0027Storage/StoragePool\u0027)"},{"line_number":1039,"context_line":"        if not pool_name:"},{"line_number":1040,"context_line":"            msg \u003d (_("},{"line_number":1041,"context_line":"                \u0027Invalid resource pool name,\u0027"},{"line_number":1042,"context_line":"                \u0027Please check the config file.\u0027))"},{"line_number":1043,"context_line":"            LOG.error(msg)"},{"line_number":1044,"context_line":"            raise exception.InvalidInput(msg)"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_395a43f3","line":1041,"updated":"2015-07-08 01:31:44.000000000","message":"needs a blank space at the end of the sentence.","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":1038,"context_line":"        pool_name \u003d root.findtext(\u0027Storage/StoragePool\u0027)"},{"line_number":1039,"context_line":"        if not pool_name:"},{"line_number":1040,"context_line":"            msg \u003d (_("},{"line_number":1041,"context_line":"                \u0027Invalid resource pool name,\u0027"},{"line_number":1042,"context_line":"                \u0027Please check the config file.\u0027))"},{"line_number":1043,"context_line":"            LOG.error(msg)"},{"line_number":1044,"context_line":"            raise exception.InvalidInput(msg)"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_cf118906","line":1041,"in_reply_to":"ba3cc151_395a43f3","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0bcef5f9895fb5cd1c1de8c009b8bccf29a07d77","unresolved":false,"context_lines":[{"line_number":1172,"context_line":"        return target_iqn"},{"line_number":1173,"context_line":""},{"line_number":1174,"context_line":"    def create_qos_policy(self, qos, lun_id):"},{"line_number":1175,"context_line":""},{"line_number":1176,"context_line":"        # Get local time."},{"line_number":1177,"context_line":"        localtime \u003d time.strftime(\u0027%Y%m%d%H%M%S\u0027, time.localtime(time.time()))"},{"line_number":1178,"context_line":"        # Package QoS name."}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_f9a13b95","line":1175,"updated":"2015-07-08 01:36:58.000000000","message":"Remove this blank line","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":1172,"context_line":"        return target_iqn"},{"line_number":1173,"context_line":""},{"line_number":1174,"context_line":"    def create_qos_policy(self, qos, lun_id):"},{"line_number":1175,"context_line":""},{"line_number":1176,"context_line":"        # Get local time."},{"line_number":1177,"context_line":"        localtime \u003d time.strftime(\u0027%Y%m%d%H%M%S\u0027, time.localtime(time.time()))"},{"line_number":1178,"context_line":"        # Package QoS name."}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_ef29ed3b","line":1175,"in_reply_to":"ba3cc151_f9a13b95","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0bcef5f9895fb5cd1c1de8c009b8bccf29a07d77","unresolved":false,"context_lines":[{"line_number":1198,"context_line":""},{"line_number":1199,"context_line":"    def delete_qos_policy(self, qos_id):"},{"line_number":1200,"context_line":"        \"\"\"Delete a QoS policy.\"\"\""},{"line_number":1201,"context_line":""},{"line_number":1202,"context_line":"        url \u003d self.url + \"/ioclass/\" + qos_id"},{"line_number":1203,"context_line":"        data \u003d json.dumps({\"TYPE\": \"230\","},{"line_number":1204,"context_line":"                           \"ID\": qos_id})"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_99aa6f70","line":1201,"updated":"2015-07-08 01:36:58.000000000","message":"Remove this blank line","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":1198,"context_line":""},{"line_number":1199,"context_line":"    def delete_qos_policy(self, qos_id):"},{"line_number":1200,"context_line":"        \"\"\"Delete a QoS policy.\"\"\""},{"line_number":1201,"context_line":""},{"line_number":1202,"context_line":"        url \u003d self.url + \"/ioclass/\" + qos_id"},{"line_number":1203,"context_line":"        data \u003d json.dumps({\"TYPE\": \"230\","},{"line_number":1204,"context_line":"                           \"ID\": qos_id})"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_cf28a936","line":1201,"in_reply_to":"ba3cc151_99aa6f70","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0bcef5f9895fb5cd1c1de8c009b8bccf29a07d77","unresolved":false,"context_lines":[{"line_number":1212,"context_line":"        enablestatus: true (active)"},{"line_number":1213,"context_line":"        enbalestatus: false (deactive)"},{"line_number":1214,"context_line":"        \"\"\""},{"line_number":1215,"context_line":""},{"line_number":1216,"context_line":"        url \u003d self.url + \"/ioclass/active/\" + qos_id"},{"line_number":1217,"context_line":"        data \u003d json.dumps({\"TYPE\": 230,"},{"line_number":1218,"context_line":"                           \"ID\": qos_id,"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_39b243e6","line":1215,"updated":"2015-07-08 01:36:58.000000000","message":"Remove this blank line","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":1212,"context_line":"        enablestatus: true (active)"},{"line_number":1213,"context_line":"        enbalestatus: false (deactive)"},{"line_number":1214,"context_line":"        \"\"\""},{"line_number":1215,"context_line":""},{"line_number":1216,"context_line":"        url \u003d self.url + \"/ioclass/active/\" + qos_id"},{"line_number":1217,"context_line":"        data \u003d json.dumps({\"TYPE\": 230,"},{"line_number":1218,"context_line":"                           \"ID\": qos_id,"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_6f1e3d0f","line":1215,"in_reply_to":"ba3cc151_39b243e6","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0bcef5f9895fb5cd1c1de8c009b8bccf29a07d77","unresolved":false,"context_lines":[{"line_number":1222,"context_line":""},{"line_number":1223,"context_line":"    def get_qos_info(self, qos_id):"},{"line_number":1224,"context_line":"        \"\"\"Get QoS information.\"\"\""},{"line_number":1225,"context_line":""},{"line_number":1226,"context_line":"        url \u003d self.url + \"/ioclass/\" + qos_id"},{"line_number":1227,"context_line":"        data \u003d json.dumps({\"TYPE\": \"230\","},{"line_number":1228,"context_line":"                           \"ID\": qos_id})"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_f9c85b57","line":1225,"updated":"2015-07-08 01:36:58.000000000","message":"Remove this blank line","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":1222,"context_line":""},{"line_number":1223,"context_line":"    def get_qos_info(self, qos_id):"},{"line_number":1224,"context_line":"        \"\"\"Get QoS information.\"\"\""},{"line_number":1225,"context_line":""},{"line_number":1226,"context_line":"        url \u003d self.url + \"/ioclass/\" + qos_id"},{"line_number":1227,"context_line":"        data \u003d json.dumps({\"TYPE\": \"230\","},{"line_number":1228,"context_line":"                           \"ID\": qos_id})"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_2f18351e","line":1225,"in_reply_to":"ba3cc151_f9c85b57","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0bcef5f9895fb5cd1c1de8c009b8bccf29a07d77","unresolved":false,"context_lines":[{"line_number":1233,"context_line":""},{"line_number":1234,"context_line":"    def change_lun_priority(self, lunid):"},{"line_number":1235,"context_line":"        \"\"\"Change lun priority to high.\"\"\""},{"line_number":1236,"context_line":""},{"line_number":1237,"context_line":"        url \u003d self.url + \"/lun/\" + lunid"},{"line_number":1238,"context_line":"        data \u003d json.dumps({\"TYPE\": \"11\","},{"line_number":1239,"context_line":"                           \"ID\": lunid,"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_59de2712","line":1236,"updated":"2015-07-08 01:36:58.000000000","message":"Remove this blank line","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":1233,"context_line":""},{"line_number":1234,"context_line":"    def change_lun_priority(self, lunid):"},{"line_number":1235,"context_line":"        \"\"\"Change lun priority to high.\"\"\""},{"line_number":1236,"context_line":""},{"line_number":1237,"context_line":"        url \u003d self.url + \"/lun/\" + lunid"},{"line_number":1238,"context_line":"        data \u003d json.dumps({\"TYPE\": \"11\","},{"line_number":1239,"context_line":"                           \"ID\": lunid,"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_efd00d2e","line":1236,"in_reply_to":"ba3cc151_59de2712","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0bcef5f9895fb5cd1c1de8c009b8bccf29a07d77","unresolved":false,"context_lines":[{"line_number":1244,"context_line":""},{"line_number":1245,"context_line":"    def get_qosid_by_lunid(self, lunid):"},{"line_number":1246,"context_line":"        \"\"\"Get qosid by lunid.\"\"\""},{"line_number":1247,"context_line":""},{"line_number":1248,"context_line":"        url \u003d self.url + \"/lun/\" + lunid"},{"line_number":1249,"context_line":"        data \u003d json.dumps({\"TYPE\": \"11\","},{"line_number":1250,"context_line":"                           \"ID\": lunid})"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_79e3ebd9","line":1247,"updated":"2015-07-08 01:36:58.000000000","message":"Remove this blank line","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":1244,"context_line":""},{"line_number":1245,"context_line":"    def get_qosid_by_lunid(self, lunid):"},{"line_number":1246,"context_line":"        \"\"\"Get qosid by lunid.\"\"\""},{"line_number":1247,"context_line":""},{"line_number":1248,"context_line":"        url \u003d self.url + \"/lun/\" + lunid"},{"line_number":1249,"context_line":"        data \u003d json.dumps({\"TYPE\": \"11\","},{"line_number":1250,"context_line":"                           \"ID\": lunid})"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_afda054a","line":1247,"in_reply_to":"ba3cc151_79e3ebd9","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0bcef5f9895fb5cd1c1de8c009b8bccf29a07d77","unresolved":false,"context_lines":[{"line_number":1256,"context_line":""},{"line_number":1257,"context_line":"    def get_lungroupid_by_lunid(self, lunid):"},{"line_number":1258,"context_line":"        \"\"\"Get lungroupid by lunid.\"\"\""},{"line_number":1259,"context_line":""},{"line_number":1260,"context_line":"        url \u003d self.url + (\"/lungroup/associate?TYPE\u003d256\""},{"line_number":1261,"context_line":"                          \"\u0026ASSOCIATEOBJTYPE\u003d11\u0026ASSOCIATEOBJID\u003d%s\" % lunid)"},{"line_number":1262,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_19e41fde","line":1259,"updated":"2015-07-08 01:36:58.000000000","message":"Remove this blank line","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":1256,"context_line":""},{"line_number":1257,"context_line":"    def get_lungroupid_by_lunid(self, lunid):"},{"line_number":1258,"context_line":"        \"\"\"Get lungroupid by lunid.\"\"\""},{"line_number":1259,"context_line":""},{"line_number":1260,"context_line":"        url \u003d self.url + (\"/lungroup/associate?TYPE\u003d256\""},{"line_number":1261,"context_line":"                          \"\u0026ASSOCIATEOBJTYPE\u003d11\u0026ASSOCIATEOBJID\u003d%s\" % lunid)"},{"line_number":1262,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_cfdf4939","line":1259,"in_reply_to":"ba3cc151_19e41fde","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0bcef5f9895fb5cd1c1de8c009b8bccf29a07d77","unresolved":false,"context_lines":[{"line_number":1297,"context_line":"        return result[\u0027data\u0027]"},{"line_number":1298,"context_line":""},{"line_number":1299,"context_line":"    def remove_host(self, hostid):"},{"line_number":1300,"context_line":""},{"line_number":1301,"context_line":"        url \u003d self.url + \"/host/%s\" % hostid"},{"line_number":1302,"context_line":"        result \u003d self.call(url, None, \"DELETE\")"},{"line_number":1303,"context_line":"        self._assert_rest_result(result, \u0027remove fc from host error.\u0027)"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_39e9e3b7","line":1300,"updated":"2015-07-08 01:36:58.000000000","message":"Remove this blank line","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":1297,"context_line":"        return result[\u0027data\u0027]"},{"line_number":1298,"context_line":""},{"line_number":1299,"context_line":"    def remove_host(self, hostid):"},{"line_number":1300,"context_line":""},{"line_number":1301,"context_line":"        url \u003d self.url + \"/host/%s\" % hostid"},{"line_number":1302,"context_line":"        result \u003d self.call(url, None, \"DELETE\")"},{"line_number":1303,"context_line":"        self._assert_rest_result(result, \u0027remove fc from host error.\u0027)"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_6fe5dd08","line":1300,"in_reply_to":"ba3cc151_39e9e3b7","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0bcef5f9895fb5cd1c1de8c009b8bccf29a07d77","unresolved":false,"context_lines":[{"line_number":1303,"context_line":"        self._assert_rest_result(result, \u0027remove fc from host error.\u0027)"},{"line_number":1304,"context_line":""},{"line_number":1305,"context_line":"    def delete_hostgroup(self, hostgroupid):"},{"line_number":1306,"context_line":""},{"line_number":1307,"context_line":"        url \u003d self.url + \"/hostgroup/%s\" % hostgroupid"},{"line_number":1308,"context_line":"        result \u003d self.call(url, None, \"DELETE\")"},{"line_number":1309,"context_line":"        self._assert_rest_result(result, \u0027delete hostgroup error\u0027)"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_d9d23700","line":1306,"updated":"2015-07-08 01:36:58.000000000","message":"Remove this blank line","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":1303,"context_line":"        self._assert_rest_result(result, \u0027remove fc from host error.\u0027)"},{"line_number":1304,"context_line":""},{"line_number":1305,"context_line":"    def delete_hostgroup(self, hostgroupid):"},{"line_number":1306,"context_line":""},{"line_number":1307,"context_line":"        url \u003d self.url + \"/hostgroup/%s\" % hostgroupid"},{"line_number":1308,"context_line":"        result \u003d self.call(url, None, \"DELETE\")"},{"line_number":1309,"context_line":"        self._assert_rest_result(result, \u0027delete hostgroup error\u0027)"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_2fefd5ea","line":1306,"in_reply_to":"ba3cc151_d9d23700","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0bcef5f9895fb5cd1c1de8c009b8bccf29a07d77","unresolved":false,"context_lines":[{"line_number":1309,"context_line":"        self._assert_rest_result(result, \u0027delete hostgroup error\u0027)"},{"line_number":1310,"context_line":""},{"line_number":1311,"context_line":"    def remove_host_from_hostgroup(self, hostgroupid, hostid):"},{"line_number":1312,"context_line":""},{"line_number":1313,"context_line":"        url_subfix001 \u003d \"/host/associate?TYPE\u003d14\u0026ID\u003d%s\" % hostgroupid"},{"line_number":1314,"context_line":"        url_subfix002 \u003d \"\u0026ASSOCIATEOBJTYPE\u003d21\u0026ASSOCIATEOBJID\u003d%s\" % hostid"},{"line_number":1315,"context_line":"        url \u003d self.url + url_subfix001 + url_subfix002"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_f9cffb53","line":1312,"updated":"2015-07-08 01:36:58.000000000","message":"Remove this blank line","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":1309,"context_line":"        self._assert_rest_result(result, \u0027delete hostgroup error\u0027)"},{"line_number":1310,"context_line":""},{"line_number":1311,"context_line":"    def remove_host_from_hostgroup(self, hostgroupid, hostid):"},{"line_number":1312,"context_line":""},{"line_number":1313,"context_line":"        url_subfix001 \u003d \"/host/associate?TYPE\u003d14\u0026ID\u003d%s\" % hostgroupid"},{"line_number":1314,"context_line":"        url_subfix002 \u003d \"\u0026ASSOCIATEOBJTYPE\u003d21\u0026ASSOCIATEOBJID\u003d%s\" % hostid"},{"line_number":1315,"context_line":"        url \u003d self.url + url_subfix001 + url_subfix002"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_4fec99f3","line":1312,"in_reply_to":"ba3cc151_f9cffb53","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"0bcef5f9895fb5cd1c1de8c009b8bccf29a07d77","unresolved":false,"context_lines":[{"line_number":1317,"context_line":"        self._assert_rest_result(result, \u0027remove host from hostgroup error.\u0027)"},{"line_number":1318,"context_line":""},{"line_number":1319,"context_line":"    def remove_iscsi_from_host(self, initiator):"},{"line_number":1320,"context_line":""},{"line_number":1321,"context_line":"        url \u003d self.url + \"/iscsi_initiator/remove_iscsi_from_host\""},{"line_number":1322,"context_line":"        data \u003d json.dumps({\"TYPE\": \u0027222\u0027,"},{"line_number":1323,"context_line":"                           \"ID\": initiator})"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_b9d5f3e5","line":1320,"updated":"2015-07-08 01:36:58.000000000","message":"Remove this blank line","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":1317,"context_line":"        self._assert_rest_result(result, \u0027remove host from hostgroup error.\u0027)"},{"line_number":1318,"context_line":""},{"line_number":1319,"context_line":"    def remove_iscsi_from_host(self, initiator):"},{"line_number":1320,"context_line":""},{"line_number":1321,"context_line":"        url \u003d self.url + \"/iscsi_initiator/remove_iscsi_from_host\""},{"line_number":1322,"context_line":"        data \u003d json.dumps({\"TYPE\": \u0027222\u0027,"},{"line_number":1323,"context_line":"                           \"ID\": initiator})"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_efb7adf6","line":1320,"in_reply_to":"ba3cc151_b9d5f3e5","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"00b94c448bd213778df050fd626c37135cd730b5","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        except Exception as err:"},{"line_number":72,"context_line":"            LOG.error(_LE(\u0027\\nBad response from server: %(url)s.\u0027"},{"line_number":73,"context_line":"                          \u0027 Error: %(err)s\u0027), {\u0027url\u0027: url, \u0027err\u0027: err})"},{"line_number":74,"context_line":"            json_msg \u003d (\u0027{\"error\":{\"code\":-403,\"description\":\u0027"},{"line_number":75,"context_line":"                        \u0027\"Connect server error.\"}}\u0027)"},{"line_number":76,"context_line":"            res_json \u003d json.loads(json_msg)"},{"line_number":77,"context_line":"            return res_json"}],"source_content_type":"text/x-python","patch_set":23,"id":"ba3cc151_ccdaec4b","line":74,"updated":"2015-07-10 09:06:43.000000000","message":"For the error code -403, it\u0027s better to use \"ERROR_CONNECT_TO_SERVER\".","commit_id":"8bd6852d184ee177ca5039b0e9c22dccf0a437b9"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"c9719c61c7a0bd8a07b76366ec233a2ae4bbcbd6","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        except Exception as err:"},{"line_number":72,"context_line":"            LOG.error(_LE(\u0027\\nBad response from server: %(url)s.\u0027"},{"line_number":73,"context_line":"                          \u0027 Error: %(err)s\u0027), {\u0027url\u0027: url, \u0027err\u0027: err})"},{"line_number":74,"context_line":"            json_msg \u003d (\u0027{\"error\":{\"code\":-403,\"description\":\u0027"},{"line_number":75,"context_line":"                        \u0027\"Connect server error.\"}}\u0027)"},{"line_number":76,"context_line":"            res_json \u003d json.loads(json_msg)"},{"line_number":77,"context_line":"            return res_json"}],"source_content_type":"text/x-python","patch_set":23,"id":"9a41bdd9_33aae01a","line":74,"in_reply_to":"ba3cc151_ccdaec4b","updated":"2015-07-11 03:03:59.000000000","message":"Done","commit_id":"8bd6852d184ee177ca5039b0e9c22dccf0a437b9"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"66d403c832633c3aafaaae9ed621a98198dbbb1e","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        error_code \u003d result[\u0027error\u0027][\u0027code\u0027]"},{"line_number":119,"context_line":"        if (error_code \u003d\u003d constants.ERROR_CONNECT_TO_SERVER or"},{"line_number":120,"context_line":"           error_code \u003d\u003d constants.ERROR_UNAUTHORIZED_TO_SERVER):"},{"line_number":121,"context_line":"            LOG.error(_LE(\"Can\u0027t open the recent url, relogin.\"))"},{"line_number":122,"context_line":"            self.login()"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        if error_code !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":23,"id":"ba3cc151_9f9e33b7","line":121,"updated":"2015-07-10 14:53:46.000000000","message":"Or just say: \"Can\u0027t open the recent url, please login again.\"","commit_id":"8bd6852d184ee177ca5039b0e9c22dccf0a437b9"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"00b94c448bd213778df050fd626c37135cd730b5","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        error_code \u003d result[\u0027error\u0027][\u0027code\u0027]"},{"line_number":119,"context_line":"        if (error_code \u003d\u003d constants.ERROR_CONNECT_TO_SERVER or"},{"line_number":120,"context_line":"           error_code \u003d\u003d constants.ERROR_UNAUTHORIZED_TO_SERVER):"},{"line_number":121,"context_line":"            LOG.error(_LE(\"Can\u0027t open the recent url, relogin.\"))"},{"line_number":122,"context_line":"            self.login()"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        if error_code !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":23,"id":"ba3cc151_0c869416","line":121,"updated":"2015-07-10 09:06:43.000000000","message":"relogin -\u003e re-login","commit_id":"8bd6852d184ee177ca5039b0e9c22dccf0a437b9"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"c9719c61c7a0bd8a07b76366ec233a2ae4bbcbd6","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        error_code \u003d result[\u0027error\u0027][\u0027code\u0027]"},{"line_number":119,"context_line":"        if (error_code \u003d\u003d constants.ERROR_CONNECT_TO_SERVER or"},{"line_number":120,"context_line":"           error_code \u003d\u003d constants.ERROR_UNAUTHORIZED_TO_SERVER):"},{"line_number":121,"context_line":"            LOG.error(_LE(\"Can\u0027t open the recent url, relogin.\"))"},{"line_number":122,"context_line":"            self.login()"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        if error_code !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":23,"id":"9a41bdd9_1368fcf4","line":121,"in_reply_to":"ba3cc151_0c869416","updated":"2015-07-11 03:03:59.000000000","message":"Done","commit_id":"8bd6852d184ee177ca5039b0e9c22dccf0a437b9"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"c9719c61c7a0bd8a07b76366ec233a2ae4bbcbd6","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        error_code \u003d result[\u0027error\u0027][\u0027code\u0027]"},{"line_number":119,"context_line":"        if (error_code \u003d\u003d constants.ERROR_CONNECT_TO_SERVER or"},{"line_number":120,"context_line":"           error_code \u003d\u003d constants.ERROR_UNAUTHORIZED_TO_SERVER):"},{"line_number":121,"context_line":"            LOG.error(_LE(\"Can\u0027t open the recent url, relogin.\"))"},{"line_number":122,"context_line":"            self.login()"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        if error_code !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":23,"id":"9a41bdd9_b36cb009","line":121,"in_reply_to":"ba3cc151_9f9e33b7","updated":"2015-07-11 03:03:59.000000000","message":"Done","commit_id":"8bd6852d184ee177ca5039b0e9c22dccf0a437b9"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"66d403c832633c3aafaaae9ed621a98198dbbb1e","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        if (error_code \u003d\u003d constants.ERROR_CONNECT_TO_SERVER or"},{"line_number":155,"context_line":"           error_code \u003d\u003d constants.ERROR_UNAUTHORIZED_TO_SERVER):"},{"line_number":156,"context_line":"            LOG.error(_LE(\"Can\u0027t open the url, re-login.\"))"},{"line_number":157,"context_line":"            self.login()"},{"line_number":158,"context_line":"            result \u003d self.call(url, data, \"GET\")"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"ba3cc151_1f9223a0","line":156,"updated":"2015-07-10 14:53:46.000000000","message":"Suggest: \"Can\u0027t open the recent url, please login again.\"","commit_id":"8bd6852d184ee177ca5039b0e9c22dccf0a437b9"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"c9719c61c7a0bd8a07b76366ec233a2ae4bbcbd6","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        if (error_code \u003d\u003d constants.ERROR_CONNECT_TO_SERVER or"},{"line_number":155,"context_line":"           error_code \u003d\u003d constants.ERROR_UNAUTHORIZED_TO_SERVER):"},{"line_number":156,"context_line":"            LOG.error(_LE(\"Can\u0027t open the url, re-login.\"))"},{"line_number":157,"context_line":"            self.login()"},{"line_number":158,"context_line":"            result \u003d self.call(url, data, \"GET\")"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"9a41bdd9_d37134e2","line":156,"in_reply_to":"ba3cc151_1f9223a0","updated":"2015-07-11 03:03:59.000000000","message":"Done","commit_id":"8bd6852d184ee177ca5039b0e9c22dccf0a437b9"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"00b94c448bd213778df050fd626c37135cd730b5","unresolved":false,"context_lines":[{"line_number":767,"context_line":"        data \u003d json.dumps({\"TYPE\": \"245\"})"},{"line_number":768,"context_line":"        result \u003d self.call(url, data, \"GET\")"},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"        msg \u003d \u0027Find map view error.\u0027"},{"line_number":771,"context_line":"        self._assert_rest_result(result, msg)"},{"line_number":772,"context_line":"        viewid \u003d None"},{"line_number":773,"context_line":"        if \"data\" in result:"}],"source_content_type":"text/x-python","patch_set":23,"id":"ba3cc151_6ca5e045","line":770,"updated":"2015-07-10 09:06:43.000000000","message":"map view -\u003e mapping view","commit_id":"8bd6852d184ee177ca5039b0e9c22dccf0a437b9"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"c9719c61c7a0bd8a07b76366ec233a2ae4bbcbd6","unresolved":false,"context_lines":[{"line_number":767,"context_line":"        data \u003d json.dumps({\"TYPE\": \"245\"})"},{"line_number":768,"context_line":"        result \u003d self.call(url, data, \"GET\")"},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"        msg \u003d \u0027Find map view error.\u0027"},{"line_number":771,"context_line":"        self._assert_rest_result(result, msg)"},{"line_number":772,"context_line":"        viewid \u003d None"},{"line_number":773,"context_line":"        if \"data\" in result:"}],"source_content_type":"text/x-python","patch_set":23,"id":"9a41bdd9_33818090","line":770,"in_reply_to":"ba3cc151_6ca5e045","updated":"2015-07-11 03:03:59.000000000","message":"Done","commit_id":"8bd6852d184ee177ca5039b0e9c22dccf0a437b9"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"00b94c448bd213778df050fd626c37135cd730b5","unresolved":false,"context_lines":[{"line_number":782,"context_line":"        url \u003d self.url + \"/mappingview\""},{"line_number":783,"context_line":"        data \u003d json.dumps({\"NAME\": name, \"TYPE\": \"245\"})"},{"line_number":784,"context_line":"        result \u003d self.call(url, data)"},{"line_number":785,"context_line":"        self._assert_rest_result(result, \u0027Add map view error.\u0027)"},{"line_number":786,"context_line":""},{"line_number":787,"context_line":"        return result[\u0027data\u0027][\u0027ID\u0027]"},{"line_number":788,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"ba3cc151_2cbfd861","line":785,"updated":"2015-07-10 09:06:43.000000000","message":"map -\u003e mapping","commit_id":"8bd6852d184ee177ca5039b0e9c22dccf0a437b9"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"c9719c61c7a0bd8a07b76366ec233a2ae4bbcbd6","unresolved":false,"context_lines":[{"line_number":782,"context_line":"        url \u003d self.url + \"/mappingview\""},{"line_number":783,"context_line":"        data \u003d json.dumps({\"NAME\": name, \"TYPE\": \"245\"})"},{"line_number":784,"context_line":"        result \u003d self.call(url, data)"},{"line_number":785,"context_line":"        self._assert_rest_result(result, \u0027Add map view error.\u0027)"},{"line_number":786,"context_line":""},{"line_number":787,"context_line":"        return result[\u0027data\u0027][\u0027ID\u0027]"},{"line_number":788,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"9a41bdd9_537e84af","line":785,"in_reply_to":"ba3cc151_2cbfd861","updated":"2015-07-11 03:03:59.000000000","message":"Done","commit_id":"8bd6852d184ee177ca5039b0e9c22dccf0a437b9"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"00b94c448bd213778df050fd626c37135cd730b5","unresolved":false,"context_lines":[{"line_number":838,"context_line":"        \"\"\"Remove mapping view from the storage.\"\"\""},{"line_number":839,"context_line":"        url \u003d self.url + \"/mappingview/\" + view_id"},{"line_number":840,"context_line":"        result \u003d self.call(url, None, \"DELETE\")"},{"line_number":841,"context_line":"        self._assert_rest_result(result, \u0027Delete map view error.\u0027)"},{"line_number":842,"context_line":""},{"line_number":843,"context_line":"    def get_lunnum_from_lungroup(self, lungroup_id):"},{"line_number":844,"context_line":"        \"\"\"Check if there are still other luns associated to the lungroup.\"\"\""}],"source_content_type":"text/x-python","patch_set":23,"id":"ba3cc151_0c169458","line":841,"updated":"2015-07-10 09:06:43.000000000","message":"map view -\u003e mapping view","commit_id":"8bd6852d184ee177ca5039b0e9c22dccf0a437b9"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"c9719c61c7a0bd8a07b76366ec233a2ae4bbcbd6","unresolved":false,"context_lines":[{"line_number":838,"context_line":"        \"\"\"Remove mapping view from the storage.\"\"\""},{"line_number":839,"context_line":"        url \u003d self.url + \"/mappingview/\" + view_id"},{"line_number":840,"context_line":"        result \u003d self.call(url, None, \"DELETE\")"},{"line_number":841,"context_line":"        self._assert_rest_result(result, \u0027Delete map view error.\u0027)"},{"line_number":842,"context_line":""},{"line_number":843,"context_line":"    def get_lunnum_from_lungroup(self, lungroup_id):"},{"line_number":844,"context_line":"        \"\"\"Check if there are still other luns associated to the lungroup.\"\"\""}],"source_content_type":"text/x-python","patch_set":23,"id":"9a41bdd9_f349d88f","line":841,"in_reply_to":"ba3cc151_0c169458","updated":"2015-07-11 03:03:59.000000000","message":"Done","commit_id":"8bd6852d184ee177ca5039b0e9c22dccf0a437b9"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"00b94c448bd213778df050fd626c37135cd730b5","unresolved":false,"context_lines":[{"line_number":887,"context_line":"        url \u003d self.url + \"/LUNCOPY/start\""},{"line_number":888,"context_line":"        data \u003d json.dumps({\"TYPE\": \"219\", \"ID\": luncopyid})"},{"line_number":889,"context_line":"        result \u003d self.call(url, data, \"PUT\")"},{"line_number":890,"context_line":"        self._assert_rest_result(result, \u0027Start lun copy error.\u0027)"},{"line_number":891,"context_line":""},{"line_number":892,"context_line":"    def _get_capacity(self):"},{"line_number":893,"context_line":"        \"\"\"Get free capacity and total capacity of the pool.\"\"\""}],"source_content_type":"text/x-python","patch_set":23,"id":"ba3cc151_5202f20a","line":890,"updated":"2015-07-10 09:06:43.000000000","message":"lun copy -\u003e LUNcopy, keep consistent.","commit_id":"8bd6852d184ee177ca5039b0e9c22dccf0a437b9"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"c9719c61c7a0bd8a07b76366ec233a2ae4bbcbd6","unresolved":false,"context_lines":[{"line_number":887,"context_line":"        url \u003d self.url + \"/LUNCOPY/start\""},{"line_number":888,"context_line":"        data \u003d json.dumps({\"TYPE\": \"219\", \"ID\": luncopyid})"},{"line_number":889,"context_line":"        result \u003d self.call(url, data, \"PUT\")"},{"line_number":890,"context_line":"        self._assert_rest_result(result, \u0027Start lun copy error.\u0027)"},{"line_number":891,"context_line":""},{"line_number":892,"context_line":"    def _get_capacity(self):"},{"line_number":893,"context_line":"        \"\"\"Get free capacity and total capacity of the pool.\"\"\""}],"source_content_type":"text/x-python","patch_set":23,"id":"9a41bdd9_532c44ab","line":890,"in_reply_to":"ba3cc151_5202f20a","updated":"2015-07-11 03:03:59.000000000","message":"Done","commit_id":"8bd6852d184ee177ca5039b0e9c22dccf0a437b9"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"00b94c448bd213778df050fd626c37135cd730b5","unresolved":false,"context_lines":[{"line_number":1079,"context_line":"                          \"\u0026ASSOCIATEOBJID\u003d%s\" % portgroup_id)"},{"line_number":1080,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":1081,"context_line":""},{"line_number":1082,"context_line":"        msg \u003d \u0027Get eth_port error.\u0027"},{"line_number":1083,"context_line":"        self._assert_rest_result(result, msg)"},{"line_number":1084,"context_line":"        self._assert_data_in_result(result, msg)"},{"line_number":1085,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"ba3cc151_72b7f63a","line":1082,"updated":"2015-07-10 09:06:43.000000000","message":"eth_port -\u003e target ip","commit_id":"8bd6852d184ee177ca5039b0e9c22dccf0a437b9"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"c9719c61c7a0bd8a07b76366ec233a2ae4bbcbd6","unresolved":false,"context_lines":[{"line_number":1079,"context_line":"                          \"\u0026ASSOCIATEOBJID\u003d%s\" % portgroup_id)"},{"line_number":1080,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":1081,"context_line":""},{"line_number":1082,"context_line":"        msg \u003d \u0027Get eth_port error.\u0027"},{"line_number":1083,"context_line":"        self._assert_rest_result(result, msg)"},{"line_number":1084,"context_line":"        self._assert_data_in_result(result, msg)"},{"line_number":1085,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"9a41bdd9_534be4b0","line":1082,"in_reply_to":"ba3cc151_72b7f63a","updated":"2015-07-11 03:03:59.000000000","message":"Done","commit_id":"8bd6852d184ee177ca5039b0e9c22dccf0a437b9"}],"cinder/volume/manager.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"adef92be66051d1d4c6251192ed852985a659c5e","unresolved":false,"context_lines":[{"line_number":609,"context_line":"                self.stats[\u0027pools\u0027][pool][\u0027allocated_capacity_gb\u0027] -\u003d size"},{"line_number":610,"context_line":"            except KeyError:"},{"line_number":611,"context_line":"                self.stats[\u0027pools\u0027][pool] \u003d dict("},{"line_number":612,"context_line":"                    allocated_capacity_gb\u003d -size)"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"            self.publish_service_capabilities(context)"},{"line_number":615,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_ba2f33a0","line":612,"updated":"2015-07-07 19:17:31.000000000","message":"Is this styling right?  It usually needs space on both sides of \u003d.","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1c9e2834b33ba4f6023b63d39488c675c789c677","unresolved":false,"context_lines":[{"line_number":609,"context_line":"                self.stats[\u0027pools\u0027][pool][\u0027allocated_capacity_gb\u0027] -\u003d size"},{"line_number":610,"context_line":"            except KeyError:"},{"line_number":611,"context_line":"                self.stats[\u0027pools\u0027][pool] \u003d dict("},{"line_number":612,"context_line":"                    allocated_capacity_gb\u003d -size)"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"            self.publish_service_capabilities(context)"},{"line_number":615,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_b4ad7886","line":612,"in_reply_to":"ba3cc151_ba2f33a0","updated":"2015-07-10 04:29:27.000000000","message":"Done","commit_id":"a05fd69c0954b496018b1950d521658459a6e6c6"}]}
