)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"fd0c397cc84ba1aa2b9ebbfbaf558d1fabc06769","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     zhangchao010 \u003czhangchao010@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-02-04 14:29:30 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add HUAWEI volume driver in Cinder"},{"line_number":8,"context_line":"This is an iSCSI driver.It supports HUAWEI OceanStor T and Dorado series storage systems."},{"line_number":9,"context_line":"The driver communicates with storage systems based on SSH.It uses a python module named pexpect to run SSH."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAM3%2F%2FMGc%3D","line":7,"updated":"2013-02-04 12:15:16.000000000","message":"See the following link for instructions on how to format your commit message.  Please don\u0027t forget to reference the blueprint, as shown in the link:\n\nhttp://wiki.openstack.org/GerritWorkflow","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     zhangchao010 \u003czhangchao010@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-02-04 14:29:30 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add HUAWEI volume driver in Cinder"},{"line_number":8,"context_line":"This is an iSCSI driver.It supports HUAWEI OceanStor T and Dorado series storage systems."},{"line_number":9,"context_line":"The driver communicates with storage systems based on SSH.It uses a python module named pexpect to run SSH."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAM3%2F%2FGXw%3D","line":7,"in_reply_to":"AAAAM3%2F%2FMGc%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is an iSCSI driver.It supports HUAWEI OceanStor T and Dorado series storage systems."},{"line_number":10,"context_line":"The driver communicates with storage systems based on SSH.It uses a python module named pexpect to run SSH."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ib3fd8ff636106e751789f6367a5b57bdaab316f4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAAM3%2F%2FGIc%3D","line":11,"updated":"2013-02-07 11:03:14.000000000","message":"Again, please see the following link for instructions on how to format your commit message. Please don\u0027t forget to reference the blueprint, as shown in the link:\n\nhttp://wiki.openstack.org/GerritWorkflow","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is an iSCSI driver.It supports HUAWEI OceanStor T and Dorado series storage systems."},{"line_number":10,"context_line":"The driver communicates with storage systems based on SSH.It uses a python module named pexpect to run SSH."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ib3fd8ff636106e751789f6367a5b57bdaab316f4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAAM3%2F%2FF0M%3D","line":11,"in_reply_to":"AAAAM3%2F%2FGIc%3D","updated":"2013-02-14 21:35:51.000000000","message":"Add \r\nImplements: blueprint huawei-volume-driver","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add HUAWEI volume driver in Cinder"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is an iSCSI driver.It supports HUAWEI OceanStor T and Dorado series storage systems."},{"line_number":10,"context_line":"The driver communicates with storage systems based on SSH."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Implements: blueprint huawei-volume-driver"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAM3%2F%2B0wA%3D","line":9,"updated":"2013-02-18 14:37:27.000000000","message":"These lines should be wrapped at 72 characters.\n\nSee:\nhttps://github.com/openstack/cinder/blob/master/HACKING.rst","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add HUAWEI volume driver in Cinder"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is an iSCSI driver.It supports HUAWEI OceanStor T and Dorado series storage systems."},{"line_number":10,"context_line":"The driver communicates with storage systems based on SSH."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Implements: blueprint huawei-volume-driver"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAM3%2F%2Bz8c%3D","line":9,"in_reply_to":"AAAAM3%2F%2B0wA%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"}],"cinder/tests/test_huawei.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python\r"},{"line_number":2,"context_line":"\"\"\"\r"},{"line_number":3,"context_line":"Test for huawei volume driver.\r"},{"line_number":4,"context_line":"\"\"\"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKdw%3D","line":1,"updated":"2013-02-05 06:51:46.000000000","message":"Need copyright/license header like other files.","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python\r"},{"line_number":2,"context_line":"\"\"\"\r"},{"line_number":3,"context_line":"Test for huawei volume driver.\r"},{"line_number":4,"context_line":"\"\"\"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGX4%3D","line":1,"in_reply_to":"AAAAM3%2F%2FKdw%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":190,"context_line":"    def setUp(self):"},{"line_number":191,"context_line":"        super(HuaweiVolumeTestCase, self).setUp()"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    def runTest(self):"},{"line_number":194,"context_line":"        pass"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def test_create_export_faild(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B06I%3D","line":193,"updated":"2013-02-18 14:37:27.000000000","message":"Not necessary to override runTest()","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":190,"context_line":"    def setUp(self):"},{"line_number":191,"context_line":"        super(HuaweiVolumeTestCase, self).setUp()"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    def runTest(self):"},{"line_number":194,"context_line":"        pass"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def test_create_export_faild(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2Bz8s%3D","line":193,"in_reply_to":"AAAAM3%2F%2B06I%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":193,"context_line":"    def runTest(self):"},{"line_number":194,"context_line":"        pass"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def test_create_export_faild(self):"},{"line_number":197,"context_line":"        try:"},{"line_number":198,"context_line":"            self._test_create_export()"},{"line_number":199,"context_line":"        except Exception as err:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B06E%3D","line":196,"updated":"2013-02-18 14:37:27.000000000","message":"faild -\u003e failed","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":193,"context_line":"    def runTest(self):"},{"line_number":194,"context_line":"        pass"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def test_create_export_faild(self):"},{"line_number":197,"context_line":"        try:"},{"line_number":198,"context_line":"            self._test_create_export()"},{"line_number":199,"context_line":"        except Exception as err:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B0H4%3D","line":196,"in_reply_to":"AAAAM3%2F%2B06E%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        pass"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def test_create_export_faild(self):"},{"line_number":197,"context_line":"        try:"},{"line_number":198,"context_line":"            self._test_create_export()"},{"line_number":199,"context_line":"        except Exception as err:"},{"line_number":200,"context_line":"            if str(err).find(\u0027does not exist\u0027) \u003e -1:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B05w%3D","line":197,"updated":"2013-02-18 14:37:27.000000000","message":"I think these tests are unclear.  For example, this test can pass if _test_create_export() succeeds, or if it fails with \u0027does not exist\u0027.  According to the function name, it should fail.  Therefore, I recommend using assertRaises().  Same comment for all of the try-except-pass tests throughout.","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        pass"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def test_create_export_faild(self):"},{"line_number":197,"context_line":"        try:"},{"line_number":198,"context_line":"            self._test_create_export()"},{"line_number":199,"context_line":"        except Exception as err:"},{"line_number":200,"context_line":"            if str(err).find(\u0027does not exist\u0027) \u003e -1:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2Bz8w%3D","line":197,"in_reply_to":"AAAAM3%2F%2B05w%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":349,"context_line":""},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"class FakeHuaweiStorage(HuaweiISCSIDriver):"},{"line_number":352,"context_line":"    \"\"\"Fake Huawei Storage, Rewrite some methods of HuaweiISCSIDriver\"\"\""},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":355,"context_line":"        super(FakeHuaweiStorage, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B08I%3D","line":352,"updated":"2013-02-18 14:37:27.000000000","message":"one line docstring needs a period","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":349,"context_line":""},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"class FakeHuaweiStorage(HuaweiISCSIDriver):"},{"line_number":352,"context_line":"    \"\"\"Fake Huawei Storage, Rewrite some methods of HuaweiISCSIDriver\"\"\""},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":355,"context_line":"        super(FakeHuaweiStorage, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B0H0%3D","line":352,"in_reply_to":"AAAAM3%2F%2B08I%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":413,"context_line":"            MapInfo[\u0027DEV LUN ID\u0027] \u003d LUNInfo[\u0027ID\u0027]"},{"line_number":414,"context_line":"            MapInfo[\u0027LUN WWN\u0027] \u003d LUNInfo[\u0027LUN WWN\u0027]"},{"line_number":415,"context_line":"            MapInfo[\u0027Host LUN ID\u0027] \u003d \u00270\u0027"},{"line_number":416,"context_line":"            out \u003d \"\"\"command operates successfully\"\"\""},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"        elif cmd \u003d\u003d \u0027showhostmap\u0027:"},{"line_number":419,"context_line":"            if MapInfo[\u0027DEV LUN ID\u0027] \u003d\u003d None:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B06g%3D","line":416,"updated":"2013-02-18 14:37:27.000000000","message":"Use regular quotes for shorter strings for all instances","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":413,"context_line":"            MapInfo[\u0027DEV LUN ID\u0027] \u003d LUNInfo[\u0027ID\u0027]"},{"line_number":414,"context_line":"            MapInfo[\u0027LUN WWN\u0027] \u003d LUNInfo[\u0027LUN WWN\u0027]"},{"line_number":415,"context_line":"            MapInfo[\u0027Host LUN ID\u0027] \u003d \u00270\u0027"},{"line_number":416,"context_line":"            out \u003d \"\"\"command operates successfully\"\"\""},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"        elif cmd \u003d\u003d \u0027showhostmap\u0027:"},{"line_number":419,"context_line":"            if MapInfo[\u0027DEV LUN ID\u0027] \u003d\u003d None:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2Bz8g%3D","line":416,"in_reply_to":"AAAAM3%2F%2B06g%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":416,"context_line":"            out \u003d \"\"\"command operates successfully\"\"\""},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"        elif cmd \u003d\u003d \u0027showhostmap\u0027:"},{"line_number":419,"context_line":"            if MapInfo[\u0027DEV LUN ID\u0027] \u003d\u003d None:"},{"line_number":420,"context_line":"                out \u003d \"\"\"command operates successfully, but no information.\"\"\""},{"line_number":421,"context_line":"            else:"},{"line_number":422,"context_line":"                out \u003d \"\"\"/\u003eshowhostmap"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B078%3D","line":419,"updated":"2013-02-18 14:37:27.000000000","message":"Should be:\n\nif cond is None:","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":416,"context_line":"            out \u003d \"\"\"command operates successfully\"\"\""},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"        elif cmd \u003d\u003d \u0027showhostmap\u0027:"},{"line_number":419,"context_line":"            if MapInfo[\u0027DEV LUN ID\u0027] \u003d\u003d None:"},{"line_number":420,"context_line":"                out \u003d \"\"\"command operates successfully, but no information.\"\"\""},{"line_number":421,"context_line":"            else:"},{"line_number":422,"context_line":"                out \u003d \"\"\"/\u003eshowhostmap"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2Bz8k%3D","line":419,"in_reply_to":"AAAAM3%2F%2B078%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":463,"context_line":"            out \u003d \"\"\"command operates successfully\"\"\""},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"        elif cmd \u003d\u003d \u0027showsnapshot\u0027:"},{"line_number":466,"context_line":"            if SnapshotInfo[\u0027ID\u0027] \u003d\u003d None:"},{"line_number":467,"context_line":"                out \u003d \"\"\"command operates successfully, but no information.\"\"\""},{"line_number":468,"context_line":"            else:"},{"line_number":469,"context_line":"                out \u003d \"\"\"/\u003eshowsnapshot"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B074%3D","line":466,"updated":"2013-02-18 14:37:27.000000000","message":"Should be:\n\nif cond is None:","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":463,"context_line":"            out \u003d \"\"\"command operates successfully\"\"\""},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"        elif cmd \u003d\u003d \u0027showsnapshot\u0027:"},{"line_number":466,"context_line":"            if SnapshotInfo[\u0027ID\u0027] \u003d\u003d None:"},{"line_number":467,"context_line":"                out \u003d \"\"\"command operates successfully, but no information.\"\"\""},{"line_number":468,"context_line":"            else:"},{"line_number":469,"context_line":"                out \u003d \"\"\"/\u003eshowsnapshot"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B0Hk%3D","line":466,"in_reply_to":"AAAAM3%2F%2B074%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":477,"context_line":"\"\"\" % (SnapshotInfo[\u0027Name\u0027], SnapshotInfo[\u0027ID\u0027], SnapshotInfo[\u0027Status\u0027])"},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"        elif cmd \u003d\u003d \u0027showlunsnapshot\u0027:"},{"line_number":480,"context_line":"            if SnapshotInfo[\u0027ID\u0027] \u003d\u003d None:"},{"line_number":481,"context_line":"                out \u003d \"\"\"Current LUN is not a source LUN\"\"\""},{"line_number":482,"context_line":"            else:"},{"line_number":483,"context_line":"                out \u003d \"\"\"/\u003eshowlunsnapshot -lun 2"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B070%3D","line":480,"updated":"2013-02-18 14:37:27.000000000","message":"Should be:\n\nif cond is None:","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":477,"context_line":"\"\"\" % (SnapshotInfo[\u0027Name\u0027], SnapshotInfo[\u0027ID\u0027], SnapshotInfo[\u0027Status\u0027])"},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"        elif cmd \u003d\u003d \u0027showlunsnapshot\u0027:"},{"line_number":480,"context_line":"            if SnapshotInfo[\u0027ID\u0027] \u003d\u003d None:"},{"line_number":481,"context_line":"                out \u003d \"\"\"Current LUN is not a source LUN\"\"\""},{"line_number":482,"context_line":"            else:"},{"line_number":483,"context_line":"                out \u003d \"\"\"/\u003eshowlunsnapshot -lun 2"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B0Hg%3D","line":480,"in_reply_to":"AAAAM3%2F%2B070%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":491,"context_line":"\"\"\" % (SnapshotInfo[\u0027Name\u0027], SnapshotInfo[\u0027ID\u0027], SnapshotInfo[\u0027Status\u0027])"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"        elif cmd \u003d\u003d \u0027createlun\u0027:"},{"line_number":494,"context_line":"            if LUNInfo[\u0027ID\u0027] \u003d\u003d None:"},{"line_number":495,"context_line":"                LUNInfo[\u0027Name\u0027] \u003d self._name_translate(FakeVolume[\u0027name\u0027])"},{"line_number":496,"context_line":"                LUNInfo[\u0027ID\u0027] \u003d FakeVolume[\u0027id\u0027]"},{"line_number":497,"context_line":"                LUNInfo[\u0027Size\u0027] \u003d FakeVolume[\u0027size\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B07w%3D","line":494,"updated":"2013-02-18 14:37:27.000000000","message":"Should be:\n\nif cond is None:","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":491,"context_line":"\"\"\" % (SnapshotInfo[\u0027Name\u0027], SnapshotInfo[\u0027ID\u0027], SnapshotInfo[\u0027Status\u0027])"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"        elif cmd \u003d\u003d \u0027createlun\u0027:"},{"line_number":494,"context_line":"            if LUNInfo[\u0027ID\u0027] \u003d\u003d None:"},{"line_number":495,"context_line":"                LUNInfo[\u0027Name\u0027] \u003d self._name_translate(FakeVolume[\u0027name\u0027])"},{"line_number":496,"context_line":"                LUNInfo[\u0027ID\u0027] \u003d FakeVolume[\u0027id\u0027]"},{"line_number":497,"context_line":"                LUNInfo[\u0027Size\u0027] \u003d FakeVolume[\u0027size\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B0HY%3D","line":494,"in_reply_to":"AAAAM3%2F%2B07w%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":521,"context_line":"            out \u003d \"\"\"command operates successfully\"\"\""},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"        elif cmd \u003d\u003d \u0027showlun\u0027:"},{"line_number":524,"context_line":"            if LUNInfo[\u0027ID\u0027] \u003d\u003d None:"},{"line_number":525,"context_line":"                out \u003d \"\"\"command operates successfully, but no information.\"\"\""},{"line_number":526,"context_line":"            elif LUNInfoCopy[\u0027ID\u0027] \u003d\u003d None:"},{"line_number":527,"context_line":"                if self.device_type_flg \u003d\u003d 1:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B07s%3D","line":524,"updated":"2013-02-18 14:37:27.000000000","message":"Should be:\n\nif cond is None:","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":521,"context_line":"            out \u003d \"\"\"command operates successfully\"\"\""},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"        elif cmd \u003d\u003d \u0027showlun\u0027:"},{"line_number":524,"context_line":"            if LUNInfo[\u0027ID\u0027] \u003d\u003d None:"},{"line_number":525,"context_line":"                out \u003d \"\"\"command operates successfully, but no information.\"\"\""},{"line_number":526,"context_line":"            elif LUNInfoCopy[\u0027ID\u0027] \u003d\u003d None:"},{"line_number":527,"context_line":"                if self.device_type_flg \u003d\u003d 1:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B0HU%3D","line":524,"in_reply_to":"AAAAM3%2F%2B07s%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":523,"context_line":"        elif cmd \u003d\u003d \u0027showlun\u0027:"},{"line_number":524,"context_line":"            if LUNInfo[\u0027ID\u0027] \u003d\u003d None:"},{"line_number":525,"context_line":"                out \u003d \"\"\"command operates successfully, but no information.\"\"\""},{"line_number":526,"context_line":"            elif LUNInfoCopy[\u0027ID\u0027] \u003d\u003d None:"},{"line_number":527,"context_line":"                if self.device_type_flg \u003d\u003d 1:"},{"line_number":528,"context_line":"                    out \u003d \"\"\"/\u003eshowlun"},{"line_number":529,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B07o%3D","line":526,"updated":"2013-02-18 14:37:27.000000000","message":"Should be:\n\nif cond is None:","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":523,"context_line":"        elif cmd \u003d\u003d \u0027showlun\u0027:"},{"line_number":524,"context_line":"            if LUNInfo[\u0027ID\u0027] \u003d\u003d None:"},{"line_number":525,"context_line":"                out \u003d \"\"\"command operates successfully, but no information.\"\"\""},{"line_number":526,"context_line":"            elif LUNInfoCopy[\u0027ID\u0027] \u003d\u003d None:"},{"line_number":527,"context_line":"                if self.device_type_flg \u003d\u003d 1:"},{"line_number":528,"context_line":"                    out \u003d \"\"\"/\u003eshowlun"},{"line_number":529,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B0HM%3D","line":526,"in_reply_to":"AAAAM3%2F%2B07o%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":613,"context_line":"            out \u003d \"\"\"command operates successfully\"\"\""},{"line_number":614,"context_line":""},{"line_number":615,"context_line":"        elif cmd \u003d\u003d \u0027showhostgroup\u0027:"},{"line_number":616,"context_line":"            if MapInfo[\u0027Host Group ID\u0027] \u003d\u003d None:"},{"line_number":617,"context_line":"                out \u003d \"\"\"/\u003eshowhostgroup"},{"line_number":618,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":619,"context_line":"                   Host Group Information"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B07k%3D","line":616,"updated":"2013-02-18 14:37:27.000000000","message":"Should be:\n\nif cond is None:","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":613,"context_line":"            out \u003d \"\"\"command operates successfully\"\"\""},{"line_number":614,"context_line":""},{"line_number":615,"context_line":"        elif cmd \u003d\u003d \u0027showhostgroup\u0027:"},{"line_number":616,"context_line":"            if MapInfo[\u0027Host Group ID\u0027] \u003d\u003d None:"},{"line_number":617,"context_line":"                out \u003d \"\"\"/\u003eshowhostgroup"},{"line_number":618,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":619,"context_line":"                   Host Group Information"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B0HI%3D","line":616,"in_reply_to":"AAAAM3%2F%2B07k%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":649,"context_line":"            out \u003d \"\"\"command operates successfully\"\"\""},{"line_number":650,"context_line":""},{"line_number":651,"context_line":"        elif cmd \u003d\u003d \u0027showhost\u0027:"},{"line_number":652,"context_line":"            if MapInfo[\u0027Host ID\u0027] \u003d\u003d None:"},{"line_number":653,"context_line":"                out \u003d \"\"\"command operates successfully, but no information.\"\"\""},{"line_number":654,"context_line":"            else:"},{"line_number":655,"context_line":"                out \u003d \"\"\"/\u003eshowhost"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B07g%3D","line":652,"updated":"2013-02-18 14:37:27.000000000","message":"Should be:\n\nif cond is None:","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":649,"context_line":"            out \u003d \"\"\"command operates successfully\"\"\""},{"line_number":650,"context_line":""},{"line_number":651,"context_line":"        elif cmd \u003d\u003d \u0027showhost\u0027:"},{"line_number":652,"context_line":"            if MapInfo[\u0027Host ID\u0027] \u003d\u003d None:"},{"line_number":653,"context_line":"                out \u003d \"\"\"command operates successfully, but no information.\"\"\""},{"line_number":654,"context_line":"            else:"},{"line_number":655,"context_line":"                out \u003d \"\"\"/\u003eshowhost"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B0HE%3D","line":652,"in_reply_to":"AAAAM3%2F%2B07g%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":683,"context_line":"            out \u003d \"\"\"command operates successfully\"\"\""},{"line_number":684,"context_line":""},{"line_number":685,"context_line":"        elif cmd \u003d\u003d \u0027showluncopy\u0027:"},{"line_number":686,"context_line":"            if LUNCopy[\u0027ID\u0027] \u003d\u003d None:"},{"line_number":687,"context_line":"                out \u003d \"\"\"command operates successfully, but no information.\"\"\""},{"line_number":688,"context_line":"            else:"},{"line_number":689,"context_line":"                out \u003d \"\"\"/\u003eshowluncopy"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B07c%3D","line":686,"updated":"2013-02-18 14:37:27.000000000","message":"Should be:\n\nif cond is None:","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":683,"context_line":"            out \u003d \"\"\"command operates successfully\"\"\""},{"line_number":684,"context_line":""},{"line_number":685,"context_line":"        elif cmd \u003d\u003d \u0027showluncopy\u0027:"},{"line_number":686,"context_line":"            if LUNCopy[\u0027ID\u0027] \u003d\u003d None:"},{"line_number":687,"context_line":"                out \u003d \"\"\"command operates successfully, but no information.\"\"\""},{"line_number":688,"context_line":"            else:"},{"line_number":689,"context_line":"                out \u003d \"\"\"/\u003eshowluncopy"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B0HA%3D","line":686,"in_reply_to":"AAAAM3%2F%2B07c%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":707,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":708,"context_line":"\"\"\" % FakeConfInfo[\u0027TargetIQN-T\u0027]"},{"line_number":709,"context_line":"            elif self.device_type_flg \u003d\u003d 2 or\\"},{"line_number":710,"context_line":"                self.device_type_flg \u003d\u003d 3:"},{"line_number":711,"context_line":"                out \u003d \"\"\"/\u003eshowiscsitgtname"},{"line_number":712,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":713,"context_line":"                                 ISCSI Name"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B07E%3D","line":710,"updated":"2013-02-18 14:37:27.000000000","message":"Instead of the \\ on line 709, use parentheses and proper indentation","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":707,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":708,"context_line":"\"\"\" % FakeConfInfo[\u0027TargetIQN-T\u0027]"},{"line_number":709,"context_line":"            elif self.device_type_flg \u003d\u003d 2 or\\"},{"line_number":710,"context_line":"                self.device_type_flg \u003d\u003d 3:"},{"line_number":711,"context_line":"                out \u003d \"\"\"/\u003eshowiscsitgtname"},{"line_number":712,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":713,"context_line":"                                 ISCSI Name"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B0G4%3D","line":710,"in_reply_to":"AAAAM3%2F%2B07E%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":740,"context_line":"            out \u003d \"\"\"command operates successfully\"\"\""},{"line_number":741,"context_line":""},{"line_number":742,"context_line":"        elif cmd \u003d\u003d \u0027showhostport\u0027:"},{"line_number":743,"context_line":"            if MapInfo[\u0027INI Port ID\u0027] \u003d\u003d None:"},{"line_number":744,"context_line":"                out \u003d \"\"\"command operates successfully, but no information.\"\"\""},{"line_number":745,"context_line":"            else:"},{"line_number":746,"context_line":"                out \u003d \"\"\"/\u003eshowhostport -host 3"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B07U%3D","line":743,"updated":"2013-02-18 14:37:27.000000000","message":"Should be:\n\nif cond is None:","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":740,"context_line":"            out \u003d \"\"\"command operates successfully\"\"\""},{"line_number":741,"context_line":""},{"line_number":742,"context_line":"        elif cmd \u003d\u003d \u0027showhostport\u0027:"},{"line_number":743,"context_line":"            if MapInfo[\u0027INI Port ID\u0027] \u003d\u003d None:"},{"line_number":744,"context_line":"                out \u003d \"\"\"command operates successfully, but no information.\"\"\""},{"line_number":745,"context_line":"            else:"},{"line_number":746,"context_line":"                out \u003d \"\"\"/\u003eshowhostport -host 3"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B0G0%3D","line":743,"in_reply_to":"AAAAM3%2F%2B07U%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":768,"context_line":"            out \u003d \"\"\"command operates successfully\"\"\""},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"        elif cmd \u003d\u003d \u0027showiscsiini\u0027:"},{"line_number":771,"context_line":"            if HostPort[\u0027ID\u0027] \u003d\u003d None:"},{"line_number":772,"context_line":"                out \u003d \"\"\"Error: The parameter is wrong.\"\"\""},{"line_number":773,"context_line":"            else:"},{"line_number":774,"context_line":"                out \u003d \"\"\"/\u003eshowiscsiini -ini iqn.1993-08.org\\"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B07Q%3D","line":771,"updated":"2013-02-18 14:37:27.000000000","message":"Should be:\n\nif cond is None:","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":768,"context_line":"            out \u003d \"\"\"command operates successfully\"\"\""},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"        elif cmd \u003d\u003d \u0027showiscsiini\u0027:"},{"line_number":771,"context_line":"            if HostPort[\u0027ID\u0027] \u003d\u003d None:"},{"line_number":772,"context_line":"                out \u003d \"\"\"Error: The parameter is wrong.\"\"\""},{"line_number":773,"context_line":"            else:"},{"line_number":774,"context_line":"                out \u003d \"\"\"/\u003eshowiscsiini -ini iqn.1993-08.org\\"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B0Gw%3D","line":771,"in_reply_to":"AAAAM3%2F%2B07Q%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"84b6a0c0c0c6fd4a91699a5e0c0007c6c4e9f769","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        self.assertNotEqual(LUNInfoCopy[\"ID\"], None)"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    def _test_create_export(self):"},{"line_number":298,"context_line":"        retval \u003d self.driver.create_export({}, FakeVolume)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"    def _test_initialize_connection_for_T(self):"},{"line_number":301,"context_line":"        connection_data \u003d self.driver.initialize_connection(FakeVolume,"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAM3%2F%2BvIE%3D","line":298,"updated":"2013-02-20 10:10:24.000000000","message":"retval is never used.","commit_id":"f8d07259f14620021b66d53536731caa96963f16"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"84b6a0c0c0c6fd4a91699a5e0c0007c6c4e9f769","unresolved":false,"context_lines":[{"line_number":324,"context_line":"                         FakeConnector[\u0027initiator\u0027])"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"    def _test_terminate_connection(self):"},{"line_number":327,"context_line":"        connection_data \u003d self.driver.terminate_connection(FakeVolume,"},{"line_number":328,"context_line":"                                                           FakeConnector)"},{"line_number":329,"context_line":"        self.assertEqual(MapInfo[\"DEV LUN ID\"], None)"},{"line_number":330,"context_line":"        self.assertEqual(MapInfo[\"Host LUN ID\"], None)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAM3%2F%2BvIA%3D","line":327,"updated":"2013-02-20 10:10:24.000000000","message":"connection_data is never used.","commit_id":"f8d07259f14620021b66d53536731caa96963f16"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"84b6a0c0c0c6fd4a91699a5e0c0007c6c4e9f769","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        cmd \u003d cmdIn.split(\u0027 \u0027)[0].lower()"},{"line_number":349,"context_line":"        if cmd \u003d\u003d \u0027showsys\u0027:"},{"line_number":350,"context_line":"            if (self._test_flg \u003d\u003d \u0027check_for_abnormal\u0027 or"},{"line_number":351,"context_line":"                self._test_flg \u003d\u003d \u0027check_for_T\u0027):"},{"line_number":352,"context_line":"                out \u003d \"\"\"/\u003eshowsys"},{"line_number":353,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":354,"context_line":"                                System Information"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAM3%2F%2BvH8%3D","line":351,"updated":"2013-02-20 10:10:24.000000000","message":"continuation line does not distinguish itself from next line.","commit_id":"f8d07259f14620021b66d53536731caa96963f16"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"84b6a0c0c0c6fd4a91699a5e0c0007c6c4e9f769","unresolved":false,"context_lines":[{"line_number":506,"context_line":"                out \u003d \u0027command operates successfully, but no information.\u0027"},{"line_number":507,"context_line":"            elif LUNInfoCopy[\u0027ID\u0027] is None:"},{"line_number":508,"context_line":"                if (self._test_flg \u003d\u003d \u0027check_for_abnormal\u0027 or"},{"line_number":509,"context_line":"                    self._test_flg \u003d\u003d \u0027check_for_T\u0027):"},{"line_number":510,"context_line":"                    out \u003d \"\"\"/\u003eshowlun"},{"line_number":511,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":512,"context_line":"                           LUN Information"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAM3%2F%2BvH4%3D","line":509,"updated":"2013-02-20 10:10:24.000000000","message":"continuation line does not distinguish itself from next line.","commit_id":"f8d07259f14620021b66d53536731caa96963f16"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"84b6a0c0c0c6fd4a91699a5e0c0007c6c4e9f769","unresolved":false,"context_lines":[{"line_number":544,"context_line":"       LUNInfo[\u0027Name\u0027])"},{"line_number":545,"context_line":"            else:"},{"line_number":546,"context_line":"                if (self._test_flg \u003d\u003d \u0027check_for_abnormal\u0027 or"},{"line_number":547,"context_line":"                    self._test_flg \u003d\u003d \u0027check_for_T\u0027):"},{"line_number":548,"context_line":"                    out \u003d \"\"\"/\u003eshowlun"},{"line_number":549,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":550,"context_line":"                               LUN Information"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAM3%2F%2BvH0%3D","line":547,"updated":"2013-02-20 10:10:24.000000000","message":"continuation line does not distinguish itself from next line.","commit_id":"f8d07259f14620021b66d53536731caa96963f16"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"84b6a0c0c0c6fd4a91699a5e0c0007c6c4e9f769","unresolved":false,"context_lines":[{"line_number":682,"context_line":""},{"line_number":683,"context_line":"        elif cmd \u003d\u003d \u0027showiscsitgtname\u0027:"},{"line_number":684,"context_line":"            if (self._test_flg \u003d\u003d \u0027check_for_abnormal\u0027 or"},{"line_number":685,"context_line":"                self._test_flg \u003d\u003d \u0027check_for_T\u0027):"},{"line_number":686,"context_line":"                out \u003d \"\"\"/\u003eshowiscsitgtname"},{"line_number":687,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":688,"context_line":"                                 ISCSI Name"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAM3%2F%2BvHw%3D","line":685,"updated":"2013-02-20 10:10:24.000000000","message":"continuation line does not distinguish itself from next line.","commit_id":"f8d07259f14620021b66d53536731caa96963f16"}],"cinder/volume/drivers/huawei.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python\r"},{"line_number":2,"context_line":"\"\"\"\r"},{"line_number":3,"context_line":"Volume driver for HUAWEI T series and Dorado storage systems.\r"},{"line_number":4,"context_line":"\"\"\"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKd0%3D","line":1,"updated":"2013-02-05 06:51:46.000000000","message":"Need copyright/license header like other files.","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python\r"},{"line_number":2,"context_line":"\"\"\"\r"},{"line_number":3,"context_line":"Volume driver for HUAWEI T series and Dorado storage systems.\r"},{"line_number":4,"context_line":"\"\"\"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGkM%3D","line":1,"in_reply_to":"AAAAM3%2F%2FKd0%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":2,"context_line":"\"\"\"\r"},{"line_number":3,"context_line":"Volume driver for HUAWEI T series and Dorado storage systems.\r"},{"line_number":4,"context_line":"\"\"\"\r"},{"line_number":5,"context_line":"\r"},{"line_number":6,"context_line":"import re\r"},{"line_number":7,"context_line":"import time\r"},{"line_number":8,"context_line":"from xml.etree import ElementTree as ET\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKd8%3D","line":5,"updated":"2013-02-05 06:51:46.000000000","message":"Import format needs to be followed:\n\nhttps://github.com/openstack/cinder/blob/master/HACKING.rst","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":2,"context_line":"\"\"\"\r"},{"line_number":3,"context_line":"Volume driver for HUAWEI T series and Dorado storage systems.\r"},{"line_number":4,"context_line":"\"\"\"\r"},{"line_number":5,"context_line":"\r"},{"line_number":6,"context_line":"import re\r"},{"line_number":7,"context_line":"import time\r"},{"line_number":8,"context_line":"from xml.etree import ElementTree as ET\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGkI%3D","line":5,"in_reply_to":"AAAAM3%2F%2FKd8%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"change_message_id":"90be33433377792b2c1357dce809996cdd17dcab","unresolved":false,"context_lines":[{"line_number":15,"context_line":"\r"},{"line_number":16,"context_line":"LOG \u003d logging.getLogger(__name__)\r"},{"line_number":17,"context_line":"\r"},{"line_number":18,"context_line":"try:\r"},{"line_number":19,"context_line":"    import pexpect\r"},{"line_number":20,"context_line":"except:\r"},{"line_number":21,"context_line":"    LOG.debug(_(\u0027Module \"pexpect\" not installed. \"pexpect\" \u0027\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FL%2Fw%3D","line":18,"updated":"2013-02-04 14:26:33.000000000","message":"Why the additional dependency? Why not use paramiko? This also needs to be added to tools/test-requiers tools/pip-requires as well","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":23,"context_line":"                \u0027http://sourceforge.net/projects/pexpect/files/\u0027))\r"},{"line_number":24,"context_line":"\r"},{"line_number":25,"context_line":"huawei_opt \u003d [\r"},{"line_number":26,"context_line":"          cfg.StrOpt(\u0027cinder_huawei_conf_file\u0027,\r"},{"line_number":27,"context_line":"                     default\u003d\u0027/etc/cinder/cinder_huawei_conf.xml\u0027,\r"},{"line_number":28,"context_line":"                     help\u003d\u0027config data for cinder huawei plugin\u0027)\r"},{"line_number":29,"context_line":"]\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKc4%3D","line":26,"updated":"2013-02-05 06:51:46.000000000","message":"continuation line indentation not a multiple of 4","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":23,"context_line":"                \u0027http://sourceforge.net/projects/pexpect/files/\u0027))\r"},{"line_number":24,"context_line":"\r"},{"line_number":25,"context_line":"huawei_opt \u003d [\r"},{"line_number":26,"context_line":"          cfg.StrOpt(\u0027cinder_huawei_conf_file\u0027,\r"},{"line_number":27,"context_line":"                     default\u003d\u0027/etc/cinder/cinder_huawei_conf.xml\u0027,\r"},{"line_number":28,"context_line":"                     help\u003d\u0027config data for cinder huawei plugin\u0027)\r"},{"line_number":29,"context_line":"]\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGj0%3D","line":26,"in_reply_to":"AAAAM3%2F%2FKc4%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":34,"context_line":"HOST_GROUP_NAME \u003d \u0027HostGroup_OpenStack\u0027\r"},{"line_number":35,"context_line":"HOST_NAME_PREFIX \u003d \u0027Host_OpenStack_\u0027\r"},{"line_number":36,"context_line":"HOST_PORT_PREFIX \u003d \u0027HostPort_\u0027\r"},{"line_number":37,"context_line":"\r"},{"line_number":38,"context_line":"class huaweiISCSIDriver(driver.ISCSIDriver):\r"},{"line_number":39,"context_line":"    \"\"\"Huawei T series and Dorado iSCSI volume driver\"\"\"\r"},{"line_number":40,"context_line":"    \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKcs%3D","line":37,"updated":"2013-02-05 06:51:46.000000000","message":"two blank lines here","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":34,"context_line":"HOST_GROUP_NAME \u003d \u0027HostGroup_OpenStack\u0027\r"},{"line_number":35,"context_line":"HOST_NAME_PREFIX \u003d \u0027Host_OpenStack_\u0027\r"},{"line_number":36,"context_line":"HOST_PORT_PREFIX \u003d \u0027HostPort_\u0027\r"},{"line_number":37,"context_line":"\r"},{"line_number":38,"context_line":"class huaweiISCSIDriver(driver.ISCSIDriver):\r"},{"line_number":39,"context_line":"    \"\"\"Huawei T series and Dorado iSCSI volume driver\"\"\"\r"},{"line_number":40,"context_line":"    \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGjw%3D","line":37,"in_reply_to":"AAAAM3%2F%2FKcs%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"change_message_id":"90be33433377792b2c1357dce809996cdd17dcab","unresolved":false,"context_lines":[{"line_number":37,"context_line":"\r"},{"line_number":38,"context_line":"class huaweiISCSIDriver(driver.ISCSIDriver):\r"},{"line_number":39,"context_line":"    \"\"\"Huawei T series and Dorado iSCSI volume driver\"\"\"\r"},{"line_number":40,"context_line":"    \r"},{"line_number":41,"context_line":"    def __init__(self, *args, **kwargs):\r"},{"line_number":42,"context_line":"        super(huaweiISCSIDriver, self).__init__(*args, **kwargs)       \r"},{"line_number":43,"context_line":"        self.device_type \u003d {}\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FL%2FI%3D","line":40,"updated":"2013-02-04 14:26:33.000000000","message":"please fix pep8 errors.","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":37,"context_line":"\r"},{"line_number":38,"context_line":"class huaweiISCSIDriver(driver.ISCSIDriver):\r"},{"line_number":39,"context_line":"    \"\"\"Huawei T series and Dorado iSCSI volume driver\"\"\"\r"},{"line_number":40,"context_line":"    \r"},{"line_number":41,"context_line":"    def __init__(self, *args, **kwargs):\r"},{"line_number":42,"context_line":"        super(huaweiISCSIDriver, self).__init__(*args, **kwargs)       \r"},{"line_number":43,"context_line":"        self.device_type \u003d {}\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGjs%3D","line":40,"in_reply_to":"AAAAM3%2F%2FL%2FI%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        \r"},{"line_number":64,"context_line":"        LOG.debug(_(\u0027check_for_setup_error: Device type is:%(type)s, \u0027\r"},{"line_number":65,"context_line":"                    \u0027version is:%(version)s.\u0027)\r"},{"line_number":66,"context_line":"                  % {\u0027type\u0027:self.device_type[\u0027type\u0027],\r"},{"line_number":67,"context_line":"                     \u0027version\u0027:self.device_type[\u0027version\u0027]})\r"},{"line_number":68,"context_line":"        #Only V1 version is supported.\r"},{"line_number":69,"context_line":"        if self.device_type[\u0027version\u0027] !\u003d \u0027V100R\u0027:\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKco%3D","line":66,"updated":"2013-02-05 06:51:46.000000000","message":"space after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        \r"},{"line_number":64,"context_line":"        LOG.debug(_(\u0027check_for_setup_error: Device type is:%(type)s, \u0027\r"},{"line_number":65,"context_line":"                    \u0027version is:%(version)s.\u0027)\r"},{"line_number":66,"context_line":"                  % {\u0027type\u0027:self.device_type[\u0027type\u0027],\r"},{"line_number":67,"context_line":"                     \u0027version\u0027:self.device_type[\u0027version\u0027]})\r"},{"line_number":68,"context_line":"        #Only V1 version is supported.\r"},{"line_number":69,"context_line":"        if self.device_type[\u0027version\u0027] !\u003d \u0027V100R\u0027:\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGjo%3D","line":66,"in_reply_to":"AAAAM3%2F%2FKco%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        LOG.debug(_(\u0027check_for_setup_error: Device type is:%(type)s, \u0027\r"},{"line_number":65,"context_line":"                    \u0027version is:%(version)s.\u0027)\r"},{"line_number":66,"context_line":"                  % {\u0027type\u0027:self.device_type[\u0027type\u0027],\r"},{"line_number":67,"context_line":"                     \u0027version\u0027:self.device_type[\u0027version\u0027]})\r"},{"line_number":68,"context_line":"        #Only V1 version is supported.\r"},{"line_number":69,"context_line":"        if self.device_type[\u0027version\u0027] !\u003d \u0027V100R\u0027:\r"},{"line_number":70,"context_line":"            err_msg \u003d (_(\u0027check_for_setup_error: Product version not right. \u0027\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKck%3D","line":67,"updated":"2013-02-05 06:51:46.000000000","message":"space after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        LOG.debug(_(\u0027check_for_setup_error: Device type is:%(type)s, \u0027\r"},{"line_number":65,"context_line":"                    \u0027version is:%(version)s.\u0027)\r"},{"line_number":66,"context_line":"                  % {\u0027type\u0027:self.device_type[\u0027type\u0027],\r"},{"line_number":67,"context_line":"                     \u0027version\u0027:self.device_type[\u0027version\u0027]})\r"},{"line_number":68,"context_line":"        #Only V1 version is supported.\r"},{"line_number":69,"context_line":"        if self.device_type[\u0027version\u0027] !\u003d \u0027V100R\u0027:\r"},{"line_number":70,"context_line":"            err_msg \u003d (_(\u0027check_for_setup_error: Product version not right. \u0027\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGjk%3D","line":67,"in_reply_to":"AAAAM3%2F%2FKck%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        lun_id \u003d self._find_lun(volume_name)\r"},{"line_number":112,"context_line":"        if lun_id is None:\r"},{"line_number":113,"context_line":"            err_msg \u003d (_(\u0027Error: Volume %(name)s not exist.\u0027)\r"},{"line_number":114,"context_line":"                       % {\u0027name\u0027:volume_name})\r"},{"line_number":115,"context_line":"            LOG.error(err_msg)\r"},{"line_number":116,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":117,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKcg%3D","line":114,"updated":"2013-02-05 06:51:46.000000000","message":"space after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        lun_id \u003d self._find_lun(volume_name)\r"},{"line_number":112,"context_line":"        if lun_id is None:\r"},{"line_number":113,"context_line":"            err_msg \u003d (_(\u0027Error: Volume %(name)s not exist.\u0027)\r"},{"line_number":114,"context_line":"                       % {\u0027name\u0027:volume_name})\r"},{"line_number":115,"context_line":"            LOG.error(err_msg)\r"},{"line_number":116,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":117,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGjg%3D","line":114,"in_reply_to":"AAAAM3%2F%2FKcg%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            LOG.error(err_msg)\r"},{"line_number":116,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":117,"context_line":"        \r"},{"line_number":118,"context_line":"        return {\u0027provider_location\u0027:lun_id}\r"},{"line_number":119,"context_line":"        \r"},{"line_number":120,"context_line":"    def ensure_export(self, context, volume):\r"},{"line_number":121,"context_line":"        \"\"\"Driver entry point to get the  export info for a existing volume\"\"\"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKcY%3D","line":118,"updated":"2013-02-05 06:51:46.000000000","message":"space after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            LOG.error(err_msg)\r"},{"line_number":116,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":117,"context_line":"        \r"},{"line_number":118,"context_line":"        return {\u0027provider_location\u0027:lun_id}\r"},{"line_number":119,"context_line":"        \r"},{"line_number":120,"context_line":"    def ensure_export(self, context, volume):\r"},{"line_number":121,"context_line":"        \"\"\"Driver entry point to get the  export info for a existing volume\"\"\"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGjY%3D","line":118,"in_reply_to":"AAAAM3%2F%2FKcY%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        lun_id \u003d self._find_lun(volume_name)\r"},{"line_number":127,"context_line":"        if lun_id is None:\r"},{"line_number":128,"context_line":"            err_msg \u003d (_(\u0027ensure_export:ERROR: Volume %(name)s not exist.\u0027)\r"},{"line_number":129,"context_line":"                       % {\u0027name\u0027:volume_name})\r"},{"line_number":130,"context_line":"            LOG.error(err_msg)\r"},{"line_number":131,"context_line":"            \r"},{"line_number":132,"context_line":"        return {\u0027provider_location\u0027:lun_id}\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKcU%3D","line":129,"updated":"2013-02-05 06:51:46.000000000","message":"space after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        lun_id \u003d self._find_lun(volume_name)\r"},{"line_number":127,"context_line":"        if lun_id is None:\r"},{"line_number":128,"context_line":"            err_msg \u003d (_(\u0027ensure_export:ERROR: Volume %(name)s not exist.\u0027)\r"},{"line_number":129,"context_line":"                       % {\u0027name\u0027:volume_name})\r"},{"line_number":130,"context_line":"            LOG.error(err_msg)\r"},{"line_number":131,"context_line":"            \r"},{"line_number":132,"context_line":"        return {\u0027provider_location\u0027:lun_id}\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGjU%3D","line":129,"in_reply_to":"AAAAM3%2F%2FKcU%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                       % {\u0027name\u0027:volume_name})\r"},{"line_number":130,"context_line":"            LOG.error(err_msg)\r"},{"line_number":131,"context_line":"            \r"},{"line_number":132,"context_line":"        return {\u0027provider_location\u0027:lun_id}\r"},{"line_number":133,"context_line":"    \r"},{"line_number":134,"context_line":"    def remove_export(self, context, volume_id):\r"},{"line_number":135,"context_line":"        \"\"\"Driver entry point to remove an export for a volume.\"\"\"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKcQ%3D","line":132,"updated":"2013-02-05 06:51:46.000000000","message":"space after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                       % {\u0027name\u0027:volume_name})\r"},{"line_number":130,"context_line":"            LOG.error(err_msg)\r"},{"line_number":131,"context_line":"            \r"},{"line_number":132,"context_line":"        return {\u0027provider_location\u0027:lun_id}\r"},{"line_number":133,"context_line":"    \r"},{"line_number":134,"context_line":"    def remove_export(self, context, volume_id):\r"},{"line_number":135,"context_line":"        \"\"\"Driver entry point to remove an export for a volume.\"\"\"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGjQ%3D","line":132,"in_reply_to":"AAAAM3%2F%2FKcQ%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        volume_name \u003d self._name_transfer(volume[\u0027name\u0027])\r"},{"line_number":143,"context_line":"        \r"},{"line_number":144,"context_line":"        LOG.debug(_(\u0027initialize_connection: volume name: %(volume)s. \u0027\r"},{"line_number":145,"context_line":"                    \u0027initiator name: %(ini)s.\u0027)\r"},{"line_number":146,"context_line":"                    % {\u0027volume\u0027:volume_name,\r"},{"line_number":147,"context_line":"                       \u0027ini\u0027:initiator_name})\r"},{"line_number":148,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKcA%3D","line":145,"updated":"2013-02-05 06:51:46.000000000","message":"missing white space after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        volume_name \u003d self._name_transfer(volume[\u0027name\u0027])\r"},{"line_number":143,"context_line":"        \r"},{"line_number":144,"context_line":"        LOG.debug(_(\u0027initialize_connection: volume name: %(volume)s. \u0027\r"},{"line_number":145,"context_line":"                    \u0027initiator name: %(ini)s.\u0027)\r"},{"line_number":146,"context_line":"                    % {\u0027volume\u0027:volume_name,\r"},{"line_number":147,"context_line":"                       \u0027ini\u0027:initiator_name})\r"},{"line_number":148,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGjM%3D","line":145,"in_reply_to":"AAAAM3%2F%2FKcA%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        \r"},{"line_number":144,"context_line":"        LOG.debug(_(\u0027initialize_connection: volume name: %(volume)s. \u0027\r"},{"line_number":145,"context_line":"                    \u0027initiator name: %(ini)s.\u0027)\r"},{"line_number":146,"context_line":"                    % {\u0027volume\u0027:volume_name,\r"},{"line_number":147,"context_line":"                       \u0027ini\u0027:initiator_name})\r"},{"line_number":148,"context_line":"        \r"},{"line_number":149,"context_line":"        self.login_info \u003d self._get_login_info()\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKcE%3D","line":146,"updated":"2013-02-05 06:51:46.000000000","message":"line over-indented","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        \r"},{"line_number":144,"context_line":"        LOG.debug(_(\u0027initialize_connection: volume name: %(volume)s. \u0027\r"},{"line_number":145,"context_line":"                    \u0027initiator name: %(ini)s.\u0027)\r"},{"line_number":146,"context_line":"                    % {\u0027volume\u0027:volume_name,\r"},{"line_number":147,"context_line":"                       \u0027ini\u0027:initiator_name})\r"},{"line_number":148,"context_line":"        \r"},{"line_number":149,"context_line":"        self.login_info \u003d self._get_login_info()\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGjI%3D","line":146,"in_reply_to":"AAAAM3%2F%2FKcE%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        LOG.debug(_(\u0027initialize_connection: volume name: %(volume)s. \u0027\r"},{"line_number":145,"context_line":"                    \u0027initiator name: %(ini)s.\u0027)\r"},{"line_number":146,"context_line":"                    % {\u0027volume\u0027:volume_name,\r"},{"line_number":147,"context_line":"                       \u0027ini\u0027:initiator_name})\r"},{"line_number":148,"context_line":"        \r"},{"line_number":149,"context_line":"        self.login_info \u003d self._get_login_info()\r"},{"line_number":150,"context_line":"        hostgroup_name \u003d HOST_GROUP_NAME   \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKb8%3D","line":147,"updated":"2013-02-05 06:51:46.000000000","message":"missing white space after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        LOG.debug(_(\u0027initialize_connection: volume name: %(volume)s. \u0027\r"},{"line_number":145,"context_line":"                    \u0027initiator name: %(ini)s.\u0027)\r"},{"line_number":146,"context_line":"                    % {\u0027volume\u0027:volume_name,\r"},{"line_number":147,"context_line":"                       \u0027ini\u0027:initiator_name})\r"},{"line_number":148,"context_line":"        \r"},{"line_number":149,"context_line":"        self.login_info \u003d self._get_login_info()\r"},{"line_number":150,"context_line":"        hostgroup_name \u003d HOST_GROUP_NAME   \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGjE%3D","line":147,"in_reply_to":"AAAAM3%2F%2FKb8%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                             \u0027connection. Hostgroup %(hostgroup)s do not exist. \u0027\r"},{"line_number":158,"context_line":"                             \u0027initiator name:%(initiator)s \u0027\r"},{"line_number":159,"context_line":"                             \u0027volume name:%(volume)s.\u0027\r"},{"line_number":160,"context_line":"                             % {\u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":161,"context_line":"                                \u0027initiator\u0027:initiator_name,\r"},{"line_number":162,"context_line":"                                \u0027volume\u0027:volume_name}))\r"},{"line_number":163,"context_line":"                LOG.error(err_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKbw%3D","line":160,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                             \u0027connection. Hostgroup %(hostgroup)s do not exist. \u0027\r"},{"line_number":158,"context_line":"                             \u0027initiator name:%(initiator)s \u0027\r"},{"line_number":159,"context_line":"                             \u0027volume name:%(volume)s.\u0027\r"},{"line_number":160,"context_line":"                             % {\u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":161,"context_line":"                                \u0027initiator\u0027:initiator_name,\r"},{"line_number":162,"context_line":"                                \u0027volume\u0027:volume_name}))\r"},{"line_number":163,"context_line":"                LOG.error(err_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGjA%3D","line":160,"in_reply_to":"AAAAM3%2F%2FKbw%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":158,"context_line":"                             \u0027initiator name:%(initiator)s \u0027\r"},{"line_number":159,"context_line":"                             \u0027volume name:%(volume)s.\u0027\r"},{"line_number":160,"context_line":"                             % {\u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":161,"context_line":"                                \u0027initiator\u0027:initiator_name,\r"},{"line_number":162,"context_line":"                                \u0027volume\u0027:volume_name}))\r"},{"line_number":163,"context_line":"                LOG.error(err_msg)\r"},{"line_number":164,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKbs%3D","line":161,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":158,"context_line":"                             \u0027initiator name:%(initiator)s \u0027\r"},{"line_number":159,"context_line":"                             \u0027volume name:%(volume)s.\u0027\r"},{"line_number":160,"context_line":"                             % {\u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":161,"context_line":"                                \u0027initiator\u0027:initiator_name,\r"},{"line_number":162,"context_line":"                                \u0027volume\u0027:volume_name}))\r"},{"line_number":163,"context_line":"                LOG.error(err_msg)\r"},{"line_number":164,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGi8%3D","line":161,"in_reply_to":"AAAAM3%2F%2FKbs%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                             \u0027volume name:%(volume)s.\u0027\r"},{"line_number":160,"context_line":"                             % {\u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":161,"context_line":"                                \u0027initiator\u0027:initiator_name,\r"},{"line_number":162,"context_line":"                                \u0027volume\u0027:volume_name}))\r"},{"line_number":163,"context_line":"                LOG.error(err_msg)\r"},{"line_number":164,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":165,"context_line":"            \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKbo%3D","line":162,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                             \u0027volume name:%(volume)s.\u0027\r"},{"line_number":160,"context_line":"                             % {\u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":161,"context_line":"                                \u0027initiator\u0027:initiator_name,\r"},{"line_number":162,"context_line":"                                \u0027volume\u0027:volume_name}))\r"},{"line_number":163,"context_line":"                LOG.error(err_msg)\r"},{"line_number":164,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":165,"context_line":"            \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGi4%3D","line":162,"in_reply_to":"AAAAM3%2F%2FKbo%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":174,"context_line":"                             \u0027hostgroup name: %(hostgroup)s. \u0027\r"},{"line_number":175,"context_line":"                             \u0027initiator name:%(initiator)s. \u0027\r"},{"line_number":176,"context_line":"                             \u0027volume name:%(volume)s.\u0027\r"},{"line_number":177,"context_line":"                             % {\u0027host\u0027:host_name,\r"},{"line_number":178,"context_line":"                                \u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":179,"context_line":"                                \u0027initiator\u0027:initiator_name,\r"},{"line_number":180,"context_line":"                                \u0027volume\u0027:volume_name}))\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKbk%3D","line":177,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":174,"context_line":"                             \u0027hostgroup name: %(hostgroup)s. \u0027\r"},{"line_number":175,"context_line":"                             \u0027initiator name:%(initiator)s. \u0027\r"},{"line_number":176,"context_line":"                             \u0027volume name:%(volume)s.\u0027\r"},{"line_number":177,"context_line":"                             % {\u0027host\u0027:host_name,\r"},{"line_number":178,"context_line":"                                \u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":179,"context_line":"                                \u0027initiator\u0027:initiator_name,\r"},{"line_number":180,"context_line":"                                \u0027volume\u0027:volume_name}))\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGi0%3D","line":177,"in_reply_to":"AAAAM3%2F%2FKbk%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":175,"context_line":"                             \u0027initiator name:%(initiator)s. \u0027\r"},{"line_number":176,"context_line":"                             \u0027volume name:%(volume)s.\u0027\r"},{"line_number":177,"context_line":"                             % {\u0027host\u0027:host_name,\r"},{"line_number":178,"context_line":"                                \u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":179,"context_line":"                                \u0027initiator\u0027:initiator_name,\r"},{"line_number":180,"context_line":"                                \u0027volume\u0027:volume_name}))\r"},{"line_number":181,"context_line":"                LOG.error(err_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKbg%3D","line":178,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":175,"context_line":"                             \u0027initiator name:%(initiator)s. \u0027\r"},{"line_number":176,"context_line":"                             \u0027volume name:%(volume)s.\u0027\r"},{"line_number":177,"context_line":"                             % {\u0027host\u0027:host_name,\r"},{"line_number":178,"context_line":"                                \u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":179,"context_line":"                                \u0027initiator\u0027:initiator_name,\r"},{"line_number":180,"context_line":"                                \u0027volume\u0027:volume_name}))\r"},{"line_number":181,"context_line":"                LOG.error(err_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGiw%3D","line":178,"in_reply_to":"AAAAM3%2F%2FKbg%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":176,"context_line":"                             \u0027volume name:%(volume)s.\u0027\r"},{"line_number":177,"context_line":"                             % {\u0027host\u0027:host_name,\r"},{"line_number":178,"context_line":"                                \u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":179,"context_line":"                                \u0027initiator\u0027:initiator_name,\r"},{"line_number":180,"context_line":"                                \u0027volume\u0027:volume_name}))\r"},{"line_number":181,"context_line":"                LOG.error(err_msg)\r"},{"line_number":182,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKbc%3D","line":179,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":176,"context_line":"                             \u0027volume name:%(volume)s.\u0027\r"},{"line_number":177,"context_line":"                             % {\u0027host\u0027:host_name,\r"},{"line_number":178,"context_line":"                                \u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":179,"context_line":"                                \u0027initiator\u0027:initiator_name,\r"},{"line_number":180,"context_line":"                                \u0027volume\u0027:volume_name}))\r"},{"line_number":181,"context_line":"                LOG.error(err_msg)\r"},{"line_number":182,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGis%3D","line":179,"in_reply_to":"AAAAM3%2F%2FKbc%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":177,"context_line":"                             % {\u0027host\u0027:host_name,\r"},{"line_number":178,"context_line":"                                \u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":179,"context_line":"                                \u0027initiator\u0027:initiator_name,\r"},{"line_number":180,"context_line":"                                \u0027volume\u0027:volume_name}))\r"},{"line_number":181,"context_line":"                LOG.error(err_msg)\r"},{"line_number":182,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":183,"context_line":"        #Create an initiator. \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKbY%3D","line":180,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":177,"context_line":"                             % {\u0027host\u0027:host_name,\r"},{"line_number":178,"context_line":"                                \u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":179,"context_line":"                                \u0027initiator\u0027:initiator_name,\r"},{"line_number":180,"context_line":"                                \u0027volume\u0027:volume_name}))\r"},{"line_number":181,"context_line":"                LOG.error(err_msg)\r"},{"line_number":182,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":183,"context_line":"        #Create an initiator. \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGio%3D","line":180,"in_reply_to":"AAAAM3%2F%2FKbY%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":182,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":183,"context_line":"        #Create an initiator. \r"},{"line_number":184,"context_line":"        (isadded, chap_status) \u003d self._check_initiator(initiator_name)\r"},{"line_number":185,"context_line":"        if isadded \u003d\u003d False:\r"},{"line_number":186,"context_line":"            self._add_initiator(initiator_name)\r"},{"line_number":187,"context_line":"            chap_status \u003d \u0027Disabled\u0027\r"},{"line_number":188,"context_line":"        #Add the initiator to host.\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKbU%3D","line":185,"updated":"2013-02-05 06:51:46.000000000","message":"Should be:\n\nif added is False:","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":182,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":183,"context_line":"        #Create an initiator. \r"},{"line_number":184,"context_line":"        (isadded, chap_status) \u003d self._check_initiator(initiator_name)\r"},{"line_number":185,"context_line":"        if isadded \u003d\u003d False:\r"},{"line_number":186,"context_line":"            self._add_initiator(initiator_name)\r"},{"line_number":187,"context_line":"            chap_status \u003d \u0027Disabled\u0027\r"},{"line_number":188,"context_line":"        #Add the initiator to host.\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGik%3D","line":185,"in_reply_to":"AAAAM3%2F%2FKbU%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        (isadded, chap_status) \u003d self._check_initiator(initiator_name)\r"},{"line_number":185,"context_line":"        if isadded \u003d\u003d False:\r"},{"line_number":186,"context_line":"            self._add_initiator(initiator_name)\r"},{"line_number":187,"context_line":"            chap_status \u003d \u0027Disabled\u0027\r"},{"line_number":188,"context_line":"        #Add the initiator to host.\r"},{"line_number":189,"context_line":"        isportadd \u003d False \r"},{"line_number":190,"context_line":"        port_name \u003d HOST_PORT_PREFIX + initiator_name[16:].replace(\u0027:\u0027, \u0027-\u0027)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKbQ%3D","line":187,"updated":"2013-02-05 06:51:46.000000000","message":"nothing uses chap_status","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        (isadded, chap_status) \u003d self._check_initiator(initiator_name)\r"},{"line_number":185,"context_line":"        if isadded \u003d\u003d False:\r"},{"line_number":186,"context_line":"            self._add_initiator(initiator_name)\r"},{"line_number":187,"context_line":"            chap_status \u003d \u0027Disabled\u0027\r"},{"line_number":188,"context_line":"        #Add the initiator to host.\r"},{"line_number":189,"context_line":"        isportadd \u003d False \r"},{"line_number":190,"context_line":"        port_name \u003d HOST_PORT_PREFIX + initiator_name[16:].replace(\u0027:\u0027, \u0027-\u0027)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGic%3D","line":187,"in_reply_to":"AAAAM3%2F%2FKbQ%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                if hostport[\u0027info\u0027] \u003d\u003d initiator_name:\r"},{"line_number":198,"context_line":"                    isportadd \u003d True\r"},{"line_number":199,"context_line":"                    break\r"},{"line_number":200,"context_line":"            if isportadd \u003d\u003d False:\r"},{"line_number":201,"context_line":"                self._add_hostport(port_name, host_id, port_info)\r"},{"line_number":202,"context_line":"        \r"},{"line_number":203,"context_line":"        LOG.debug(_(\u0027initialize_connection: hostgroup name: %(hostgroup)s, \u0027\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKbM%3D","line":200,"updated":"2013-02-05 06:51:46.000000000","message":"should be:\n\nif isportadd is False:","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                if hostport[\u0027info\u0027] \u003d\u003d initiator_name:\r"},{"line_number":198,"context_line":"                    isportadd \u003d True\r"},{"line_number":199,"context_line":"                    break\r"},{"line_number":200,"context_line":"            if isportadd \u003d\u003d False:\r"},{"line_number":201,"context_line":"                self._add_hostport(port_name, host_id, port_info)\r"},{"line_number":202,"context_line":"        \r"},{"line_number":203,"context_line":"        LOG.debug(_(\u0027initialize_connection: hostgroup name: %(hostgroup)s, \u0027\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGig%3D","line":200,"in_reply_to":"AAAAM3%2F%2FKbM%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        \r"},{"line_number":203,"context_line":"        LOG.debug(_(\u0027initialize_connection: hostgroup name: %(hostgroup)s, \u0027\r"},{"line_number":204,"context_line":"                    \u0027host name: %(host)s, initiotor name:%(ini)s, \u0027\r"},{"line_number":205,"context_line":"                    \u0027hostport name: %(hostport)s\u0027)\r"},{"line_number":206,"context_line":"                    % {\u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":207,"context_line":"                       \u0027host\u0027:host_name,\r"},{"line_number":208,"context_line":"                       \u0027ini\u0027:initiator_name,\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKbE%3D","line":205,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        \r"},{"line_number":203,"context_line":"        LOG.debug(_(\u0027initialize_connection: hostgroup name: %(hostgroup)s, \u0027\r"},{"line_number":204,"context_line":"                    \u0027host name: %(host)s, initiotor name:%(ini)s, \u0027\r"},{"line_number":205,"context_line":"                    \u0027hostport name: %(hostport)s\u0027)\r"},{"line_number":206,"context_line":"                    % {\u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":207,"context_line":"                       \u0027host\u0027:host_name,\r"},{"line_number":208,"context_line":"                       \u0027ini\u0027:initiator_name,\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGiY%3D","line":205,"in_reply_to":"AAAAM3%2F%2FKbE%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        LOG.debug(_(\u0027initialize_connection: hostgroup name: %(hostgroup)s, \u0027\r"},{"line_number":204,"context_line":"                    \u0027host name: %(host)s, initiotor name:%(ini)s, \u0027\r"},{"line_number":205,"context_line":"                    \u0027hostport name: %(hostport)s\u0027)\r"},{"line_number":206,"context_line":"                    % {\u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":207,"context_line":"                       \u0027host\u0027:host_name,\r"},{"line_number":208,"context_line":"                       \u0027ini\u0027:initiator_name,\r"},{"line_number":209,"context_line":"                       \u0027hostport\u0027:port_name})\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKbI%3D","line":206,"updated":"2013-02-05 06:51:46.000000000","message":"line over-indented","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        LOG.debug(_(\u0027initialize_connection: hostgroup name: %(hostgroup)s, \u0027\r"},{"line_number":204,"context_line":"                    \u0027host name: %(host)s, initiotor name:%(ini)s, \u0027\r"},{"line_number":205,"context_line":"                    \u0027hostport name: %(hostport)s\u0027)\r"},{"line_number":206,"context_line":"                    % {\u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":207,"context_line":"                       \u0027host\u0027:host_name,\r"},{"line_number":208,"context_line":"                       \u0027ini\u0027:initiator_name,\r"},{"line_number":209,"context_line":"                       \u0027hostport\u0027:port_name})\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGiU%3D","line":206,"in_reply_to":"AAAAM3%2F%2FKbI%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":204,"context_line":"                    \u0027host name: %(host)s, initiotor name:%(ini)s, \u0027\r"},{"line_number":205,"context_line":"                    \u0027hostport name: %(hostport)s\u0027)\r"},{"line_number":206,"context_line":"                    % {\u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":207,"context_line":"                       \u0027host\u0027:host_name,\r"},{"line_number":208,"context_line":"                       \u0027ini\u0027:initiator_name,\r"},{"line_number":209,"context_line":"                       \u0027hostport\u0027:port_name})\r"},{"line_number":210,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKbA%3D","line":207,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":204,"context_line":"                    \u0027host name: %(host)s, initiotor name:%(ini)s, \u0027\r"},{"line_number":205,"context_line":"                    \u0027hostport name: %(hostport)s\u0027)\r"},{"line_number":206,"context_line":"                    % {\u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":207,"context_line":"                       \u0027host\u0027:host_name,\r"},{"line_number":208,"context_line":"                       \u0027ini\u0027:initiator_name,\r"},{"line_number":209,"context_line":"                       \u0027hostport\u0027:port_name})\r"},{"line_number":210,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGiQ%3D","line":207,"in_reply_to":"AAAAM3%2F%2FKbA%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":205,"context_line":"                    \u0027hostport name: %(hostport)s\u0027)\r"},{"line_number":206,"context_line":"                    % {\u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":207,"context_line":"                       \u0027host\u0027:host_name,\r"},{"line_number":208,"context_line":"                       \u0027ini\u0027:initiator_name,\r"},{"line_number":209,"context_line":"                       \u0027hostport\u0027:port_name})\r"},{"line_number":210,"context_line":"        \r"},{"line_number":211,"context_line":"        #Get target iSCSI iqn.\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKa8%3D","line":208,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":205,"context_line":"                    \u0027hostport name: %(hostport)s\u0027)\r"},{"line_number":206,"context_line":"                    % {\u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":207,"context_line":"                       \u0027host\u0027:host_name,\r"},{"line_number":208,"context_line":"                       \u0027ini\u0027:initiator_name,\r"},{"line_number":209,"context_line":"                       \u0027hostport\u0027:port_name})\r"},{"line_number":210,"context_line":"        \r"},{"line_number":211,"context_line":"        #Get target iSCSI iqn.\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGiM%3D","line":208,"in_reply_to":"AAAAM3%2F%2FKa8%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":206,"context_line":"                    % {\u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":207,"context_line":"                       \u0027host\u0027:host_name,\r"},{"line_number":208,"context_line":"                       \u0027ini\u0027:initiator_name,\r"},{"line_number":209,"context_line":"                       \u0027hostport\u0027:port_name})\r"},{"line_number":210,"context_line":"        \r"},{"line_number":211,"context_line":"        #Get target iSCSI iqn.\r"},{"line_number":212,"context_line":"        iscsi_conf \u003d self._get_iscsi_info()\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKa4%3D","line":209,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":206,"context_line":"                    % {\u0027hostgroup\u0027:hostgroup_name,\r"},{"line_number":207,"context_line":"                       \u0027host\u0027:host_name,\r"},{"line_number":208,"context_line":"                       \u0027ini\u0027:initiator_name,\r"},{"line_number":209,"context_line":"                       \u0027hostport\u0027:port_name})\r"},{"line_number":210,"context_line":"        \r"},{"line_number":211,"context_line":"        #Get target iSCSI iqn.\r"},{"line_number":212,"context_line":"        iscsi_conf \u003d self._get_iscsi_info()\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGiI%3D","line":209,"in_reply_to":"AAAAM3%2F%2FKa4%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":215,"context_line":"            if ini[\u0027Name\u0027] \u003d\u003d initiator_name:        \r"},{"line_number":216,"context_line":"                target_ip \u003d ini[\u0027TargetIP\u0027]\r"},{"line_number":217,"context_line":"                break            \r"},{"line_number":218,"context_line":"        if target_ip \u003d\u003d None:\r"},{"line_number":219,"context_line":"            target_ip \u003d iscsi_conf[\u0027DefaultTargetIP\u0027]\r"},{"line_number":220,"context_line":"\r"},{"line_number":221,"context_line":"        target_iqn \u003d self._get_tgt_iqn(target_ip)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKa0%3D","line":218,"updated":"2013-02-05 06:51:46.000000000","message":"should be:\n\nif target_ip is None:","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":215,"context_line":"            if ini[\u0027Name\u0027] \u003d\u003d initiator_name:        \r"},{"line_number":216,"context_line":"                target_ip \u003d ini[\u0027TargetIP\u0027]\r"},{"line_number":217,"context_line":"                break            \r"},{"line_number":218,"context_line":"        if target_ip \u003d\u003d None:\r"},{"line_number":219,"context_line":"            target_ip \u003d iscsi_conf[\u0027DefaultTargetIP\u0027]\r"},{"line_number":220,"context_line":"\r"},{"line_number":221,"context_line":"        target_iqn \u003d self._get_tgt_iqn(target_ip)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGiE%3D","line":218,"in_reply_to":"AAAAM3%2F%2FKa0%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        hostlun_id \u003d None\r"},{"line_number":235,"context_line":"        map_info \u003d self._get_map_info(host_id)\r"},{"line_number":236,"context_line":"        if map_info is not None:\r"},{"line_number":237,"context_line":"            mapnum \u003d len(map_info)\r"},{"line_number":238,"context_line":"            for map in map_info:\r"},{"line_number":239,"context_line":"                if map[\u0027devlunid\u0027] \u003d\u003d lun_id:\r"},{"line_number":240,"context_line":"                    ismapped \u003d True\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKaw%3D","line":237,"updated":"2013-02-05 06:51:46.000000000","message":"mapnum is never used","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        hostlun_id \u003d None\r"},{"line_number":235,"context_line":"        map_info \u003d self._get_map_info(host_id)\r"},{"line_number":236,"context_line":"        if map_info is not None:\r"},{"line_number":237,"context_line":"            mapnum \u003d len(map_info)\r"},{"line_number":238,"context_line":"            for map in map_info:\r"},{"line_number":239,"context_line":"                if map[\u0027devlunid\u0027] \u003d\u003d lun_id:\r"},{"line_number":240,"context_line":"                    ismapped \u003d True\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGiA%3D","line":237,"in_reply_to":"AAAAM3%2F%2FKaw%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":241,"context_line":"                    hostlun_id \u003d map[\u0027hostlunid\u0027]\r"},{"line_number":242,"context_line":"                    break\r"},{"line_number":243,"context_line":"        #The LUN is not mapped to the host.\r"},{"line_number":244,"context_line":"        if ismapped \u003d\u003d False:\r"},{"line_number":245,"context_line":"            self._map_lun(lun_id, host_id)\r"},{"line_number":246,"context_line":"            hostlun_id \u003d self._get_hostlunid(host_id, lun_id)\r"},{"line_number":247,"context_line":"            if hostlun_id is None:\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKas%3D","line":244,"updated":"2013-02-05 06:51:46.000000000","message":"should be:\n\nif ismapped is False:","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":241,"context_line":"                    hostlun_id \u003d map[\u0027hostlunid\u0027]\r"},{"line_number":242,"context_line":"                    break\r"},{"line_number":243,"context_line":"        #The LUN is not mapped to the host.\r"},{"line_number":244,"context_line":"        if ismapped \u003d\u003d False:\r"},{"line_number":245,"context_line":"            self._map_lun(lun_id, host_id)\r"},{"line_number":246,"context_line":"            hostlun_id \u003d self._get_hostlunid(host_id, lun_id)\r"},{"line_number":247,"context_line":"            if hostlun_id is None:\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGh8%3D","line":244,"in_reply_to":"AAAAM3%2F%2FKas%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":266,"context_line":"   \r"},{"line_number":267,"context_line":"        return {\u0027driver_volume_type\u0027: \u0027iscsi\u0027,\r"},{"line_number":268,"context_line":"                \u0027data\u0027: properties,\r"},{"line_number":269,"context_line":"        }\r"},{"line_number":270,"context_line":"        \r"},{"line_number":271,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):\r"},{"line_number":272,"context_line":"        \"\"\"Delete map between a volume and a host.\"\"\"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKao%3D","line":269,"updated":"2013-02-05 06:51:46.000000000","message":"closing bracket does not match visual indentation.","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":266,"context_line":"   \r"},{"line_number":267,"context_line":"        return {\u0027driver_volume_type\u0027: \u0027iscsi\u0027,\r"},{"line_number":268,"context_line":"                \u0027data\u0027: properties,\r"},{"line_number":269,"context_line":"        }\r"},{"line_number":270,"context_line":"        \r"},{"line_number":271,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):\r"},{"line_number":272,"context_line":"        \"\"\"Delete map between a volume and a host.\"\"\"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGh0%3D","line":269,"in_reply_to":"AAAAM3%2F%2FKao%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":274,"context_line":"        volume_name \u003d self._name_transfer(volume[\u0027name\u0027])\r"},{"line_number":275,"context_line":"\r"},{"line_number":276,"context_line":"        LOG.debug(_(\u0027terminate_connection:volume name: %(volume)s, \u0027\r"},{"line_number":277,"context_line":"                    \u0027initiator name: %(ini)s.\u0027)\r"},{"line_number":278,"context_line":"                    % {\u0027volume\u0027:volume_name,\r"},{"line_number":279,"context_line":"                       \u0027ini\u0027:initiator_name})\r"},{"line_number":280,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKag%3D","line":277,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":274,"context_line":"        volume_name \u003d self._name_transfer(volume[\u0027name\u0027])\r"},{"line_number":275,"context_line":"\r"},{"line_number":276,"context_line":"        LOG.debug(_(\u0027terminate_connection:volume name: %(volume)s, \u0027\r"},{"line_number":277,"context_line":"                    \u0027initiator name: %(ini)s.\u0027)\r"},{"line_number":278,"context_line":"                    % {\u0027volume\u0027:volume_name,\r"},{"line_number":279,"context_line":"                       \u0027ini\u0027:initiator_name})\r"},{"line_number":280,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGhw%3D","line":277,"in_reply_to":"AAAAM3%2F%2FKag%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":275,"context_line":"\r"},{"line_number":276,"context_line":"        LOG.debug(_(\u0027terminate_connection:volume name: %(volume)s, \u0027\r"},{"line_number":277,"context_line":"                    \u0027initiator name: %(ini)s.\u0027)\r"},{"line_number":278,"context_line":"                    % {\u0027volume\u0027:volume_name,\r"},{"line_number":279,"context_line":"                       \u0027ini\u0027:initiator_name})\r"},{"line_number":280,"context_line":"        \r"},{"line_number":281,"context_line":"        self.login_info \u003d self._get_login_info()\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKak%3D","line":278,"updated":"2013-02-05 06:51:46.000000000","message":"line over-indented","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":275,"context_line":"\r"},{"line_number":276,"context_line":"        LOG.debug(_(\u0027terminate_connection:volume name: %(volume)s, \u0027\r"},{"line_number":277,"context_line":"                    \u0027initiator name: %(ini)s.\u0027)\r"},{"line_number":278,"context_line":"                    % {\u0027volume\u0027:volume_name,\r"},{"line_number":279,"context_line":"                       \u0027ini\u0027:initiator_name})\r"},{"line_number":280,"context_line":"        \r"},{"line_number":281,"context_line":"        self.login_info \u003d self._get_login_info()\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGhs%3D","line":278,"in_reply_to":"AAAAM3%2F%2FKak%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":276,"context_line":"        LOG.debug(_(\u0027terminate_connection:volume name: %(volume)s, \u0027\r"},{"line_number":277,"context_line":"                    \u0027initiator name: %(ini)s.\u0027)\r"},{"line_number":278,"context_line":"                    % {\u0027volume\u0027:volume_name,\r"},{"line_number":279,"context_line":"                       \u0027ini\u0027:initiator_name})\r"},{"line_number":280,"context_line":"        \r"},{"line_number":281,"context_line":"        self.login_info \u003d self._get_login_info()\r"},{"line_number":282,"context_line":"        hostgroup_name \u003d HOST_GROUP_NAME\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKac%3D","line":279,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":276,"context_line":"        LOG.debug(_(\u0027terminate_connection:volume name: %(volume)s, \u0027\r"},{"line_number":277,"context_line":"                    \u0027initiator name: %(ini)s.\u0027)\r"},{"line_number":278,"context_line":"                    % {\u0027volume\u0027:volume_name,\r"},{"line_number":279,"context_line":"                       \u0027ini\u0027:initiator_name})\r"},{"line_number":280,"context_line":"        \r"},{"line_number":281,"context_line":"        self.login_info \u003d self._get_login_info()\r"},{"line_number":282,"context_line":"        hostgroup_name \u003d HOST_GROUP_NAME\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGho%3D","line":279,"in_reply_to":"AAAAM3%2F%2FKac%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":320,"context_line":"            LOG.error(_(\u0027terminate_connection:ERROR:No map between host \u0027\r"},{"line_number":321,"context_line":"                        \u0027and volume. Host name:%(hostname)s,\u0027\r"},{"line_number":322,"context_line":"                        \u0027volume name:%(volumename)s.\u0027)\r"},{"line_number":323,"context_line":"                      % {\u0027hostname\u0027:host_name,\r"},{"line_number":324,"context_line":"                         \u0027volumename\u0027:volume_name})\r"},{"line_number":325,"context_line":"        #Delete host initiator when there is no LUN mapped to it.   \r"},{"line_number":326,"context_line":"        portnum \u003d 0   \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKaY%3D","line":323,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":320,"context_line":"            LOG.error(_(\u0027terminate_connection:ERROR:No map between host \u0027\r"},{"line_number":321,"context_line":"                        \u0027and volume. Host name:%(hostname)s,\u0027\r"},{"line_number":322,"context_line":"                        \u0027volume name:%(volumename)s.\u0027)\r"},{"line_number":323,"context_line":"                      % {\u0027hostname\u0027:host_name,\r"},{"line_number":324,"context_line":"                         \u0027volumename\u0027:volume_name})\r"},{"line_number":325,"context_line":"        #Delete host initiator when there is no LUN mapped to it.   \r"},{"line_number":326,"context_line":"        portnum \u003d 0   \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGhk%3D","line":323,"in_reply_to":"AAAAM3%2F%2FKaY%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":321,"context_line":"                        \u0027and volume. Host name:%(hostname)s,\u0027\r"},{"line_number":322,"context_line":"                        \u0027volume name:%(volumename)s.\u0027)\r"},{"line_number":323,"context_line":"                      % {\u0027hostname\u0027:host_name,\r"},{"line_number":324,"context_line":"                         \u0027volumename\u0027:volume_name})\r"},{"line_number":325,"context_line":"        #Delete host initiator when there is no LUN mapped to it.   \r"},{"line_number":326,"context_line":"        portnum \u003d 0   \r"},{"line_number":327,"context_line":"        hostportinfo \u003d self._get_hostport_info(host_id)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKaU%3D","line":324,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":321,"context_line":"                        \u0027and volume. Host name:%(hostname)s,\u0027\r"},{"line_number":322,"context_line":"                        \u0027volume name:%(volumename)s.\u0027)\r"},{"line_number":323,"context_line":"                      % {\u0027hostname\u0027:host_name,\r"},{"line_number":324,"context_line":"                         \u0027volumename\u0027:volume_name})\r"},{"line_number":325,"context_line":"        #Delete host initiator when there is no LUN mapped to it.   \r"},{"line_number":326,"context_line":"        portnum \u003d 0   \r"},{"line_number":327,"context_line":"        hostportinfo \u003d self._get_hostport_info(host_id)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGhg%3D","line":324,"in_reply_to":"AAAAM3%2F%2FKaU%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":329,"context_line":"            portnum \u003d len(hostportinfo)\r"},{"line_number":330,"context_line":"            for hostport in hostportinfo:\r"},{"line_number":331,"context_line":"                if hostport[\u0027info\u0027] \u003d\u003d initiator_name and \\\r"},{"line_number":332,"context_line":"                mapnum \u003d\u003d 0:\r"},{"line_number":333,"context_line":"                    self._delete_hostport(hostport[\u0027id\u0027])\r"},{"line_number":334,"context_line":"                    self._delete_initiator(initiator_name)\r"},{"line_number":335,"context_line":"                    portnum \u003d portnum - 1\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKaI%3D","line":332,"updated":"2013-02-05 06:51:46.000000000","message":"missing indentation","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":329,"context_line":"            portnum \u003d len(hostportinfo)\r"},{"line_number":330,"context_line":"            for hostport in hostportinfo:\r"},{"line_number":331,"context_line":"                if hostport[\u0027info\u0027] \u003d\u003d initiator_name and \\\r"},{"line_number":332,"context_line":"                mapnum \u003d\u003d 0:\r"},{"line_number":333,"context_line":"                    self._delete_hostport(hostport[\u0027id\u0027])\r"},{"line_number":334,"context_line":"                    self._delete_initiator(initiator_name)\r"},{"line_number":335,"context_line":"                    portnum \u003d portnum - 1\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGhc%3D","line":332,"in_reply_to":"AAAAM3%2F%2FKaI%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":337,"context_line":"        else:\r"},{"line_number":338,"context_line":"            LOG.error(_(\u0027terminate_connection:ERROR:No initiator is added to \u0027\r"},{"line_number":339,"context_line":"                        \u0027the host. Host name:%(hostname)s\u0027)\r"},{"line_number":340,"context_line":"                      % {\u0027hostname\u0027:host_name})\r"},{"line_number":341,"context_line":"        #Delete host when there is no initiator added to it. \r"},{"line_number":342,"context_line":"        if portnum \u003d\u003d 0:\r"},{"line_number":343,"context_line":"            self._delete_host(host_id)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKaE%3D","line":340,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":337,"context_line":"        else:\r"},{"line_number":338,"context_line":"            LOG.error(_(\u0027terminate_connection:ERROR:No initiator is added to \u0027\r"},{"line_number":339,"context_line":"                        \u0027the host. Host name:%(hostname)s\u0027)\r"},{"line_number":340,"context_line":"                      % {\u0027hostname\u0027:host_name})\r"},{"line_number":341,"context_line":"        #Delete host when there is no initiator added to it. \r"},{"line_number":342,"context_line":"        if portnum \u003d\u003d 0:\r"},{"line_number":343,"context_line":"            self._delete_host(host_id)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGhY%3D","line":340,"in_reply_to":"AAAAM3%2F%2FKaE%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":349,"context_line":"        \r"},{"line_number":350,"context_line":"        LOG.debug(_(\u0027create_snapshot:snapshot name:%(snapshot)s, \u0027\r"},{"line_number":351,"context_line":"                    \u0027volume name:%(volume)s.\u0027\r"},{"line_number":352,"context_line":"                    % {\u0027snapshot\u0027:snapshot_name,\r"},{"line_number":353,"context_line":"                       \u0027volume\u0027:volume_name}))\r"},{"line_number":354,"context_line":"        \r"},{"line_number":355,"context_line":"        self.login_info \u003d self._get_login_info()\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKaA%3D","line":352,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":349,"context_line":"        \r"},{"line_number":350,"context_line":"        LOG.debug(_(\u0027create_snapshot:snapshot name:%(snapshot)s, \u0027\r"},{"line_number":351,"context_line":"                    \u0027volume name:%(volume)s.\u0027\r"},{"line_number":352,"context_line":"                    % {\u0027snapshot\u0027:snapshot_name,\r"},{"line_number":353,"context_line":"                       \u0027volume\u0027:volume_name}))\r"},{"line_number":354,"context_line":"        \r"},{"line_number":355,"context_line":"        self.login_info \u003d self._get_login_info()\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGhU%3D","line":352,"in_reply_to":"AAAAM3%2F%2FKaA%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":350,"context_line":"        LOG.debug(_(\u0027create_snapshot:snapshot name:%(snapshot)s, \u0027\r"},{"line_number":351,"context_line":"                    \u0027volume name:%(volume)s.\u0027\r"},{"line_number":352,"context_line":"                    % {\u0027snapshot\u0027:snapshot_name,\r"},{"line_number":353,"context_line":"                       \u0027volume\u0027:volume_name}))\r"},{"line_number":354,"context_line":"        \r"},{"line_number":355,"context_line":"        self.login_info \u003d self._get_login_info()\r"},{"line_number":356,"context_line":"        if self.device_type[\u0027type\u0027] \u003d\u003d \"Dodado2100 G2\":\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKZ4%3D","line":353,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":350,"context_line":"        LOG.debug(_(\u0027create_snapshot:snapshot name:%(snapshot)s, \u0027\r"},{"line_number":351,"context_line":"                    \u0027volume name:%(volume)s.\u0027\r"},{"line_number":352,"context_line":"                    % {\u0027snapshot\u0027:snapshot_name,\r"},{"line_number":353,"context_line":"                       \u0027volume\u0027:volume_name}))\r"},{"line_number":354,"context_line":"        \r"},{"line_number":355,"context_line":"        self.login_info \u003d self._get_login_info()\r"},{"line_number":356,"context_line":"        if self.device_type[\u0027type\u0027] \u003d\u003d \"Dodado2100 G2\":\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGhQ%3D","line":353,"in_reply_to":"AAAAM3%2F%2FKZ4%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":383,"context_line":"        \r"},{"line_number":384,"context_line":"        LOG.debug(_(\u0027delete_snapshot:ERROR:snapshot name:%(snapshot)s, \u0027\r"},{"line_number":385,"context_line":"                    \u0027volume name:%(volume)s.\u0027\r"},{"line_number":386,"context_line":"                    % {\u0027snapshot\u0027:snapshot_name,\r"},{"line_number":387,"context_line":"                       \u0027volume\u0027:volume_name}))\r"},{"line_number":388,"context_line":"        \r"},{"line_number":389,"context_line":"        self.login_info \u003d self._get_login_info()         \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKZ0%3D","line":386,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":383,"context_line":"        \r"},{"line_number":384,"context_line":"        LOG.debug(_(\u0027delete_snapshot:ERROR:snapshot name:%(snapshot)s, \u0027\r"},{"line_number":385,"context_line":"                    \u0027volume name:%(volume)s.\u0027\r"},{"line_number":386,"context_line":"                    % {\u0027snapshot\u0027:snapshot_name,\r"},{"line_number":387,"context_line":"                       \u0027volume\u0027:volume_name}))\r"},{"line_number":388,"context_line":"        \r"},{"line_number":389,"context_line":"        self.login_info \u003d self._get_login_info()         \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGhM%3D","line":386,"in_reply_to":"AAAAM3%2F%2FKZ0%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":384,"context_line":"        LOG.debug(_(\u0027delete_snapshot:ERROR:snapshot name:%(snapshot)s, \u0027\r"},{"line_number":385,"context_line":"                    \u0027volume name:%(volume)s.\u0027\r"},{"line_number":386,"context_line":"                    % {\u0027snapshot\u0027:snapshot_name,\r"},{"line_number":387,"context_line":"                       \u0027volume\u0027:volume_name}))\r"},{"line_number":388,"context_line":"        \r"},{"line_number":389,"context_line":"        self.login_info \u003d self._get_login_info()         \r"},{"line_number":390,"context_line":"        if self.device_type[\u0027type\u0027] \u003d\u003d \"Dodado2100 G2\":\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKZw%3D","line":387,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":384,"context_line":"        LOG.debug(_(\u0027delete_snapshot:ERROR:snapshot name:%(snapshot)s, \u0027\r"},{"line_number":385,"context_line":"                    \u0027volume name:%(volume)s.\u0027\r"},{"line_number":386,"context_line":"                    % {\u0027snapshot\u0027:snapshot_name,\r"},{"line_number":387,"context_line":"                       \u0027volume\u0027:volume_name}))\r"},{"line_number":388,"context_line":"        \r"},{"line_number":389,"context_line":"        self.login_info \u003d self._get_login_info()         \r"},{"line_number":390,"context_line":"        if self.device_type[\u0027type\u0027] \u003d\u003d \"Dodado2100 G2\":\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGhI%3D","line":387,"in_reply_to":"AAAAM3%2F%2FKZw%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":399,"context_line":"        else:\r"},{"line_number":400,"context_line":"            err_msg \u003d (_(\u0027delete_snapshot:ERROR:Snapshot do not exist. \u0027\r"},{"line_number":401,"context_line":"                         \u0027snapshot name:%(snap)s\u0027\r"},{"line_number":402,"context_line":"                         % {\u0027snap\u0027:snapshot_name}))\r"},{"line_number":403,"context_line":"            LOG.debug(err_msg)\r"},{"line_number":404,"context_line":"        \r"},{"line_number":405,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKZs%3D","line":402,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":399,"context_line":"        else:\r"},{"line_number":400,"context_line":"            err_msg \u003d (_(\u0027delete_snapshot:ERROR:Snapshot do not exist. \u0027\r"},{"line_number":401,"context_line":"                         \u0027snapshot name:%(snap)s\u0027\r"},{"line_number":402,"context_line":"                         % {\u0027snap\u0027:snapshot_name}))\r"},{"line_number":403,"context_line":"            LOG.debug(err_msg)\r"},{"line_number":404,"context_line":"        \r"},{"line_number":405,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGhA%3D","line":402,"in_reply_to":"AAAAM3%2F%2FKZs%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":411,"context_line":"        \r"},{"line_number":412,"context_line":"        LOG.debug(_(\u0027create_volume_from_snapshot:snapshot \u0027\r"},{"line_number":413,"context_line":"                    \u0027name:%(snapshot)s, volume name:%(volume)s.\u0027\r"},{"line_number":414,"context_line":"                    % {\u0027snapshot\u0027:snapshot_name,\r"},{"line_number":415,"context_line":"                       \u0027volume\u0027:volume_name}))\r"},{"line_number":416,"context_line":"        \r"},{"line_number":417,"context_line":"        self.login_info \u003d self._get_login_info()\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKZk%3D","line":414,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":411,"context_line":"        \r"},{"line_number":412,"context_line":"        LOG.debug(_(\u0027create_volume_from_snapshot:snapshot \u0027\r"},{"line_number":413,"context_line":"                    \u0027name:%(snapshot)s, volume name:%(volume)s.\u0027\r"},{"line_number":414,"context_line":"                    % {\u0027snapshot\u0027:snapshot_name,\r"},{"line_number":415,"context_line":"                       \u0027volume\u0027:volume_name}))\r"},{"line_number":416,"context_line":"        \r"},{"line_number":417,"context_line":"        self.login_info \u003d self._get_login_info()\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGg8%3D","line":414,"in_reply_to":"AAAAM3%2F%2FKZk%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":412,"context_line":"        LOG.debug(_(\u0027create_volume_from_snapshot:snapshot \u0027\r"},{"line_number":413,"context_line":"                    \u0027name:%(snapshot)s, volume name:%(volume)s.\u0027\r"},{"line_number":414,"context_line":"                    % {\u0027snapshot\u0027:snapshot_name,\r"},{"line_number":415,"context_line":"                       \u0027volume\u0027:volume_name}))\r"},{"line_number":416,"context_line":"        \r"},{"line_number":417,"context_line":"        self.login_info \u003d self._get_login_info()\r"},{"line_number":418,"context_line":"        if self.device_type[\u0027type\u0027].find(\u0027Dorado\u0027) \u003e -1:\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKZg%3D","line":415,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":412,"context_line":"        LOG.debug(_(\u0027create_volume_from_snapshot:snapshot \u0027\r"},{"line_number":413,"context_line":"                    \u0027name:%(snapshot)s, volume name:%(volume)s.\u0027\r"},{"line_number":414,"context_line":"                    % {\u0027snapshot\u0027:snapshot_name,\r"},{"line_number":415,"context_line":"                       \u0027volume\u0027:volume_name}))\r"},{"line_number":416,"context_line":"        \r"},{"line_number":417,"context_line":"        self.login_info \u003d self._get_login_info()\r"},{"line_number":418,"context_line":"        if self.device_type[\u0027type\u0027].find(\u0027Dorado\u0027) \u003e -1:\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGgw%3D","line":415,"in_reply_to":"AAAAM3%2F%2FKZg%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":420,"context_line":"                         \u0027not support create volume from snapshot. \u0027\r"},{"line_number":421,"context_line":"                         \u0027Volume name:%(volume)s, \u0027\r"},{"line_number":422,"context_line":"                         \u0027snapshot name:%(snapshot)s.\u0027\r"},{"line_number":423,"context_line":"                         % {\u0027volume\u0027:volume_name,\r"},{"line_number":424,"context_line":"                            \u0027snapshot\u0027:snapshot_name}))\r"},{"line_number":425,"context_line":"            LOG.error(err_msg)\r"},{"line_number":426,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKZY%3D","line":423,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":420,"context_line":"                         \u0027not support create volume from snapshot. \u0027\r"},{"line_number":421,"context_line":"                         \u0027Volume name:%(volume)s, \u0027\r"},{"line_number":422,"context_line":"                         \u0027snapshot name:%(snapshot)s.\u0027\r"},{"line_number":423,"context_line":"                         % {\u0027volume\u0027:volume_name,\r"},{"line_number":424,"context_line":"                            \u0027snapshot\u0027:snapshot_name}))\r"},{"line_number":425,"context_line":"            LOG.error(err_msg)\r"},{"line_number":426,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGg0%3D","line":423,"in_reply_to":"AAAAM3%2F%2FKZY%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":421,"context_line":"                         \u0027Volume name:%(volume)s, \u0027\r"},{"line_number":422,"context_line":"                         \u0027snapshot name:%(snapshot)s.\u0027\r"},{"line_number":423,"context_line":"                         % {\u0027volume\u0027:volume_name,\r"},{"line_number":424,"context_line":"                            \u0027snapshot\u0027:snapshot_name}))\r"},{"line_number":425,"context_line":"            LOG.error(err_msg)\r"},{"line_number":426,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":427,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKZU%3D","line":424,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":421,"context_line":"                         \u0027Volume name:%(volume)s, \u0027\r"},{"line_number":422,"context_line":"                         \u0027snapshot name:%(snapshot)s.\u0027\r"},{"line_number":423,"context_line":"                         % {\u0027volume\u0027:volume_name,\r"},{"line_number":424,"context_line":"                            \u0027snapshot\u0027:snapshot_name}))\r"},{"line_number":425,"context_line":"            LOG.error(err_msg)\r"},{"line_number":426,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":427,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGg4%3D","line":424,"in_reply_to":"AAAAM3%2F%2FKZU%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"change_message_id":"90be33433377792b2c1357dce809996cdd17dcab","unresolved":false,"context_lines":[{"line_number":435,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":436,"context_line":"        #Create a target LUN.\r"},{"line_number":437,"context_line":"        volume_size \u003d \"%sG\" % volume[\u0027size\u0027]     \r"},{"line_number":438,"context_line":"        self._creat_volume(volume_name, volume_size)\r"},{"line_number":439,"context_line":"        volume_id \u003d self._find_lun(volume_name)\r"},{"line_number":440,"context_line":"        if volume_id is None:\r"},{"line_number":441,"context_line":"            err_msg \u003d (_(\u0027create_volume_from_snapshot:ERROR:\u0027\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FL%2B8%3D","line":438,"updated":"2013-02-04 14:26:33.000000000","message":"can this be renamed _create_volume","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":435,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":436,"context_line":"        #Create a target LUN.\r"},{"line_number":437,"context_line":"        volume_size \u003d \"%sG\" % volume[\u0027size\u0027]     \r"},{"line_number":438,"context_line":"        self._creat_volume(volume_name, volume_size)\r"},{"line_number":439,"context_line":"        volume_id \u003d self._find_lun(volume_name)\r"},{"line_number":440,"context_line":"        if volume_id is None:\r"},{"line_number":441,"context_line":"            err_msg \u003d (_(\u0027create_volume_from_snapshot:ERROR:\u0027\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGgs%3D","line":438,"in_reply_to":"AAAAM3%2F%2FL%2B8%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                err_msg \u003d (_(\u0027create_volume_from_snapshot:ERROR:\u0027\r"},{"line_number":454,"context_line":"                             \u0027Snapshot do not exist.\u0027\r"},{"line_number":455,"context_line":"                             \u0027Snapshot name:%(name)s\u0027)\r"},{"line_number":456,"context_line":"                             % {\u0027name\u0027: snapshot_name})\r"},{"line_number":457,"context_line":"                LOG.error(err_msg)\r"},{"line_number":458,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":459,"context_line":"            \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKZM%3D","line":456,"updated":"2013-02-05 06:51:46.000000000","message":"line over-indented","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                err_msg \u003d (_(\u0027create_volume_from_snapshot:ERROR:\u0027\r"},{"line_number":454,"context_line":"                             \u0027Snapshot do not exist.\u0027\r"},{"line_number":455,"context_line":"                             \u0027Snapshot name:%(name)s\u0027)\r"},{"line_number":456,"context_line":"                             % {\u0027name\u0027: snapshot_name})\r"},{"line_number":457,"context_line":"                LOG.error(err_msg)\r"},{"line_number":458,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":459,"context_line":"            \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGgk%3D","line":456,"in_reply_to":"AAAAM3%2F%2FKZM%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":460,"context_line":"            self._start_luncopy(luncopy_id)\r"},{"line_number":461,"context_line":"            self._wait_for_luncopy(luncopy_name)\r"},{"line_number":462,"context_line":"        #if LUNcopy failed,we should delete the target volume.\r"},{"line_number":463,"context_line":"        except Exception as err:\r"},{"line_number":464,"context_line":"            with excutils.save_and_reraise_exception():\r"},{"line_number":465,"context_line":"                self._delete_luncopy(luncopy_id)\r"},{"line_number":466,"context_line":"                self._delete_volume(volume_name, volume_id)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKZI%3D","line":463,"updated":"2013-02-05 06:51:46.000000000","message":"err is never used","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":460,"context_line":"            self._start_luncopy(luncopy_id)\r"},{"line_number":461,"context_line":"            self._wait_for_luncopy(luncopy_name)\r"},{"line_number":462,"context_line":"        #if LUNcopy failed,we should delete the target volume.\r"},{"line_number":463,"context_line":"        except Exception as err:\r"},{"line_number":464,"context_line":"            with excutils.save_and_reraise_exception():\r"},{"line_number":465,"context_line":"                self._delete_luncopy(luncopy_id)\r"},{"line_number":466,"context_line":"                self._delete_volume(volume_name, volume_id)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGgg%3D","line":463,"in_reply_to":"AAAAM3%2F%2FKZI%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":479,"context_line":"            pool \u003d root.findall(\u0027LUN/StoragePool\u0027)\r"},{"line_number":480,"context_line":"    \r"},{"line_number":481,"context_line":"            isconfwrong \u003d False\r"},{"line_number":482,"context_line":"            if (not IP1 and not IP2) or \\\r"},{"line_number":483,"context_line":"                not username or \\\r"},{"line_number":484,"context_line":"                not pwd or \\\r"},{"line_number":485,"context_line":"                not pool:\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKZE%3D","line":482,"updated":"2013-02-05 06:51:46.000000000","message":"avoid blackslashes and use parentheses.","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":479,"context_line":"            pool \u003d root.findall(\u0027LUN/StoragePool\u0027)\r"},{"line_number":480,"context_line":"    \r"},{"line_number":481,"context_line":"            isconfwrong \u003d False\r"},{"line_number":482,"context_line":"            if (not IP1 and not IP2) or \\\r"},{"line_number":483,"context_line":"                not username or \\\r"},{"line_number":484,"context_line":"                not pwd or \\\r"},{"line_number":485,"context_line":"                not pool:\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGgc%3D","line":482,"in_reply_to":"AAAAM3%2F%2FKZE%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":482,"context_line":"            if (not IP1 and not IP2) or \\\r"},{"line_number":483,"context_line":"                not username or \\\r"},{"line_number":484,"context_line":"                not pwd or \\\r"},{"line_number":485,"context_line":"                not pool:\r"},{"line_number":486,"context_line":"                isconfwrong \u003d True\r"},{"line_number":487,"context_line":"            elif not pool[0].attrib[\u0027Name\u0027]:\r"},{"line_number":488,"context_line":"                isconfwrong \u003d True\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKZA%3D","line":485,"updated":"2013-02-05 06:51:46.000000000","message":"continuation line not distinguished from next logical line","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":482,"context_line":"            if (not IP1 and not IP2) or \\\r"},{"line_number":483,"context_line":"                not username or \\\r"},{"line_number":484,"context_line":"                not pwd or \\\r"},{"line_number":485,"context_line":"                not pool:\r"},{"line_number":486,"context_line":"                isconfwrong \u003d True\r"},{"line_number":487,"context_line":"            elif not pool[0].attrib[\u0027Name\u0027]:\r"},{"line_number":488,"context_line":"                isconfwrong \u003d True\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGgY%3D","line":485,"in_reply_to":"AAAAM3%2F%2FKZA%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":487,"context_line":"            elif not pool[0].attrib[\u0027Name\u0027]:\r"},{"line_number":488,"context_line":"                isconfwrong \u003d True\r"},{"line_number":489,"context_line":"            \r"},{"line_number":490,"context_line":"            if isconfwrong \u003d\u003d True:\r"},{"line_number":491,"context_line":"                err_msg \u003d (_(\u0027Config file is wrong. \u0027\r"},{"line_number":492,"context_line":"                             \u0027Controler IP, UserName, UserPassword and \u0027\r"},{"line_number":493,"context_line":"                             \u0027StoragePool must be set.\u0027))\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKY8%3D","line":490,"updated":"2013-02-05 06:51:46.000000000","message":"should be\n\nif isconfwrong is True:","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":487,"context_line":"            elif not pool[0].attrib[\u0027Name\u0027]:\r"},{"line_number":488,"context_line":"                isconfwrong \u003d True\r"},{"line_number":489,"context_line":"            \r"},{"line_number":490,"context_line":"            if isconfwrong \u003d\u003d True:\r"},{"line_number":491,"context_line":"                err_msg \u003d (_(\u0027Config file is wrong. \u0027\r"},{"line_number":492,"context_line":"                             \u0027Controler IP, UserName, UserPassword and \u0027\r"},{"line_number":493,"context_line":"                             \u0027StoragePool must be set.\u0027))\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGgU%3D","line":490,"in_reply_to":"AAAAM3%2F%2FKY8%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":555,"context_line":"                pooltype \u003d luntype\r"},{"line_number":556,"context_line":"                prefetch \u003d root.find(\u0027LUN/Prefetch\u0027)\r"},{"line_number":557,"context_line":"                if prefetch is not None and \\\r"},{"line_number":558,"context_line":"                    prefetch.attrib[\u0027Type\u0027] !\u003d \u0027\u0027:\r"},{"line_number":559,"context_line":"                    lunsetinfo[\"PrefetchType\"] \u003d prefetch.attrib[\u0027Type\u0027]\r"},{"line_number":560,"context_line":"                    if lunsetinfo[\"PrefetchType\"] \u003d\u003d \u00271\u0027:\r"},{"line_number":561,"context_line":"                       lunsetinfo[\"PrefetchValue\"] \u003d prefetch.attrib[\u0027Value\u0027]\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKY4%3D","line":558,"updated":"2013-02-05 06:51:46.000000000","message":"continuation line is not distinguished from next logical line","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":555,"context_line":"                pooltype \u003d luntype\r"},{"line_number":556,"context_line":"                prefetch \u003d root.find(\u0027LUN/Prefetch\u0027)\r"},{"line_number":557,"context_line":"                if prefetch is not None and \\\r"},{"line_number":558,"context_line":"                    prefetch.attrib[\u0027Type\u0027] !\u003d \u0027\u0027:\r"},{"line_number":559,"context_line":"                    lunsetinfo[\"PrefetchType\"] \u003d prefetch.attrib[\u0027Type\u0027]\r"},{"line_number":560,"context_line":"                    if lunsetinfo[\"PrefetchType\"] \u003d\u003d \u00271\u0027:\r"},{"line_number":561,"context_line":"                       lunsetinfo[\"PrefetchValue\"] \u003d prefetch.attrib[\u0027Value\u0027]\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGgM%3D","line":558,"in_reply_to":"AAAAM3%2F%2FKY4%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":558,"context_line":"                    prefetch.attrib[\u0027Type\u0027] !\u003d \u0027\u0027:\r"},{"line_number":559,"context_line":"                    lunsetinfo[\"PrefetchType\"] \u003d prefetch.attrib[\u0027Type\u0027]\r"},{"line_number":560,"context_line":"                    if lunsetinfo[\"PrefetchType\"] \u003d\u003d \u00271\u0027:\r"},{"line_number":561,"context_line":"                       lunsetinfo[\"PrefetchValue\"] \u003d prefetch.attrib[\u0027Value\u0027]\r"},{"line_number":562,"context_line":"                    elif lunsetinfo[\"PrefetchType\"] \u003d\u003d \u00272\u0027:\r"},{"line_number":563,"context_line":"                        lunsetinfo[\"PrefetchTimes\"] \u003d prefetch.attrib[\u0027Value\u0027]\r"},{"line_number":564,"context_line":"                else:\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKY0%3D","line":561,"updated":"2013-02-05 06:51:46.000000000","message":"indentation is not a multiple of four","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":558,"context_line":"                    prefetch.attrib[\u0027Type\u0027] !\u003d \u0027\u0027:\r"},{"line_number":559,"context_line":"                    lunsetinfo[\"PrefetchType\"] \u003d prefetch.attrib[\u0027Type\u0027]\r"},{"line_number":560,"context_line":"                    if lunsetinfo[\"PrefetchType\"] \u003d\u003d \u00271\u0027:\r"},{"line_number":561,"context_line":"                       lunsetinfo[\"PrefetchValue\"] \u003d prefetch.attrib[\u0027Value\u0027]\r"},{"line_number":562,"context_line":"                    elif lunsetinfo[\"PrefetchType\"] \u003d\u003d \u00272\u0027:\r"},{"line_number":563,"context_line":"                        lunsetinfo[\"PrefetchTimes\"] \u003d prefetch.attrib[\u0027Value\u0027]\r"},{"line_number":564,"context_line":"                else:\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGgI%3D","line":561,"in_reply_to":"AAAAM3%2F%2FKY0%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":655,"context_line":"            iscsiinfo[\u0027Initiator\u0027] \u003d initiator_list\r"},{"line_number":656,"context_line":"            \r"},{"line_number":657,"context_line":"        except Exception as err:\r"},{"line_number":658,"context_line":"            err_msg(_(\u0027Error:%s\u0027) % str(err))\r"},{"line_number":659,"context_line":"            \r"},{"line_number":660,"context_line":"        return iscsiinfo\r"},{"line_number":661,"context_line":"    \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKYw%3D","line":658,"updated":"2013-02-05 06:51:46.000000000","message":"err_msg() is undefined","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":655,"context_line":"            iscsiinfo[\u0027Initiator\u0027] \u003d initiator_list\r"},{"line_number":656,"context_line":"            \r"},{"line_number":657,"context_line":"        except Exception as err:\r"},{"line_number":658,"context_line":"            err_msg(_(\u0027Error:%s\u0027) % str(err))\r"},{"line_number":659,"context_line":"            \r"},{"line_number":660,"context_line":"        return iscsiinfo\r"},{"line_number":661,"context_line":"    \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGgE%3D","line":658,"in_reply_to":"AAAAM3%2F%2FKYw%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":665,"context_line":"        connect another controller.\r"},{"line_number":666,"context_line":"        \"\"\"\r"},{"line_number":667,"context_line":"        user \u003d self.login_info[\u0027UserName\u0027]\r"},{"line_number":668,"context_line":"        if self.controller_alterable \u003d\u003d True:\r"},{"line_number":669,"context_line":"            ip \u003d self.login_info[\u0027ControllerIP0\u0027]\r"},{"line_number":670,"context_line":"        else:\r"},{"line_number":671,"context_line":"            ip \u003d self.login_info[\u0027ControllerIP1\u0027]\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKYs%3D","line":668,"updated":"2013-02-05 06:51:46.000000000","message":"should be:\n\nif self.controller_alterable is True:","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":665,"context_line":"        connect another controller.\r"},{"line_number":666,"context_line":"        \"\"\"\r"},{"line_number":667,"context_line":"        user \u003d self.login_info[\u0027UserName\u0027]\r"},{"line_number":668,"context_line":"        if self.controller_alterable \u003d\u003d True:\r"},{"line_number":669,"context_line":"            ip \u003d self.login_info[\u0027ControllerIP0\u0027]\r"},{"line_number":670,"context_line":"        else:\r"},{"line_number":671,"context_line":"            ip \u003d self.login_info[\u0027ControllerIP1\u0027]\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGf8%3D","line":668,"in_reply_to":"AAAAM3%2F%2FKYs%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":673,"context_line":"\r"},{"line_number":674,"context_line":"        try:\r"},{"line_number":675,"context_line":"            command_prompt \u003d user\r"},{"line_number":676,"context_line":"            retrytimes \u003d 0\r"},{"line_number":677,"context_line":"            while True:\r"},{"line_number":678,"context_line":"                ssh \u003d pexpect.spawn(\u0027ssh %s@%s\u0027 % (user, ip), maxread\u003d4500)\r"},{"line_number":679,"context_line":"                rs \u003d ssh.expect([\u0027password:\u0027, \u0027continue connecting\u0027, \\\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKYo%3D","line":676,"updated":"2013-02-05 06:51:46.000000000","message":"retrytimes is never used","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":673,"context_line":"\r"},{"line_number":674,"context_line":"        try:\r"},{"line_number":675,"context_line":"            command_prompt \u003d user\r"},{"line_number":676,"context_line":"            retrytimes \u003d 0\r"},{"line_number":677,"context_line":"            while True:\r"},{"line_number":678,"context_line":"                ssh \u003d pexpect.spawn(\u0027ssh %s@%s\u0027 % (user, ip), maxread\u003d4500)\r"},{"line_number":679,"context_line":"                rs \u003d ssh.expect([\u0027password:\u0027, \u0027continue connecting\u0027, \\\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGf4%3D","line":676,"in_reply_to":"AAAAM3%2F%2FKYo%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":676,"context_line":"            retrytimes \u003d 0\r"},{"line_number":677,"context_line":"            while True:\r"},{"line_number":678,"context_line":"                ssh \u003d pexpect.spawn(\u0027ssh %s@%s\u0027 % (user, ip), maxread\u003d4500)\r"},{"line_number":679,"context_line":"                rs \u003d ssh.expect([\u0027password:\u0027, \u0027continue connecting\u0027, \\\r"},{"line_number":680,"context_line":"                                 pexpect.TIMEOUT, pexpect.EOF], timeout\u003d1)\r"},{"line_number":681,"context_line":"                if rs \u003d\u003d 1:\r"},{"line_number":682,"context_line":"                    ssh.sendline(\u0027yes\u0027)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKYk%3D","line":679,"updated":"2013-02-05 06:51:46.000000000","message":"backslash is redundant when between brackets.","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":676,"context_line":"            retrytimes \u003d 0\r"},{"line_number":677,"context_line":"            while True:\r"},{"line_number":678,"context_line":"                ssh \u003d pexpect.spawn(\u0027ssh %s@%s\u0027 % (user, ip), maxread\u003d4500)\r"},{"line_number":679,"context_line":"                rs \u003d ssh.expect([\u0027password:\u0027, \u0027continue connecting\u0027, \\\r"},{"line_number":680,"context_line":"                                 pexpect.TIMEOUT, pexpect.EOF], timeout\u003d1)\r"},{"line_number":681,"context_line":"                if rs \u003d\u003d 1:\r"},{"line_number":682,"context_line":"                    ssh.sendline(\u0027yes\u0027)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGfs%3D","line":679,"in_reply_to":"AAAAM3%2F%2FKYk%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":683,"context_line":"                elif rs \u003d\u003d 2:\r"},{"line_number":684,"context_line":"                    LOG.debug(_(\u0027_execute_cli:Link to Storage device timeout. \u0027\r"},{"line_number":685,"context_line":"                                \u0027Controller IP:%s\u0027) % ip)\r"},{"line_number":686,"context_line":"                    if self.controller_alterable \u003d\u003d True:\r"},{"line_number":687,"context_line":"                        ip \u003d self.login_info[\"ControllerIP1\"]\r"},{"line_number":688,"context_line":"                        self.controller_alterable \u003d False\r"},{"line_number":689,"context_line":"                        LOG.debug(_(\u0027_execute_cli:Retry to connect another \u0027\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKYg%3D","line":686,"updated":"2013-02-05 06:51:46.000000000","message":"should be:\n\nif self.controller_alterable is True:","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":683,"context_line":"                elif rs \u003d\u003d 2:\r"},{"line_number":684,"context_line":"                    LOG.debug(_(\u0027_execute_cli:Link to Storage device timeout. \u0027\r"},{"line_number":685,"context_line":"                                \u0027Controller IP:%s\u0027) % ip)\r"},{"line_number":686,"context_line":"                    if self.controller_alterable \u003d\u003d True:\r"},{"line_number":687,"context_line":"                        ip \u003d self.login_info[\"ControllerIP1\"]\r"},{"line_number":688,"context_line":"                        self.controller_alterable \u003d False\r"},{"line_number":689,"context_line":"                        LOG.debug(_(\u0027_execute_cli:Retry to connect another \u0027\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGfo%3D","line":686,"in_reply_to":"AAAAM3%2F%2FKYg%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":703,"context_line":"                ssh.sendline(pwd)\r"},{"line_number":704,"context_line":"                break\r"},{"line_number":705,"context_line":"            \r"},{"line_number":706,"context_line":"            rs \u003d ssh.expect([command_prompt, \u0027try again\u0027, \\\r"},{"line_number":707,"context_line":"                             pexpect.TIMEOUT, pexpect.EOF])         \r"},{"line_number":708,"context_line":"            if rs \u003d\u003d 1:\r"},{"line_number":709,"context_line":"                res \u003d 1\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKYc%3D","line":706,"updated":"2013-02-05 06:51:46.000000000","message":"backslash is redundant between brackets.","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":703,"context_line":"                ssh.sendline(pwd)\r"},{"line_number":704,"context_line":"                break\r"},{"line_number":705,"context_line":"            \r"},{"line_number":706,"context_line":"            rs \u003d ssh.expect([command_prompt, \u0027try again\u0027, \\\r"},{"line_number":707,"context_line":"                             pexpect.TIMEOUT, pexpect.EOF])         \r"},{"line_number":708,"context_line":"            if rs \u003d\u003d 1:\r"},{"line_number":709,"context_line":"                res \u003d 1\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGfk%3D","line":706,"in_reply_to":"AAAAM3%2F%2FKYc%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":763,"context_line":"    \r"},{"line_number":764,"context_line":"    def _create_hostgroup(self, hostgroupname):\r"},{"line_number":765,"context_line":"        \"\"\"Create a host group.\"\"\"\r"},{"line_number":766,"context_line":"        cli_cmd \u003d (\u0027createhostgroup -n %(name)s\u0027\r"},{"line_number":767,"context_line":"                    % {\u0027name\u0027:hostgroupname})\r"},{"line_number":768,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":769,"context_line":"        self._check_cli_result(out, res)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKYM%3D","line":766,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":763,"context_line":"    \r"},{"line_number":764,"context_line":"    def _create_hostgroup(self, hostgroupname):\r"},{"line_number":765,"context_line":"        \"\"\"Create a host group.\"\"\"\r"},{"line_number":766,"context_line":"        cli_cmd \u003d (\u0027createhostgroup -n %(name)s\u0027\r"},{"line_number":767,"context_line":"                    % {\u0027name\u0027:hostgroupname})\r"},{"line_number":768,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":769,"context_line":"        self._check_cli_result(out, res)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGfg%3D","line":766,"in_reply_to":"AAAAM3%2F%2FKYM%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":764,"context_line":"    def _create_hostgroup(self, hostgroupname):\r"},{"line_number":765,"context_line":"        \"\"\"Create a host group.\"\"\"\r"},{"line_number":766,"context_line":"        cli_cmd \u003d (\u0027createhostgroup -n %(name)s\u0027\r"},{"line_number":767,"context_line":"                    % {\u0027name\u0027:hostgroupname})\r"},{"line_number":768,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":769,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":770,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKYU%3D","line":767,"updated":"2013-02-05 06:51:46.000000000","message":"line over-indented","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":764,"context_line":"    def _create_hostgroup(self, hostgroupname):\r"},{"line_number":765,"context_line":"        \"\"\"Create a host group.\"\"\"\r"},{"line_number":766,"context_line":"        cli_cmd \u003d (\u0027createhostgroup -n %(name)s\u0027\r"},{"line_number":767,"context_line":"                    % {\u0027name\u0027:hostgroupname})\r"},{"line_number":768,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":769,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":770,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGfY%3D","line":767,"in_reply_to":"AAAAM3%2F%2FKYU%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":773,"context_line":"                         \u0027Hostgroup name: %(name)s. \u0027\r"},{"line_number":774,"context_line":"                         \u0027out:%(out)s.\u0027)\r"},{"line_number":775,"context_line":"                       % {\u0027name\u0027: hostgroupname,\r"},{"line_number":776,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":777,"context_line":"            LOG.error(err_msg)\r"},{"line_number":778,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":779,"context_line":"    \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKYI%3D","line":776,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":773,"context_line":"                         \u0027Hostgroup name: %(name)s. \u0027\r"},{"line_number":774,"context_line":"                         \u0027out:%(out)s.\u0027)\r"},{"line_number":775,"context_line":"                       % {\u0027name\u0027: hostgroupname,\r"},{"line_number":776,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":777,"context_line":"            LOG.error(err_msg)\r"},{"line_number":778,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":779,"context_line":"    \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGfU%3D","line":776,"in_reply_to":"AAAAM3%2F%2FKYI%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":796,"context_line":"    def _add_host(self, hostname, hostgrouid):\r"},{"line_number":797,"context_line":"        \"\"\"Add a new host.\"\"\"     \r"},{"line_number":798,"context_line":"        cli_cmd \u003d (\u0027addhost -group %(groupid)s -n %(hostname)s -t 0\u0027\r"},{"line_number":799,"context_line":"                   % {\u0027groupid\u0027:hostgrouid,\r"},{"line_number":800,"context_line":"                      \u0027hostname\u0027:hostname})\r"},{"line_number":801,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":802,"context_line":"        self._check_cli_result(out, res)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKYE%3D","line":799,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":796,"context_line":"    def _add_host(self, hostname, hostgrouid):\r"},{"line_number":797,"context_line":"        \"\"\"Add a new host.\"\"\"     \r"},{"line_number":798,"context_line":"        cli_cmd \u003d (\u0027addhost -group %(groupid)s -n %(hostname)s -t 0\u0027\r"},{"line_number":799,"context_line":"                   % {\u0027groupid\u0027:hostgrouid,\r"},{"line_number":800,"context_line":"                      \u0027hostname\u0027:hostname})\r"},{"line_number":801,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":802,"context_line":"        self._check_cli_result(out, res)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGfM%3D","line":799,"in_reply_to":"AAAAM3%2F%2FKYE%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":797,"context_line":"        \"\"\"Add a new host.\"\"\"     \r"},{"line_number":798,"context_line":"        cli_cmd \u003d (\u0027addhost -group %(groupid)s -n %(hostname)s -t 0\u0027\r"},{"line_number":799,"context_line":"                   % {\u0027groupid\u0027:hostgrouid,\r"},{"line_number":800,"context_line":"                      \u0027hostname\u0027:hostname})\r"},{"line_number":801,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":802,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":803,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKX0%3D","line":800,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":797,"context_line":"        \"\"\"Add a new host.\"\"\"     \r"},{"line_number":798,"context_line":"        cli_cmd \u003d (\u0027addhost -group %(groupid)s -n %(hostname)s -t 0\u0027\r"},{"line_number":799,"context_line":"                   % {\u0027groupid\u0027:hostgrouid,\r"},{"line_number":800,"context_line":"                      \u0027hostname\u0027:hostname})\r"},{"line_number":801,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":802,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":803,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGfI%3D","line":800,"in_reply_to":"AAAAM3%2F%2FKX0%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":805,"context_line":"            err_msg \u003d (_(\u0027_add_host:ERROR:Failed to add host%(host)s to \u0027\r"},{"line_number":806,"context_line":"                         \u0027hostgroup%(hostgroup)s.out:%(out)s\u0027)\r"},{"line_number":807,"context_line":"                       % {\u0027host\u0027: hostname,\r"},{"line_number":808,"context_line":"                          \u0027hostgroup\u0027:hostgrouid,\r"},{"line_number":809,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":810,"context_line":"            LOG.error(err_msg)\r"},{"line_number":811,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKXo%3D","line":808,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":805,"context_line":"            err_msg \u003d (_(\u0027_add_host:ERROR:Failed to add host%(host)s to \u0027\r"},{"line_number":806,"context_line":"                         \u0027hostgroup%(hostgroup)s.out:%(out)s\u0027)\r"},{"line_number":807,"context_line":"                       % {\u0027host\u0027: hostname,\r"},{"line_number":808,"context_line":"                          \u0027hostgroup\u0027:hostgrouid,\r"},{"line_number":809,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":810,"context_line":"            LOG.error(err_msg)\r"},{"line_number":811,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGfA%3D","line":808,"in_reply_to":"AAAAM3%2F%2FKXo%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":806,"context_line":"                         \u0027hostgroup%(hostgroup)s.out:%(out)s\u0027)\r"},{"line_number":807,"context_line":"                       % {\u0027host\u0027: hostname,\r"},{"line_number":808,"context_line":"                          \u0027hostgroup\u0027:hostgrouid,\r"},{"line_number":809,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":810,"context_line":"            LOG.error(err_msg)\r"},{"line_number":811,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":812,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKXk%3D","line":809,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":806,"context_line":"                         \u0027hostgroup%(hostgroup)s.out:%(out)s\u0027)\r"},{"line_number":807,"context_line":"                       % {\u0027host\u0027: hostname,\r"},{"line_number":808,"context_line":"                          \u0027hostgroup\u0027:hostgrouid,\r"},{"line_number":809,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":810,"context_line":"            LOG.error(err_msg)\r"},{"line_number":811,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":812,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGe8%3D","line":809,"in_reply_to":"AAAAM3%2F%2FKXk%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":814,"context_line":"        \"\"\"Check whether the initiator is already added.\"\"\"\r"},{"line_number":815,"context_line":"        (isadded, status) \u003d (False, \u0027Disabled\u0027)\r"},{"line_number":816,"context_line":"        cli_cmd \u003d (\u0027showiscsiini -ini %(name)s\u0027\r"},{"line_number":817,"context_line":"                   % {\u0027name\u0027:ininame})\r"},{"line_number":818,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":819,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":820,"context_line":"        if out.find(\u0027Initiator Information\u0027) \u003e -1:\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKXg%3D","line":817,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":814,"context_line":"        \"\"\"Check whether the initiator is already added.\"\"\"\r"},{"line_number":815,"context_line":"        (isadded, status) \u003d (False, \u0027Disabled\u0027)\r"},{"line_number":816,"context_line":"        cli_cmd \u003d (\u0027showiscsiini -ini %(name)s\u0027\r"},{"line_number":817,"context_line":"                   % {\u0027name\u0027:ininame})\r"},{"line_number":818,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":819,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":820,"context_line":"        if out.find(\u0027Initiator Information\u0027) \u003e -1:\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGe4%3D","line":817,"in_reply_to":"AAAAM3%2F%2FKXg%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":827,"context_line":"    def _add_initiator(self, ininame):\r"},{"line_number":828,"context_line":"        \"\"\"Add a new initiator to storage device.\"\"\"\r"},{"line_number":829,"context_line":"        cli_cmd \u003d (\u0027addiscsiini -n %(name)s\u0027\r"},{"line_number":830,"context_line":"                   % {\u0027name\u0027:ininame})\r"},{"line_number":831,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":832,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":833,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKXc%3D","line":830,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":827,"context_line":"    def _add_initiator(self, ininame):\r"},{"line_number":828,"context_line":"        \"\"\"Add a new initiator to storage device.\"\"\"\r"},{"line_number":829,"context_line":"        cli_cmd \u003d (\u0027addiscsiini -n %(name)s\u0027\r"},{"line_number":830,"context_line":"                   % {\u0027name\u0027:ininame})\r"},{"line_number":831,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":832,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":833,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGe0%3D","line":830,"in_reply_to":"AAAAM3%2F%2FKXc%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":834,"context_line":"        if matchobject is None:\r"},{"line_number":835,"context_line":"            err_msg \u003d (_(\u0027_add_initiator:ERROR:Failed to add initiator.\u0027\r"},{"line_number":836,"context_line":"                         \u0027initiator name:%(name)s, out:%(out)s\u0027\r"},{"line_number":837,"context_line":"                         % {\u0027name\u0027:ininame,\r"},{"line_number":838,"context_line":"                            \u0027out\u0027:out}))\r"},{"line_number":839,"context_line":"            LOG.error(err_msg)\r"},{"line_number":840,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKXY%3D","line":837,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":834,"context_line":"        if matchobject is None:\r"},{"line_number":835,"context_line":"            err_msg \u003d (_(\u0027_add_initiator:ERROR:Failed to add initiator.\u0027\r"},{"line_number":836,"context_line":"                         \u0027initiator name:%(name)s, out:%(out)s\u0027\r"},{"line_number":837,"context_line":"                         % {\u0027name\u0027:ininame,\r"},{"line_number":838,"context_line":"                            \u0027out\u0027:out}))\r"},{"line_number":839,"context_line":"            LOG.error(err_msg)\r"},{"line_number":840,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGew%3D","line":837,"in_reply_to":"AAAAM3%2F%2FKXY%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":835,"context_line":"            err_msg \u003d (_(\u0027_add_initiator:ERROR:Failed to add initiator.\u0027\r"},{"line_number":836,"context_line":"                         \u0027initiator name:%(name)s, out:%(out)s\u0027\r"},{"line_number":837,"context_line":"                         % {\u0027name\u0027:ininame,\r"},{"line_number":838,"context_line":"                            \u0027out\u0027:out}))\r"},{"line_number":839,"context_line":"            LOG.error(err_msg)\r"},{"line_number":840,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":841,"context_line":"    \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKXU%3D","line":838,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":835,"context_line":"            err_msg \u003d (_(\u0027_add_initiator:ERROR:Failed to add initiator.\u0027\r"},{"line_number":836,"context_line":"                         \u0027initiator name:%(name)s, out:%(out)s\u0027\r"},{"line_number":837,"context_line":"                         % {\u0027name\u0027:ininame,\r"},{"line_number":838,"context_line":"                            \u0027out\u0027:out}))\r"},{"line_number":839,"context_line":"            LOG.error(err_msg)\r"},{"line_number":840,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":841,"context_line":"    \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGeo%3D","line":838,"in_reply_to":"AAAAM3%2F%2FKXU%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":842,"context_line":"    def _delete_initiator(self, ininame):\r"},{"line_number":843,"context_line":"        \"\"\"Delete an initiator.\"\"\"\r"},{"line_number":844,"context_line":"        cli_cmd \u003d (\u0027deliscsiini -n %(name)s\u0027\r"},{"line_number":845,"context_line":"                   % {\u0027name\u0027:ininame})\r"},{"line_number":846,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":847,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":848,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKXQ%3D","line":845,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":842,"context_line":"    def _delete_initiator(self, ininame):\r"},{"line_number":843,"context_line":"        \"\"\"Delete an initiator.\"\"\"\r"},{"line_number":844,"context_line":"        cli_cmd \u003d (\u0027deliscsiini -n %(name)s\u0027\r"},{"line_number":845,"context_line":"                   % {\u0027name\u0027:ininame})\r"},{"line_number":846,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":847,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":848,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGek%3D","line":845,"in_reply_to":"AAAAM3%2F%2FKXQ%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":850,"context_line":"            err_msg \u003d (_(\u0027_delete_initiator:ERROE:Failed to delete initiator.\u0027\r"},{"line_number":851,"context_line":"                         \u0027initiator name:%(name)s, out:%(out)s\u0027\r"},{"line_number":852,"context_line":"                       % {\u0027name\u0027: ininame,\r"},{"line_number":853,"context_line":"                          \u0027out\u0027:out}))\r"},{"line_number":854,"context_line":"            LOG.error(err_msg)\r"},{"line_number":855,"context_line":"\r"},{"line_number":856,"context_line":"    def _find_host_in_hostgroup(self, hostname, hostgroupid):\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKXI%3D","line":853,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":850,"context_line":"            err_msg \u003d (_(\u0027_delete_initiator:ERROE:Failed to delete initiator.\u0027\r"},{"line_number":851,"context_line":"                         \u0027initiator name:%(name)s, out:%(out)s\u0027\r"},{"line_number":852,"context_line":"                       % {\u0027name\u0027: ininame,\r"},{"line_number":853,"context_line":"                          \u0027out\u0027:out}))\r"},{"line_number":854,"context_line":"            LOG.error(err_msg)\r"},{"line_number":855,"context_line":"\r"},{"line_number":856,"context_line":"    def _find_host_in_hostgroup(self, hostname, hostgroupid):\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGeg%3D","line":853,"in_reply_to":"AAAAM3%2F%2FKXI%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":856,"context_line":"    def _find_host_in_hostgroup(self, hostname, hostgroupid):\r"},{"line_number":857,"context_line":"        \"\"\"Get the given host\u0027s ID\"\"\"\r"},{"line_number":858,"context_line":"        cli_cmd \u003d (\u0027showhost -group %(groupid)s\u0027 \r"},{"line_number":859,"context_line":"                   % {\u0027groupid\u0027:hostgroupid})\r"},{"line_number":860,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":861,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":862,"context_line":"        matchobject \u003d re.search(\u0027but no information\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKXA%3D","line":859,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":856,"context_line":"    def _find_host_in_hostgroup(self, hostname, hostgroupid):\r"},{"line_number":857,"context_line":"        \"\"\"Get the given host\u0027s ID\"\"\"\r"},{"line_number":858,"context_line":"        cli_cmd \u003d (\u0027showhost -group %(groupid)s\u0027 \r"},{"line_number":859,"context_line":"                   % {\u0027groupid\u0027:hostgroupid})\r"},{"line_number":860,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":861,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":862,"context_line":"        matchobject \u003d re.search(\u0027but no information\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGeY%3D","line":859,"in_reply_to":"AAAAM3%2F%2FKXA%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":873,"context_line":"    def _get_hostport_info(self, hostid):\r"},{"line_number":874,"context_line":"        \"\"\"Get hostports details of the given host.\"\"\"\r"},{"line_number":875,"context_line":"        cli_cmd \u003d (\u0027showhostport -host %(hostid)s\u0027\r"},{"line_number":876,"context_line":"                   % {\u0027hostid\u0027:hostid})\r"},{"line_number":877,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":878,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":879,"context_line":"        matchobject \u003d re.search(\u0027but no information\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKW4%3D","line":876,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":873,"context_line":"    def _get_hostport_info(self, hostid):\r"},{"line_number":874,"context_line":"        \"\"\"Get hostports details of the given host.\"\"\"\r"},{"line_number":875,"context_line":"        cli_cmd \u003d (\u0027showhostport -host %(hostid)s\u0027\r"},{"line_number":876,"context_line":"                   % {\u0027hostid\u0027:hostid})\r"},{"line_number":877,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":878,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":879,"context_line":"        matchobject \u003d re.search(\u0027but no information\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGeU%3D","line":876,"in_reply_to":"AAAAM3%2F%2FKW4%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":880,"context_line":"        if matchobject:\r"},{"line_number":881,"context_line":"            return None\r"},{"line_number":882,"context_line":"        hostportinfo \u003d []\r"},{"line_number":883,"context_line":"        hostport_list \u003d []\r"},{"line_number":884,"context_line":"        list_key \u003d [\u0027id\u0027, \u0027name\u0027, \u0027info\u0027, \u0027type\u0027, \u0027hostid\u0027, \\\r"},{"line_number":885,"context_line":"                    \u0027linkstatus\u0027, \u0027multioathtype\u0027]\r"},{"line_number":886,"context_line":"        en \u003d re.split(\u0027\\r\\n\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKWw%3D","line":883,"updated":"2013-02-05 06:51:46.000000000","message":"hostport_list never used","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":880,"context_line":"        if matchobject:\r"},{"line_number":881,"context_line":"            return None\r"},{"line_number":882,"context_line":"        hostportinfo \u003d []\r"},{"line_number":883,"context_line":"        hostport_list \u003d []\r"},{"line_number":884,"context_line":"        list_key \u003d [\u0027id\u0027, \u0027name\u0027, \u0027info\u0027, \u0027type\u0027, \u0027hostid\u0027, \\\r"},{"line_number":885,"context_line":"                    \u0027linkstatus\u0027, \u0027multioathtype\u0027]\r"},{"line_number":886,"context_line":"        en \u003d re.split(\u0027\\r\\n\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGeM%3D","line":883,"in_reply_to":"AAAAM3%2F%2FKWw%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":881,"context_line":"            return None\r"},{"line_number":882,"context_line":"        hostportinfo \u003d []\r"},{"line_number":883,"context_line":"        hostport_list \u003d []\r"},{"line_number":884,"context_line":"        list_key \u003d [\u0027id\u0027, \u0027name\u0027, \u0027info\u0027, \u0027type\u0027, \u0027hostid\u0027, \\\r"},{"line_number":885,"context_line":"                    \u0027linkstatus\u0027, \u0027multioathtype\u0027]\r"},{"line_number":886,"context_line":"        en \u003d re.split(\u0027\\r\\n\u0027, out)\r"},{"line_number":887,"context_line":"        for i in range(6, len(en) - 3):\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKWo%3D","line":884,"updated":"2013-02-05 06:51:46.000000000","message":"backslash is redundant between brackets.","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":881,"context_line":"            return None\r"},{"line_number":882,"context_line":"        hostportinfo \u003d []\r"},{"line_number":883,"context_line":"        hostport_list \u003d []\r"},{"line_number":884,"context_line":"        list_key \u003d [\u0027id\u0027, \u0027name\u0027, \u0027info\u0027, \u0027type\u0027, \u0027hostid\u0027, \\\r"},{"line_number":885,"context_line":"                    \u0027linkstatus\u0027, \u0027multioathtype\u0027]\r"},{"line_number":886,"context_line":"        en \u003d re.split(\u0027\\r\\n\u0027, out)\r"},{"line_number":887,"context_line":"        for i in range(6, len(en) - 3):\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGeI%3D","line":884,"in_reply_to":"AAAAM3%2F%2FKWo%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":894,"context_line":"        \"\"\"Add a host port.\"\"\"\r"},{"line_number":895,"context_line":"        cli_cmd \u003d (\u0027addhostport -host %(id)s -type 5 \u0027\r"},{"line_number":896,"context_line":"                   \u0027-info %(info)s -n %(name)s -mtype %(mtype)s\u0027\r"},{"line_number":897,"context_line":"                   % {\u0027id\u0027:hostid,\r"},{"line_number":898,"context_line":"                      \u0027info\u0027:portinfo,\r"},{"line_number":899,"context_line":"                      \u0027name\u0027:portname,\r"},{"line_number":900,"context_line":"                      \u0027mtype\u0027:multipathtype})\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKWk%3D","line":897,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":894,"context_line":"        \"\"\"Add a host port.\"\"\"\r"},{"line_number":895,"context_line":"        cli_cmd \u003d (\u0027addhostport -host %(id)s -type 5 \u0027\r"},{"line_number":896,"context_line":"                   \u0027-info %(info)s -n %(name)s -mtype %(mtype)s\u0027\r"},{"line_number":897,"context_line":"                   % {\u0027id\u0027:hostid,\r"},{"line_number":898,"context_line":"                      \u0027info\u0027:portinfo,\r"},{"line_number":899,"context_line":"                      \u0027name\u0027:portname,\r"},{"line_number":900,"context_line":"                      \u0027mtype\u0027:multipathtype})\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGeE%3D","line":897,"in_reply_to":"AAAAM3%2F%2FKWk%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":895,"context_line":"        cli_cmd \u003d (\u0027addhostport -host %(id)s -type 5 \u0027\r"},{"line_number":896,"context_line":"                   \u0027-info %(info)s -n %(name)s -mtype %(mtype)s\u0027\r"},{"line_number":897,"context_line":"                   % {\u0027id\u0027:hostid,\r"},{"line_number":898,"context_line":"                      \u0027info\u0027:portinfo,\r"},{"line_number":899,"context_line":"                      \u0027name\u0027:portname,\r"},{"line_number":900,"context_line":"                      \u0027mtype\u0027:multipathtype})\r"},{"line_number":901,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKWg%3D","line":898,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":895,"context_line":"        cli_cmd \u003d (\u0027addhostport -host %(id)s -type 5 \u0027\r"},{"line_number":896,"context_line":"                   \u0027-info %(info)s -n %(name)s -mtype %(mtype)s\u0027\r"},{"line_number":897,"context_line":"                   % {\u0027id\u0027:hostid,\r"},{"line_number":898,"context_line":"                      \u0027info\u0027:portinfo,\r"},{"line_number":899,"context_line":"                      \u0027name\u0027:portname,\r"},{"line_number":900,"context_line":"                      \u0027mtype\u0027:multipathtype})\r"},{"line_number":901,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGeA%3D","line":898,"in_reply_to":"AAAAM3%2F%2FKWg%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":896,"context_line":"                   \u0027-info %(info)s -n %(name)s -mtype %(mtype)s\u0027\r"},{"line_number":897,"context_line":"                   % {\u0027id\u0027:hostid,\r"},{"line_number":898,"context_line":"                      \u0027info\u0027:portinfo,\r"},{"line_number":899,"context_line":"                      \u0027name\u0027:portname,\r"},{"line_number":900,"context_line":"                      \u0027mtype\u0027:multipathtype})\r"},{"line_number":901,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":902,"context_line":"        self._check_cli_result(out, res)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKWc%3D","line":899,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":896,"context_line":"                   \u0027-info %(info)s -n %(name)s -mtype %(mtype)s\u0027\r"},{"line_number":897,"context_line":"                   % {\u0027id\u0027:hostid,\r"},{"line_number":898,"context_line":"                      \u0027info\u0027:portinfo,\r"},{"line_number":899,"context_line":"                      \u0027name\u0027:portname,\r"},{"line_number":900,"context_line":"                      \u0027mtype\u0027:multipathtype})\r"},{"line_number":901,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":902,"context_line":"        self._check_cli_result(out, res)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGd8%3D","line":899,"in_reply_to":"AAAAM3%2F%2FKWc%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":897,"context_line":"                   % {\u0027id\u0027:hostid,\r"},{"line_number":898,"context_line":"                      \u0027info\u0027:portinfo,\r"},{"line_number":899,"context_line":"                      \u0027name\u0027:portname,\r"},{"line_number":900,"context_line":"                      \u0027mtype\u0027:multipathtype})\r"},{"line_number":901,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":902,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":903,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKWY%3D","line":900,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":897,"context_line":"                   % {\u0027id\u0027:hostid,\r"},{"line_number":898,"context_line":"                      \u0027info\u0027:portinfo,\r"},{"line_number":899,"context_line":"                      \u0027name\u0027:portname,\r"},{"line_number":900,"context_line":"                      \u0027mtype\u0027:multipathtype})\r"},{"line_number":901,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":902,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":903,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGd4%3D","line":900,"in_reply_to":"AAAAM3%2F%2FKWY%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":906,"context_line":"                         \u0027port name:%(name)s, port info:%(info)s, \u0027\r"},{"line_number":907,"context_line":"                         \u0027host id:%(id)s, out:%(out)s.\u0027)\r"},{"line_number":908,"context_line":"                       % {\u0027name\u0027: portname,\r"},{"line_number":909,"context_line":"                          \u0027info\u0027:portinfo,\r"},{"line_number":910,"context_line":"                          \u0027id\u0027:hostid,\r"},{"line_number":911,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":912,"context_line":"            LOG.error(err_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKWU%3D","line":909,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":906,"context_line":"                         \u0027port name:%(name)s, port info:%(info)s, \u0027\r"},{"line_number":907,"context_line":"                         \u0027host id:%(id)s, out:%(out)s.\u0027)\r"},{"line_number":908,"context_line":"                       % {\u0027name\u0027: portname,\r"},{"line_number":909,"context_line":"                          \u0027info\u0027:portinfo,\r"},{"line_number":910,"context_line":"                          \u0027id\u0027:hostid,\r"},{"line_number":911,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":912,"context_line":"            LOG.error(err_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGd0%3D","line":909,"in_reply_to":"AAAAM3%2F%2FKWU%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":907,"context_line":"                         \u0027host id:%(id)s, out:%(out)s.\u0027)\r"},{"line_number":908,"context_line":"                       % {\u0027name\u0027: portname,\r"},{"line_number":909,"context_line":"                          \u0027info\u0027:portinfo,\r"},{"line_number":910,"context_line":"                          \u0027id\u0027:hostid,\r"},{"line_number":911,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":912,"context_line":"            LOG.error(err_msg)\r"},{"line_number":913,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKWQ%3D","line":910,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":907,"context_line":"                         \u0027host id:%(id)s, out:%(out)s.\u0027)\r"},{"line_number":908,"context_line":"                       % {\u0027name\u0027: portname,\r"},{"line_number":909,"context_line":"                          \u0027info\u0027:portinfo,\r"},{"line_number":910,"context_line":"                          \u0027id\u0027:hostid,\r"},{"line_number":911,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":912,"context_line":"            LOG.error(err_msg)\r"},{"line_number":913,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGdw%3D","line":910,"in_reply_to":"AAAAM3%2F%2FKWQ%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":908,"context_line":"                       % {\u0027name\u0027: portname,\r"},{"line_number":909,"context_line":"                          \u0027info\u0027:portinfo,\r"},{"line_number":910,"context_line":"                          \u0027id\u0027:hostid,\r"},{"line_number":911,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":912,"context_line":"            LOG.error(err_msg)\r"},{"line_number":913,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":914,"context_line":"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKWM%3D","line":911,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":908,"context_line":"                       % {\u0027name\u0027: portname,\r"},{"line_number":909,"context_line":"                          \u0027info\u0027:portinfo,\r"},{"line_number":910,"context_line":"                          \u0027id\u0027:hostid,\r"},{"line_number":911,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":912,"context_line":"            LOG.error(err_msg)\r"},{"line_number":913,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":914,"context_line":"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGds%3D","line":911,"in_reply_to":"AAAAM3%2F%2FKWM%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":915,"context_line":"    def _delete_hostport(self, portid):\r"},{"line_number":916,"context_line":"        \"\"\"Delete a host port.\"\"\"\r"},{"line_number":917,"context_line":"        cli_cmd \u003d (\u0027delhostport -force -p %(portid)s\u0027\r"},{"line_number":918,"context_line":"                   % {\u0027portid\u0027:portid})\r"},{"line_number":919,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":920,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":921,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKWI%3D","line":918,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":915,"context_line":"    def _delete_hostport(self, portid):\r"},{"line_number":916,"context_line":"        \"\"\"Delete a host port.\"\"\"\r"},{"line_number":917,"context_line":"        cli_cmd \u003d (\u0027delhostport -force -p %(portid)s\u0027\r"},{"line_number":918,"context_line":"                   % {\u0027portid\u0027:portid})\r"},{"line_number":919,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":920,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":921,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGdo%3D","line":918,"in_reply_to":"AAAAM3%2F%2FKWI%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":931,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":932,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":933,"context_line":"        en \u003d re.split(\u0027\\r\\n\u0027, out)\r"},{"line_number":934,"context_line":"        if len(en) \u003c 4 :\r"},{"line_number":935,"context_line":"            return None\r"},{"line_number":936,"context_line":"        index \u003d en[4].find(\u0027iqn\u0027)\r"},{"line_number":937,"context_line":"        iqn_prefix \u003d en[4][index:]\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKWA%3D","line":934,"updated":"2013-02-05 06:51:46.000000000","message":"no whitespace after 4","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":931,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":932,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":933,"context_line":"        en \u003d re.split(\u0027\\r\\n\u0027, out)\r"},{"line_number":934,"context_line":"        if len(en) \u003c 4 :\r"},{"line_number":935,"context_line":"            return None\r"},{"line_number":936,"context_line":"        index \u003d en[4].find(\u0027iqn\u0027)\r"},{"line_number":937,"context_line":"        iqn_prefix \u003d en[4][index:]\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGdk%3D","line":934,"in_reply_to":"AAAAM3%2F%2FKWA%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":950,"context_line":"            for i in range(0, len(iqn_suffix)):\r"},{"line_number":951,"context_line":"                if iqn_suffix[i] !\u003d \u00270\u0027:\r"},{"line_number":952,"context_line":"                    iqn_suffix \u003d iqn_suffix[i:]\r"},{"line_number":953,"context_line":"\t\t    break\r"},{"line_number":954,"context_line":"\r"},{"line_number":955,"context_line":"            if self.device_type[\u0027type\u0027] \u003d\u003d \"Tseries\":\r"},{"line_number":956,"context_line":"                iqn \u003d iqn_prefix + \":\" + iqn_suffix + \":\" \\\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKV4%3D","line":953,"updated":"2013-02-05 06:51:46.000000000","message":"no tabs","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":950,"context_line":"            for i in range(0, len(iqn_suffix)):\r"},{"line_number":951,"context_line":"                if iqn_suffix[i] !\u003d \u00270\u0027:\r"},{"line_number":952,"context_line":"                    iqn_suffix \u003d iqn_suffix[i:]\r"},{"line_number":953,"context_line":"\t\t    break\r"},{"line_number":954,"context_line":"\r"},{"line_number":955,"context_line":"            if self.device_type[\u0027type\u0027] \u003d\u003d \"Tseries\":\r"},{"line_number":956,"context_line":"                iqn \u003d iqn_prefix + \":\" + iqn_suffix + \":\" \\\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGdg%3D","line":953,"in_reply_to":"AAAAM3%2F%2FKV4%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":969,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":970,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":971,"context_line":"        en \u003d out.split(\u0027\\r\\n\u0027)\r"},{"line_number":972,"context_line":"        if len(en) \u003c 6 :\r"},{"line_number":973,"context_line":"            return None\r"},{"line_number":974,"context_line":"        iscsiIPinfo \u003d {}\r"},{"line_number":975,"context_line":"        for i in range(6, len(en) - 3):\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKVs%3D","line":972,"updated":"2013-02-05 06:51:46.000000000","message":"no whitespace after 6","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":969,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":970,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":971,"context_line":"        en \u003d out.split(\u0027\\r\\n\u0027)\r"},{"line_number":972,"context_line":"        if len(en) \u003c 6 :\r"},{"line_number":973,"context_line":"            return None\r"},{"line_number":974,"context_line":"        iscsiIPinfo \u003d {}\r"},{"line_number":975,"context_line":"        for i in range(6, len(en) - 3):\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGdU%3D","line":972,"in_reply_to":"AAAAM3%2F%2FKVs%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":985,"context_line":"    def _map_lun(self, lunid, hostid):\r"},{"line_number":986,"context_line":"        \"\"\"Map a lun to a lost\"\"\"\r"},{"line_number":987,"context_line":"        cli_cmd \u003d (\u0027addhostmap -host %(hostid)s -devlun %(lunid)s\u0027\r"},{"line_number":988,"context_line":"                   % {\u0027hostid\u0027:hostid,\r"},{"line_number":989,"context_line":"                      \u0027lunid\u0027:lunid})\r"},{"line_number":990,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":991,"context_line":"        self._check_cli_result(out, res)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKVo%3D","line":988,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":985,"context_line":"    def _map_lun(self, lunid, hostid):\r"},{"line_number":986,"context_line":"        \"\"\"Map a lun to a lost\"\"\"\r"},{"line_number":987,"context_line":"        cli_cmd \u003d (\u0027addhostmap -host %(hostid)s -devlun %(lunid)s\u0027\r"},{"line_number":988,"context_line":"                   % {\u0027hostid\u0027:hostid,\r"},{"line_number":989,"context_line":"                      \u0027lunid\u0027:lunid})\r"},{"line_number":990,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":991,"context_line":"        self._check_cli_result(out, res)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGdQ%3D","line":988,"in_reply_to":"AAAAM3%2F%2FKVo%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":986,"context_line":"        \"\"\"Map a lun to a lost\"\"\"\r"},{"line_number":987,"context_line":"        cli_cmd \u003d (\u0027addhostmap -host %(hostid)s -devlun %(lunid)s\u0027\r"},{"line_number":988,"context_line":"                   % {\u0027hostid\u0027:hostid,\r"},{"line_number":989,"context_line":"                      \u0027lunid\u0027:lunid})\r"},{"line_number":990,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":991,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":992,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKVk%3D","line":989,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":986,"context_line":"        \"\"\"Map a lun to a lost\"\"\"\r"},{"line_number":987,"context_line":"        cli_cmd \u003d (\u0027addhostmap -host %(hostid)s -devlun %(lunid)s\u0027\r"},{"line_number":988,"context_line":"                   % {\u0027hostid\u0027:hostid,\r"},{"line_number":989,"context_line":"                      \u0027lunid\u0027:lunid})\r"},{"line_number":990,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":991,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":992,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGdM%3D","line":989,"in_reply_to":"AAAAM3%2F%2FKVk%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":994,"context_line":"            err_msg \u003d (_(\u0027_map_lun:ERROR:Failed to add hostmap.hostid:%(host)s\u0027\r"},{"line_number":995,"context_line":"                         \u0027lunid:%(lun)s.out:%(out)s\u0027)\r"},{"line_number":996,"context_line":"                       % {\u0027host\u0027: hostid,\r"},{"line_number":997,"context_line":"                          \u0027lun\u0027:lunid,\r"},{"line_number":998,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":999,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1000,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKVg%3D","line":997,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":994,"context_line":"            err_msg \u003d (_(\u0027_map_lun:ERROR:Failed to add hostmap.hostid:%(host)s\u0027\r"},{"line_number":995,"context_line":"                         \u0027lunid:%(lun)s.out:%(out)s\u0027)\r"},{"line_number":996,"context_line":"                       % {\u0027host\u0027: hostid,\r"},{"line_number":997,"context_line":"                          \u0027lun\u0027:lunid,\r"},{"line_number":998,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":999,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1000,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGdI%3D","line":997,"in_reply_to":"AAAAM3%2F%2FKVg%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":995,"context_line":"                         \u0027lunid:%(lun)s.out:%(out)s\u0027)\r"},{"line_number":996,"context_line":"                       % {\u0027host\u0027: hostid,\r"},{"line_number":997,"context_line":"                          \u0027lun\u0027:lunid,\r"},{"line_number":998,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":999,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1000,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1001,"context_line":"    \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKVc%3D","line":998,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":995,"context_line":"                         \u0027lunid:%(lun)s.out:%(out)s\u0027)\r"},{"line_number":996,"context_line":"                       % {\u0027host\u0027: hostid,\r"},{"line_number":997,"context_line":"                          \u0027lun\u0027:lunid,\r"},{"line_number":998,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":999,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1000,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1001,"context_line":"    \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGdE%3D","line":998,"in_reply_to":"AAAAM3%2F%2FKVc%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1010,"context_line":"                \r"},{"line_number":1011,"context_line":"    def _delete_map(self, mapid):\r"},{"line_number":1012,"context_line":"        \"\"\"Remove the maping.\"\"\"\r"},{"line_number":1013,"context_line":"        cli_cmd \u003d (\u0027delhostmap -force -map %(mapid)s\u0027\r"},{"line_number":1014,"context_line":"                       % {\u0027mapid\u0027:mapid})\r"},{"line_number":1015,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1016,"context_line":"        self._check_cli_result(out, res)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKVU%3D","line":1013,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1010,"context_line":"                \r"},{"line_number":1011,"context_line":"    def _delete_map(self, mapid):\r"},{"line_number":1012,"context_line":"        \"\"\"Remove the maping.\"\"\"\r"},{"line_number":1013,"context_line":"        cli_cmd \u003d (\u0027delhostmap -force -map %(mapid)s\u0027\r"},{"line_number":1014,"context_line":"                       % {\u0027mapid\u0027:mapid})\r"},{"line_number":1015,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1016,"context_line":"        self._check_cli_result(out, res)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGdA%3D","line":1013,"in_reply_to":"AAAAM3%2F%2FKVU%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1011,"context_line":"    def _delete_map(self, mapid):\r"},{"line_number":1012,"context_line":"        \"\"\"Remove the maping.\"\"\"\r"},{"line_number":1013,"context_line":"        cli_cmd \u003d (\u0027delhostmap -force -map %(mapid)s\u0027\r"},{"line_number":1014,"context_line":"                       % {\u0027mapid\u0027:mapid})\r"},{"line_number":1015,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1016,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":1017,"context_line":"        #We retry to delete host map 10s later if there are\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKVY%3D","line":1014,"updated":"2013-02-05 06:51:46.000000000","message":"line over-indented","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1011,"context_line":"    def _delete_map(self, mapid):\r"},{"line_number":1012,"context_line":"        \"\"\"Remove the maping.\"\"\"\r"},{"line_number":1013,"context_line":"        cli_cmd \u003d (\u0027delhostmap -force -map %(mapid)s\u0027\r"},{"line_number":1014,"context_line":"                       % {\u0027mapid\u0027:mapid})\r"},{"line_number":1015,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1016,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":1017,"context_line":"        #We retry to delete host map 10s later if there are\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGc4%3D","line":1014,"in_reply_to":"AAAAM3%2F%2FKVY%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1020,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"},{"line_number":1021,"context_line":"        if matchobject is None:\r"},{"line_number":1022,"context_line":"            matchobject2 \u003d re.search(\u0027there are IOs accessing the system\u0027, out)\r"},{"line_number":1023,"context_line":"    \t    if matchobject2:\r"},{"line_number":1024,"context_line":"                time.sleep(10)\r"},{"line_number":1025,"context_line":"                LOG.debug(_(\u0027_delete_map:There are IOs accessing the system. \u0027\r"},{"line_number":1026,"context_line":"                            \u0027Retry to delete host map. map id:%s\u0027)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKVQ%3D","line":1023,"updated":"2013-02-05 06:51:46.000000000","message":"no tabs","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1020,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"},{"line_number":1021,"context_line":"        if matchobject is None:\r"},{"line_number":1022,"context_line":"            matchobject2 \u003d re.search(\u0027there are IOs accessing the system\u0027, out)\r"},{"line_number":1023,"context_line":"    \t    if matchobject2:\r"},{"line_number":1024,"context_line":"                time.sleep(10)\r"},{"line_number":1025,"context_line":"                LOG.debug(_(\u0027_delete_map:There are IOs accessing the system. \u0027\r"},{"line_number":1026,"context_line":"                            \u0027Retry to delete host map. map id:%s\u0027)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGc0%3D","line":1023,"in_reply_to":"AAAAM3%2F%2FKVQ%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1024,"context_line":"                time.sleep(10)\r"},{"line_number":1025,"context_line":"                LOG.debug(_(\u0027_delete_map:There are IOs accessing the system. \u0027\r"},{"line_number":1026,"context_line":"                            \u0027Retry to delete host map. map id:%s\u0027)\r"},{"line_number":1027,"context_line":"                            % mapid)\r"},{"line_number":1028,"context_line":"    \t        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1029,"context_line":"                self._check_cli_result(out, res)\r"},{"line_number":1030,"context_line":"            \tmatchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKVI%3D","line":1027,"updated":"2013-02-05 06:51:46.000000000","message":"line over-indented","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1024,"context_line":"                time.sleep(10)\r"},{"line_number":1025,"context_line":"                LOG.debug(_(\u0027_delete_map:There are IOs accessing the system. \u0027\r"},{"line_number":1026,"context_line":"                            \u0027Retry to delete host map. map id:%s\u0027)\r"},{"line_number":1027,"context_line":"                            % mapid)\r"},{"line_number":1028,"context_line":"    \t        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1029,"context_line":"                self._check_cli_result(out, res)\r"},{"line_number":1030,"context_line":"            \tmatchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGcs%3D","line":1027,"in_reply_to":"AAAAM3%2F%2FKVI%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1025,"context_line":"                LOG.debug(_(\u0027_delete_map:There are IOs accessing the system. \u0027\r"},{"line_number":1026,"context_line":"                            \u0027Retry to delete host map. map id:%s\u0027)\r"},{"line_number":1027,"context_line":"                            % mapid)\r"},{"line_number":1028,"context_line":"    \t        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1029,"context_line":"                self._check_cli_result(out, res)\r"},{"line_number":1030,"context_line":"            \tmatchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"},{"line_number":1031,"context_line":"                if matchobject is None:\t    \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKU8%3D","line":1028,"updated":"2013-02-05 06:51:46.000000000","message":"no tabs","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1025,"context_line":"                LOG.debug(_(\u0027_delete_map:There are IOs accessing the system. \u0027\r"},{"line_number":1026,"context_line":"                            \u0027Retry to delete host map. map id:%s\u0027)\r"},{"line_number":1027,"context_line":"                            % mapid)\r"},{"line_number":1028,"context_line":"    \t        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1029,"context_line":"                self._check_cli_result(out, res)\r"},{"line_number":1030,"context_line":"            \tmatchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"},{"line_number":1031,"context_line":"                if matchobject is None:\t    \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGco%3D","line":1028,"in_reply_to":"AAAAM3%2F%2FKU8%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1027,"context_line":"                            % mapid)\r"},{"line_number":1028,"context_line":"    \t        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1029,"context_line":"                self._check_cli_result(out, res)\r"},{"line_number":1030,"context_line":"            \tmatchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"},{"line_number":1031,"context_line":"                if matchobject is None:\t    \r"},{"line_number":1032,"context_line":"    \t            flg \u003d True\r"},{"line_number":1033,"context_line":"                else:\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKU4%3D","line":1030,"updated":"2013-02-05 06:51:46.000000000","message":"no tabs","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1027,"context_line":"                            % mapid)\r"},{"line_number":1028,"context_line":"    \t        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1029,"context_line":"                self._check_cli_result(out, res)\r"},{"line_number":1030,"context_line":"            \tmatchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"},{"line_number":1031,"context_line":"                if matchobject is None:\t    \r"},{"line_number":1032,"context_line":"    \t            flg \u003d True\r"},{"line_number":1033,"context_line":"                else:\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGck%3D","line":1030,"in_reply_to":"AAAAM3%2F%2FKU4%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1028,"context_line":"    \t        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1029,"context_line":"                self._check_cli_result(out, res)\r"},{"line_number":1030,"context_line":"            \tmatchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"},{"line_number":1031,"context_line":"                if matchobject is None:\t    \r"},{"line_number":1032,"context_line":"    \t            flg \u003d True\r"},{"line_number":1033,"context_line":"                else:\r"},{"line_number":1034,"context_line":"                    flg \u003d False\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKUw%3D","line":1031,"updated":"2013-02-05 06:51:46.000000000","message":"no tabs","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1028,"context_line":"    \t        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1029,"context_line":"                self._check_cli_result(out, res)\r"},{"line_number":1030,"context_line":"            \tmatchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"},{"line_number":1031,"context_line":"                if matchobject is None:\t    \r"},{"line_number":1032,"context_line":"    \t            flg \u003d True\r"},{"line_number":1033,"context_line":"                else:\r"},{"line_number":1034,"context_line":"                    flg \u003d False\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGcg%3D","line":1031,"in_reply_to":"AAAAM3%2F%2FKUw%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1029,"context_line":"                self._check_cli_result(out, res)\r"},{"line_number":1030,"context_line":"            \tmatchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"},{"line_number":1031,"context_line":"                if matchobject is None:\t    \r"},{"line_number":1032,"context_line":"    \t            flg \u003d True\r"},{"line_number":1033,"context_line":"                else:\r"},{"line_number":1034,"context_line":"                    flg \u003d False\r"},{"line_number":1035,"context_line":"        if flg \u003d\u003d True:\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKUs%3D","line":1032,"updated":"2013-02-05 06:51:46.000000000","message":"no tabs","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1029,"context_line":"                self._check_cli_result(out, res)\r"},{"line_number":1030,"context_line":"            \tmatchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"},{"line_number":1031,"context_line":"                if matchobject is None:\t    \r"},{"line_number":1032,"context_line":"    \t            flg \u003d True\r"},{"line_number":1033,"context_line":"                else:\r"},{"line_number":1034,"context_line":"                    flg \u003d False\r"},{"line_number":1035,"context_line":"        if flg \u003d\u003d True:\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGcc%3D","line":1032,"in_reply_to":"AAAAM3%2F%2FKUs%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1032,"context_line":"    \t            flg \u003d True\r"},{"line_number":1033,"context_line":"                else:\r"},{"line_number":1034,"context_line":"                    flg \u003d False\r"},{"line_number":1035,"context_line":"        if flg \u003d\u003d True:\r"},{"line_number":1036,"context_line":"            err_msg \u003d (_(\u0027_delete_map:ERROR:Failed to delete host map. \u0027\r"},{"line_number":1037,"context_line":"                         \u0027mapid:%(mapid)s. out:%(out)s\u0027)\r"},{"line_number":1038,"context_line":"                         % {\u0027mapid\u0027:mapid,\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKUo%3D","line":1035,"updated":"2013-02-05 06:51:46.000000000","message":"should be:\n\nif flg is True:","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1032,"context_line":"    \t            flg \u003d True\r"},{"line_number":1033,"context_line":"                else:\r"},{"line_number":1034,"context_line":"                    flg \u003d False\r"},{"line_number":1035,"context_line":"        if flg \u003d\u003d True:\r"},{"line_number":1036,"context_line":"            err_msg \u003d (_(\u0027_delete_map:ERROR:Failed to delete host map. \u0027\r"},{"line_number":1037,"context_line":"                         \u0027mapid:%(mapid)s. out:%(out)s\u0027)\r"},{"line_number":1038,"context_line":"                         % {\u0027mapid\u0027:mapid,\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGcY%3D","line":1035,"in_reply_to":"AAAAM3%2F%2FKUo%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1034,"context_line":"                    flg \u003d False\r"},{"line_number":1035,"context_line":"        if flg \u003d\u003d True:\r"},{"line_number":1036,"context_line":"            err_msg \u003d (_(\u0027_delete_map:ERROR:Failed to delete host map. \u0027\r"},{"line_number":1037,"context_line":"                         \u0027mapid:%(mapid)s. out:%(out)s\u0027)\r"},{"line_number":1038,"context_line":"                         % {\u0027mapid\u0027:mapid,\r"},{"line_number":1039,"context_line":"                            \u0027out\u0027:out})\r"},{"line_number":1040,"context_line":"            LOG.error(err_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKUc%3D","line":1037,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1034,"context_line":"                    flg \u003d False\r"},{"line_number":1035,"context_line":"        if flg \u003d\u003d True:\r"},{"line_number":1036,"context_line":"            err_msg \u003d (_(\u0027_delete_map:ERROR:Failed to delete host map. \u0027\r"},{"line_number":1037,"context_line":"                         \u0027mapid:%(mapid)s. out:%(out)s\u0027)\r"},{"line_number":1038,"context_line":"                         % {\u0027mapid\u0027:mapid,\r"},{"line_number":1039,"context_line":"                            \u0027out\u0027:out})\r"},{"line_number":1040,"context_line":"            LOG.error(err_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGcA%3D","line":1037,"in_reply_to":"AAAAM3%2F%2FKUc%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1035,"context_line":"        if flg \u003d\u003d True:\r"},{"line_number":1036,"context_line":"            err_msg \u003d (_(\u0027_delete_map:ERROR:Failed to delete host map. \u0027\r"},{"line_number":1037,"context_line":"                         \u0027mapid:%(mapid)s. out:%(out)s\u0027)\r"},{"line_number":1038,"context_line":"                         % {\u0027mapid\u0027:mapid,\r"},{"line_number":1039,"context_line":"                            \u0027out\u0027:out})\r"},{"line_number":1040,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1041,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKUg%3D","line":1038,"updated":"2013-02-05 06:51:46.000000000","message":"line over-indented","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1035,"context_line":"        if flg \u003d\u003d True:\r"},{"line_number":1036,"context_line":"            err_msg \u003d (_(\u0027_delete_map:ERROR:Failed to delete host map. \u0027\r"},{"line_number":1037,"context_line":"                         \u0027mapid:%(mapid)s. out:%(out)s\u0027)\r"},{"line_number":1038,"context_line":"                         % {\u0027mapid\u0027:mapid,\r"},{"line_number":1039,"context_line":"                            \u0027out\u0027:out})\r"},{"line_number":1040,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1041,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGb4%3D","line":1038,"in_reply_to":"AAAAM3%2F%2FKUg%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1036,"context_line":"            err_msg \u003d (_(\u0027_delete_map:ERROR:Failed to delete host map. \u0027\r"},{"line_number":1037,"context_line":"                         \u0027mapid:%(mapid)s. out:%(out)s\u0027)\r"},{"line_number":1038,"context_line":"                         % {\u0027mapid\u0027:mapid,\r"},{"line_number":1039,"context_line":"                            \u0027out\u0027:out})\r"},{"line_number":1040,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1041,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1042,"context_line":"    \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKUY%3D","line":1039,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1036,"context_line":"            err_msg \u003d (_(\u0027_delete_map:ERROR:Failed to delete host map. \u0027\r"},{"line_number":1037,"context_line":"                         \u0027mapid:%(mapid)s. out:%(out)s\u0027)\r"},{"line_number":1038,"context_line":"                         % {\u0027mapid\u0027:mapid,\r"},{"line_number":1039,"context_line":"                            \u0027out\u0027:out})\r"},{"line_number":1040,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1041,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1042,"context_line":"    \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGb0%3D","line":1039,"in_reply_to":"AAAAM3%2F%2FKUY%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1043,"context_line":"    def _delete_host(self, hostid): \r"},{"line_number":1044,"context_line":"        \"\"\"Delete a host.\"\"\"\r"},{"line_number":1045,"context_line":"        cli_cmd \u003d (\u0027delhost -force -host %(hostid)s\u0027\r"},{"line_number":1046,"context_line":"                   % {\u0027hostid\u0027:hostid})\r"},{"line_number":1047,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1048,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":1049,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKUQ%3D","line":1046,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1043,"context_line":"    def _delete_host(self, hostid): \r"},{"line_number":1044,"context_line":"        \"\"\"Delete a host.\"\"\"\r"},{"line_number":1045,"context_line":"        cli_cmd \u003d (\u0027delhost -force -host %(hostid)s\u0027\r"},{"line_number":1046,"context_line":"                   % {\u0027hostid\u0027:hostid})\r"},{"line_number":1047,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1048,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":1049,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGbw%3D","line":1046,"in_reply_to":"AAAAM3%2F%2FKUQ%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1050,"context_line":"        if matchobject is None:\r"},{"line_number":1051,"context_line":"            err_msg \u003d (_(\u0027Error: Failed delete host,host id: %(hostid)s.\u0027\r"},{"line_number":1052,"context_line":"                         \u0027out:%(out)s\u0027\r"},{"line_number":1053,"context_line":"                         % {\u0027hostid\u0027:hostid,\r"},{"line_number":1054,"context_line":"                            \u0027out\u0027:out}))\r"},{"line_number":1055,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1056,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKUM%3D","line":1053,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1050,"context_line":"        if matchobject is None:\r"},{"line_number":1051,"context_line":"            err_msg \u003d (_(\u0027Error: Failed delete host,host id: %(hostid)s.\u0027\r"},{"line_number":1052,"context_line":"                         \u0027out:%(out)s\u0027\r"},{"line_number":1053,"context_line":"                         % {\u0027hostid\u0027:hostid,\r"},{"line_number":1054,"context_line":"                            \u0027out\u0027:out}))\r"},{"line_number":1055,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1056,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGbs%3D","line":1053,"in_reply_to":"AAAAM3%2F%2FKUM%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1051,"context_line":"            err_msg \u003d (_(\u0027Error: Failed delete host,host id: %(hostid)s.\u0027\r"},{"line_number":1052,"context_line":"                         \u0027out:%(out)s\u0027\r"},{"line_number":1053,"context_line":"                         % {\u0027hostid\u0027:hostid,\r"},{"line_number":1054,"context_line":"                            \u0027out\u0027:out}))\r"},{"line_number":1055,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1056,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1057,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKUI%3D","line":1054,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1051,"context_line":"            err_msg \u003d (_(\u0027Error: Failed delete host,host id: %(hostid)s.\u0027\r"},{"line_number":1052,"context_line":"                         \u0027out:%(out)s\u0027\r"},{"line_number":1053,"context_line":"                         % {\u0027hostid\u0027:hostid,\r"},{"line_number":1054,"context_line":"                            \u0027out\u0027:out}))\r"},{"line_number":1055,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1056,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1057,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGbo%3D","line":1054,"in_reply_to":"AAAAM3%2F%2FKUI%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1104,"context_line":"                    product_version \u003d None\r"},{"line_number":1105,"context_line":"                break\r"},{"line_number":1106,"context_line":"\r"},{"line_number":1107,"context_line":"        r \u003d {\u0027type\u0027:device_type, \u0027version\u0027:product_version}\r"},{"line_number":1108,"context_line":"        return r\r"},{"line_number":1109,"context_line":"\r"},{"line_number":1110,"context_line":"    def _active_snapshot(self, snapshotid):\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKUE%3D","line":1107,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1104,"context_line":"                    product_version \u003d None\r"},{"line_number":1105,"context_line":"                break\r"},{"line_number":1106,"context_line":"\r"},{"line_number":1107,"context_line":"        r \u003d {\u0027type\u0027:device_type, \u0027version\u0027:product_version}\r"},{"line_number":1108,"context_line":"        return r\r"},{"line_number":1109,"context_line":"\r"},{"line_number":1110,"context_line":"    def _active_snapshot(self, snapshotid):\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGbg%3D","line":1107,"in_reply_to":"AAAAM3%2F%2FKUE%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1110,"context_line":"    def _active_snapshot(self, snapshotid):\r"},{"line_number":1111,"context_line":"        \"\"\"Active a snapshot.\"\"\"\r"},{"line_number":1112,"context_line":"        cli_cmd \u003d (\u0027actvsnapshot -snapshot %(snapshotid)s\u0027\r"},{"line_number":1113,"context_line":"                   % {\u0027snapshotid\u0027:snapshotid})\r"},{"line_number":1114,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1115,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":1116,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKUA%3D","line":1113,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1110,"context_line":"    def _active_snapshot(self, snapshotid):\r"},{"line_number":1111,"context_line":"        \"\"\"Active a snapshot.\"\"\"\r"},{"line_number":1112,"context_line":"        cli_cmd \u003d (\u0027actvsnapshot -snapshot %(snapshotid)s\u0027\r"},{"line_number":1113,"context_line":"                   % {\u0027snapshotid\u0027:snapshotid})\r"},{"line_number":1114,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1115,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":1116,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGbc%3D","line":1113,"in_reply_to":"AAAAM3%2F%2FKUA%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1117,"context_line":"        if matchobject is None:\r"},{"line_number":1118,"context_line":"            err_msg \u003d (_(\u0027_active_snapshot:ERROR:Failed to active snapshot. \u0027\r"},{"line_number":1119,"context_line":"                         \u0027snapshot id:%(name)s. out:%(out)s\u0027)\r"},{"line_number":1120,"context_line":"                       % {\u0027name\u0027:snapshotid,\r"},{"line_number":1121,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1122,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1123,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKT8%3D","line":1120,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1117,"context_line":"        if matchobject is None:\r"},{"line_number":1118,"context_line":"            err_msg \u003d (_(\u0027_active_snapshot:ERROR:Failed to active snapshot. \u0027\r"},{"line_number":1119,"context_line":"                         \u0027snapshot id:%(name)s. out:%(out)s\u0027)\r"},{"line_number":1120,"context_line":"                       % {\u0027name\u0027:snapshotid,\r"},{"line_number":1121,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1122,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1123,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGbU%3D","line":1120,"in_reply_to":"AAAAM3%2F%2FKT8%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1118,"context_line":"            err_msg \u003d (_(\u0027_active_snapshot:ERROR:Failed to active snapshot. \u0027\r"},{"line_number":1119,"context_line":"                         \u0027snapshot id:%(name)s. out:%(out)s\u0027)\r"},{"line_number":1120,"context_line":"                       % {\u0027name\u0027:snapshotid,\r"},{"line_number":1121,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1122,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1123,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1124,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKT0%3D","line":1121,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1118,"context_line":"            err_msg \u003d (_(\u0027_active_snapshot:ERROR:Failed to active snapshot. \u0027\r"},{"line_number":1119,"context_line":"                         \u0027snapshot id:%(name)s. out:%(out)s\u0027)\r"},{"line_number":1120,"context_line":"                       % {\u0027name\u0027:snapshotid,\r"},{"line_number":1121,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1122,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1123,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1124,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGbM%3D","line":1121,"in_reply_to":"AAAAM3%2F%2FKT0%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1125,"context_line":"    def _disable_snapshot(self, snapshotid):\r"},{"line_number":1126,"context_line":"        \"\"\"Disable a snapshot.\"\"\"\r"},{"line_number":1127,"context_line":"        cli_cmd \u003d (\u0027disablesnapshot -snapshot %(snapshotid)s\u0027\r"},{"line_number":1128,"context_line":"                   % {\u0027snapshotid\u0027:snapshotid})\r"},{"line_number":1129,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1130,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":1131,"context_line":"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKTw%3D","line":1128,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1125,"context_line":"    def _disable_snapshot(self, snapshotid):\r"},{"line_number":1126,"context_line":"        \"\"\"Disable a snapshot.\"\"\"\r"},{"line_number":1127,"context_line":"        cli_cmd \u003d (\u0027disablesnapshot -snapshot %(snapshotid)s\u0027\r"},{"line_number":1128,"context_line":"                   % {\u0027snapshotid\u0027:snapshotid})\r"},{"line_number":1129,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1130,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":1131,"context_line":"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGbI%3D","line":1128,"in_reply_to":"AAAAM3%2F%2FKTw%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1133,"context_line":"        if matchobject is None:\r"},{"line_number":1134,"context_line":"            err_msg \u003d (_(\u0027_disable_snapshot:ERROR:Failed to disable snapshot. \u0027\r"},{"line_number":1135,"context_line":"                         \u0027snapshot id:%(id)s. out:%(out)s\u0027)\r"},{"line_number":1136,"context_line":"                       % {\u0027id\u0027:snapshotid,\r"},{"line_number":1137,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1138,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1139,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKTo%3D","line":1136,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1133,"context_line":"        if matchobject is None:\r"},{"line_number":1134,"context_line":"            err_msg \u003d (_(\u0027_disable_snapshot:ERROR:Failed to disable snapshot. \u0027\r"},{"line_number":1135,"context_line":"                         \u0027snapshot id:%(id)s. out:%(out)s\u0027)\r"},{"line_number":1136,"context_line":"                       % {\u0027id\u0027:snapshotid,\r"},{"line_number":1137,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1138,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1139,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGa8%3D","line":1136,"in_reply_to":"AAAAM3%2F%2FKTo%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1134,"context_line":"            err_msg \u003d (_(\u0027_disable_snapshot:ERROR:Failed to disable snapshot. \u0027\r"},{"line_number":1135,"context_line":"                         \u0027snapshot id:%(id)s. out:%(out)s\u0027)\r"},{"line_number":1136,"context_line":"                       % {\u0027id\u0027:snapshotid,\r"},{"line_number":1137,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1138,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1139,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1140,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKTk%3D","line":1137,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1134,"context_line":"            err_msg \u003d (_(\u0027_disable_snapshot:ERROR:Failed to disable snapshot. \u0027\r"},{"line_number":1135,"context_line":"                         \u0027snapshot id:%(id)s. out:%(out)s\u0027)\r"},{"line_number":1136,"context_line":"                       % {\u0027id\u0027:snapshotid,\r"},{"line_number":1137,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1138,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1139,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1140,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGa4%3D","line":1137,"in_reply_to":"AAAAM3%2F%2FKTk%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1141,"context_line":"    def _delete_snapshot(self, snapshotid):   \r"},{"line_number":1142,"context_line":"        \"\"\"Delete a snapshot.\"\"\"\r"},{"line_number":1143,"context_line":"        cli_cmd \u003d (\u0027delsnapshot -snapshot %(snapshotid)s\u0027\r"},{"line_number":1144,"context_line":"                   % {\u0027snapshotid\u0027:snapshotid})\r"},{"line_number":1145,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1146,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":1147,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKTc%3D","line":1144,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1141,"context_line":"    def _delete_snapshot(self, snapshotid):   \r"},{"line_number":1142,"context_line":"        \"\"\"Delete a snapshot.\"\"\"\r"},{"line_number":1143,"context_line":"        cli_cmd \u003d (\u0027delsnapshot -snapshot %(snapshotid)s\u0027\r"},{"line_number":1144,"context_line":"                   % {\u0027snapshotid\u0027:snapshotid})\r"},{"line_number":1145,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1146,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":1147,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGa0%3D","line":1144,"in_reply_to":"AAAAM3%2F%2FKTc%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1148,"context_line":"        if matchobject is None:\r"},{"line_number":1149,"context_line":"            err_msg \u003d (_(\u0027_delete_snapshot:ERROR:Failed to delete snapshot. \u0027\r"},{"line_number":1150,"context_line":"                         \u0027snapshot id:%(id)s. out:%(out)s\u0027)\r"},{"line_number":1151,"context_line":"                       % {\u0027id\u0027:snapshotid,\r"},{"line_number":1152,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1153,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1154,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKTU%3D","line":1151,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1148,"context_line":"        if matchobject is None:\r"},{"line_number":1149,"context_line":"            err_msg \u003d (_(\u0027_delete_snapshot:ERROR:Failed to delete snapshot. \u0027\r"},{"line_number":1150,"context_line":"                         \u0027snapshot id:%(id)s. out:%(out)s\u0027)\r"},{"line_number":1151,"context_line":"                       % {\u0027id\u0027:snapshotid,\r"},{"line_number":1152,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1153,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1154,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGaw%3D","line":1151,"in_reply_to":"AAAAM3%2F%2FKTU%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1149,"context_line":"            err_msg \u003d (_(\u0027_delete_snapshot:ERROR:Failed to delete snapshot. \u0027\r"},{"line_number":1150,"context_line":"                         \u0027snapshot id:%(id)s. out:%(out)s\u0027)\r"},{"line_number":1151,"context_line":"                       % {\u0027id\u0027:snapshotid,\r"},{"line_number":1152,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1153,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1154,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1155,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKTQ%3D","line":1152,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1149,"context_line":"            err_msg \u003d (_(\u0027_delete_snapshot:ERROR:Failed to delete snapshot. \u0027\r"},{"line_number":1150,"context_line":"                         \u0027snapshot id:%(id)s. out:%(out)s\u0027)\r"},{"line_number":1151,"context_line":"                       % {\u0027id\u0027:snapshotid,\r"},{"line_number":1152,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1153,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1154,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1155,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGas%3D","line":1152,"in_reply_to":"AAAAM3%2F%2FKTQ%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1159,"context_line":"        lunsetinfo \u003d self._get_lun_set_info()\r"},{"line_number":1160,"context_line":"        cli_cmd \u003d (\u0027createlun -n %(name)s -lunsize %(size)s \u0027\r"},{"line_number":1161,"context_line":"                   \u0027-wrtype %(wrtype)s \u0027\r"},{"line_number":1162,"context_line":"                   % {\u0027name\u0027:name,\r"},{"line_number":1163,"context_line":"                      \u0027size\u0027:size,\r"},{"line_number":1164,"context_line":"                      \u0027wrtype\u0027:lunsetinfo[\u0027WriteType\u0027]})\r"},{"line_number":1165,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKTM%3D","line":1162,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1159,"context_line":"        lunsetinfo \u003d self._get_lun_set_info()\r"},{"line_number":1160,"context_line":"        cli_cmd \u003d (\u0027createlun -n %(name)s -lunsize %(size)s \u0027\r"},{"line_number":1161,"context_line":"                   \u0027-wrtype %(wrtype)s \u0027\r"},{"line_number":1162,"context_line":"                   % {\u0027name\u0027:name,\r"},{"line_number":1163,"context_line":"                      \u0027size\u0027:size,\r"},{"line_number":1164,"context_line":"                      \u0027wrtype\u0027:lunsetinfo[\u0027WriteType\u0027]})\r"},{"line_number":1165,"context_line":"        \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGao%3D","line":1162,"in_reply_to":"AAAAM3%2F%2FKTM%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1160,"context_line":"        cli_cmd \u003d (\u0027createlun -n %(name)s -lunsize %(size)s \u0027\r"},{"line_number":1161,"context_line":"                   \u0027-wrtype %(wrtype)s \u0027\r"},{"line_number":1162,"context_line":"                   % {\u0027name\u0027:name,\r"},{"line_number":1163,"context_line":"                      \u0027size\u0027:size,\r"},{"line_number":1164,"context_line":"                      \u0027wrtype\u0027:lunsetinfo[\u0027WriteType\u0027]})\r"},{"line_number":1165,"context_line":"        \r"},{"line_number":1166,"context_line":"        #If write type is \"write through\", therr is no need \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKTI%3D","line":1163,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1160,"context_line":"        cli_cmd \u003d (\u0027createlun -n %(name)s -lunsize %(size)s \u0027\r"},{"line_number":1161,"context_line":"                   \u0027-wrtype %(wrtype)s \u0027\r"},{"line_number":1162,"context_line":"                   % {\u0027name\u0027:name,\r"},{"line_number":1163,"context_line":"                      \u0027size\u0027:size,\r"},{"line_number":1164,"context_line":"                      \u0027wrtype\u0027:lunsetinfo[\u0027WriteType\u0027]})\r"},{"line_number":1165,"context_line":"        \r"},{"line_number":1166,"context_line":"        #If write type is \"write through\", therr is no need \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGag%3D","line":1163,"in_reply_to":"AAAAM3%2F%2FKTI%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1161,"context_line":"                   \u0027-wrtype %(wrtype)s \u0027\r"},{"line_number":1162,"context_line":"                   % {\u0027name\u0027:name,\r"},{"line_number":1163,"context_line":"                      \u0027size\u0027:size,\r"},{"line_number":1164,"context_line":"                      \u0027wrtype\u0027:lunsetinfo[\u0027WriteType\u0027]})\r"},{"line_number":1165,"context_line":"        \r"},{"line_number":1166,"context_line":"        #If write type is \"write through\", therr is no need \r"},{"line_number":1167,"context_line":"        #to set mirror switch.\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKTE%3D","line":1164,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1161,"context_line":"                   \u0027-wrtype %(wrtype)s \u0027\r"},{"line_number":1162,"context_line":"                   % {\u0027name\u0027:name,\r"},{"line_number":1163,"context_line":"                      \u0027size\u0027:size,\r"},{"line_number":1164,"context_line":"                      \u0027wrtype\u0027:lunsetinfo[\u0027WriteType\u0027]})\r"},{"line_number":1165,"context_line":"        \r"},{"line_number":1166,"context_line":"        #If write type is \"write through\", therr is no need \r"},{"line_number":1167,"context_line":"        #to set mirror switch.\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGac%3D","line":1164,"in_reply_to":"AAAAM3%2F%2FKTE%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1169,"context_line":"            mirrorsw \u003d \"\"\r"},{"line_number":1170,"context_line":"        else:\r"},{"line_number":1171,"context_line":"            mirrorsw \u003d (\u0027-mirrorsw %(mirrorsw)s \u0027\r"},{"line_number":1172,"context_line":"                        % {\u0027mirrorsw\u0027:lunsetinfo[\u0027MirrorSwitch\u0027]})\r"},{"line_number":1173,"context_line":"        cli_cmd \u003d cli_cmd + mirrorsw\r"},{"line_number":1174,"context_line":"        #There are differences between \"Thin\" and \"thick\" LUN \r"},{"line_number":1175,"context_line":"        #for CLI commands.\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKS8%3D","line":1172,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1169,"context_line":"            mirrorsw \u003d \"\"\r"},{"line_number":1170,"context_line":"        else:\r"},{"line_number":1171,"context_line":"            mirrorsw \u003d (\u0027-mirrorsw %(mirrorsw)s \u0027\r"},{"line_number":1172,"context_line":"                        % {\u0027mirrorsw\u0027:lunsetinfo[\u0027MirrorSwitch\u0027]})\r"},{"line_number":1173,"context_line":"        cli_cmd \u003d cli_cmd + mirrorsw\r"},{"line_number":1174,"context_line":"        #There are differences between \"Thin\" and \"thick\" LUN \r"},{"line_number":1175,"context_line":"        #for CLI commands.\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGaQ%3D","line":1172,"in_reply_to":"AAAAM3%2F%2FKS8%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1177,"context_line":"        if luntype \u003d\u003d \u0027Thin\u0027:\r"},{"line_number":1178,"context_line":"            dorado2100g2_luntype \u003d \u00272\u0027\r"},{"line_number":1179,"context_line":"            Tseries \u003d (\u0027-pool %(pool)s \u0027\r"},{"line_number":1180,"context_line":"                       % {\u0027pool\u0027:lunsetinfo[\"StoragePool\"]})\r"},{"line_number":1181,"context_line":"        else:\r"},{"line_number":1182,"context_line":"            dorado2100g2_luntype \u003d \u00273\u0027\r"},{"line_number":1183,"context_line":"            Tseries \u003d (\u0027-rg %(raidgroup)s -susize %(susize)s \u0027 \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKS4%3D","line":1180,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1177,"context_line":"        if luntype \u003d\u003d \u0027Thin\u0027:\r"},{"line_number":1178,"context_line":"            dorado2100g2_luntype \u003d \u00272\u0027\r"},{"line_number":1179,"context_line":"            Tseries \u003d (\u0027-pool %(pool)s \u0027\r"},{"line_number":1180,"context_line":"                       % {\u0027pool\u0027:lunsetinfo[\"StoragePool\"]})\r"},{"line_number":1181,"context_line":"        else:\r"},{"line_number":1182,"context_line":"            dorado2100g2_luntype \u003d \u00273\u0027\r"},{"line_number":1183,"context_line":"            Tseries \u003d (\u0027-rg %(raidgroup)s -susize %(susize)s \u0027 \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGaM%3D","line":1180,"in_reply_to":"AAAAM3%2F%2FKS4%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1181,"context_line":"        else:\r"},{"line_number":1182,"context_line":"            dorado2100g2_luntype \u003d \u00273\u0027\r"},{"line_number":1183,"context_line":"            Tseries \u003d (\u0027-rg %(raidgroup)s -susize %(susize)s \u0027 \r"},{"line_number":1184,"context_line":"                       % {\u0027raidgroup\u0027:lunsetinfo[\"StoragePool\"],\r"},{"line_number":1185,"context_line":"                          \u0027susize\u0027:lunsetinfo[\"StripUnitSize\"]})\r"},{"line_number":1186,"context_line":"        prevalue \u003d \"\"\r"},{"line_number":1187,"context_line":"        pretimes \u003d \"\"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKS0%3D","line":1184,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1181,"context_line":"        else:\r"},{"line_number":1182,"context_line":"            dorado2100g2_luntype \u003d \u00273\u0027\r"},{"line_number":1183,"context_line":"            Tseries \u003d (\u0027-rg %(raidgroup)s -susize %(susize)s \u0027 \r"},{"line_number":1184,"context_line":"                       % {\u0027raidgroup\u0027:lunsetinfo[\"StoragePool\"],\r"},{"line_number":1185,"context_line":"                          \u0027susize\u0027:lunsetinfo[\"StripUnitSize\"]})\r"},{"line_number":1186,"context_line":"        prevalue \u003d \"\"\r"},{"line_number":1187,"context_line":"        pretimes \u003d \"\"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGaI%3D","line":1184,"in_reply_to":"AAAAM3%2F%2FKS0%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1182,"context_line":"            dorado2100g2_luntype \u003d \u00273\u0027\r"},{"line_number":1183,"context_line":"            Tseries \u003d (\u0027-rg %(raidgroup)s -susize %(susize)s \u0027 \r"},{"line_number":1184,"context_line":"                       % {\u0027raidgroup\u0027:lunsetinfo[\"StoragePool\"],\r"},{"line_number":1185,"context_line":"                          \u0027susize\u0027:lunsetinfo[\"StripUnitSize\"]})\r"},{"line_number":1186,"context_line":"        prevalue \u003d \"\"\r"},{"line_number":1187,"context_line":"        pretimes \u003d \"\"\r"},{"line_number":1188,"context_line":"        pretype \u003d \"-pretype %s \" % lunsetinfo[\u0027PrefetchType\u0027]\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKSw%3D","line":1185,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1182,"context_line":"            dorado2100g2_luntype \u003d \u00273\u0027\r"},{"line_number":1183,"context_line":"            Tseries \u003d (\u0027-rg %(raidgroup)s -susize %(susize)s \u0027 \r"},{"line_number":1184,"context_line":"                       % {\u0027raidgroup\u0027:lunsetinfo[\"StoragePool\"],\r"},{"line_number":1185,"context_line":"                          \u0027susize\u0027:lunsetinfo[\"StripUnitSize\"]})\r"},{"line_number":1186,"context_line":"        prevalue \u003d \"\"\r"},{"line_number":1187,"context_line":"        pretimes \u003d \"\"\r"},{"line_number":1188,"context_line":"        pretype \u003d \"-pretype %s \" % lunsetinfo[\u0027PrefetchType\u0027]\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGaE%3D","line":1185,"in_reply_to":"AAAAM3%2F%2FKSw%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1198,"context_line":"            \r"},{"line_number":1199,"context_line":"        elif self.device_type[\u0027type\u0027] \u003d\u003d \u0027Dorado5100\u0027:\r"},{"line_number":1200,"context_line":"            cli_cmd \u003d cli_cmd + (\u0027-rg %(raidgroup)s -susize %(susize)s\u0027 \r"},{"line_number":1201,"context_line":"                                 % {\u0027raidgroup\u0027:lunsetinfo[\"StoragePool\"],\r"},{"line_number":1202,"context_line":"                                    \u0027susize\u0027:lunsetinfo[\"StripUnitSize\"]})\r"},{"line_number":1203,"context_line":"            \r"},{"line_number":1204,"context_line":"        elif self.device_type[\u0027type\u0027] \u003d\u003d \u0027Dorado2100 G2\u0027:\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKSo%3D","line":1201,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1198,"context_line":"            \r"},{"line_number":1199,"context_line":"        elif self.device_type[\u0027type\u0027] \u003d\u003d \u0027Dorado5100\u0027:\r"},{"line_number":1200,"context_line":"            cli_cmd \u003d cli_cmd + (\u0027-rg %(raidgroup)s -susize %(susize)s\u0027 \r"},{"line_number":1201,"context_line":"                                 % {\u0027raidgroup\u0027:lunsetinfo[\"StoragePool\"],\r"},{"line_number":1202,"context_line":"                                    \u0027susize\u0027:lunsetinfo[\"StripUnitSize\"]})\r"},{"line_number":1203,"context_line":"            \r"},{"line_number":1204,"context_line":"        elif self.device_type[\u0027type\u0027] \u003d\u003d \u0027Dorado2100 G2\u0027:\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGaA%3D","line":1201,"in_reply_to":"AAAAM3%2F%2FKSo%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1199,"context_line":"        elif self.device_type[\u0027type\u0027] \u003d\u003d \u0027Dorado5100\u0027:\r"},{"line_number":1200,"context_line":"            cli_cmd \u003d cli_cmd + (\u0027-rg %(raidgroup)s -susize %(susize)s\u0027 \r"},{"line_number":1201,"context_line":"                                 % {\u0027raidgroup\u0027:lunsetinfo[\"StoragePool\"],\r"},{"line_number":1202,"context_line":"                                    \u0027susize\u0027:lunsetinfo[\"StripUnitSize\"]})\r"},{"line_number":1203,"context_line":"            \r"},{"line_number":1204,"context_line":"        elif self.device_type[\u0027type\u0027] \u003d\u003d \u0027Dorado2100 G2\u0027:\r"},{"line_number":1205,"context_line":"            cli_cmd \u003d cli_cmd + (\u0027-type %(type)s\u0027 \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKSk%3D","line":1202,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1199,"context_line":"        elif self.device_type[\u0027type\u0027] \u003d\u003d \u0027Dorado5100\u0027:\r"},{"line_number":1200,"context_line":"            cli_cmd \u003d cli_cmd + (\u0027-rg %(raidgroup)s -susize %(susize)s\u0027 \r"},{"line_number":1201,"context_line":"                                 % {\u0027raidgroup\u0027:lunsetinfo[\"StoragePool\"],\r"},{"line_number":1202,"context_line":"                                    \u0027susize\u0027:lunsetinfo[\"StripUnitSize\"]})\r"},{"line_number":1203,"context_line":"            \r"},{"line_number":1204,"context_line":"        elif self.device_type[\u0027type\u0027] \u003d\u003d \u0027Dorado2100 G2\u0027:\r"},{"line_number":1205,"context_line":"            cli_cmd \u003d cli_cmd + (\u0027-type %(type)s\u0027 \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGZ8%3D","line":1202,"in_reply_to":"AAAAM3%2F%2FKSk%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1203,"context_line":"            \r"},{"line_number":1204,"context_line":"        elif self.device_type[\u0027type\u0027] \u003d\u003d \u0027Dorado2100 G2\u0027:\r"},{"line_number":1205,"context_line":"            cli_cmd \u003d cli_cmd + (\u0027-type %(type)s\u0027 \r"},{"line_number":1206,"context_line":"                                 % {\u0027type\u0027:dorado2100g2_luntype})\r"},{"line_number":1207,"context_line":"    \r"},{"line_number":1208,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1209,"context_line":"        self._check_cli_result(out, res)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKSg%3D","line":1206,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1203,"context_line":"            \r"},{"line_number":1204,"context_line":"        elif self.device_type[\u0027type\u0027] \u003d\u003d \u0027Dorado2100 G2\u0027:\r"},{"line_number":1205,"context_line":"            cli_cmd \u003d cli_cmd + (\u0027-type %(type)s\u0027 \r"},{"line_number":1206,"context_line":"                                 % {\u0027type\u0027:dorado2100g2_luntype})\r"},{"line_number":1207,"context_line":"    \r"},{"line_number":1208,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1209,"context_line":"        self._check_cli_result(out, res)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGZw%3D","line":1206,"in_reply_to":"AAAAM3%2F%2FKSg%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1211,"context_line":"        if matchobject is None:\r"},{"line_number":1212,"context_line":"            err_msg \u003d (_(\u0027_creat_volume:ERROR:Failed to Create volume. \u0027\r"},{"line_number":1213,"context_line":"                         \u0027volume name:%(name)s. out:%(out)s\u0027)\r"},{"line_number":1214,"context_line":"                         % {\u0027name\u0027: name,\r"},{"line_number":1215,"context_line":"                            \u0027out\u0027:out})\r"},{"line_number":1216,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1217,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKSc%3D","line":1214,"updated":"2013-02-05 06:51:46.000000000","message":"line over-indented","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1211,"context_line":"        if matchobject is None:\r"},{"line_number":1212,"context_line":"            err_msg \u003d (_(\u0027_creat_volume:ERROR:Failed to Create volume. \u0027\r"},{"line_number":1213,"context_line":"                         \u0027volume name:%(name)s. out:%(out)s\u0027)\r"},{"line_number":1214,"context_line":"                         % {\u0027name\u0027: name,\r"},{"line_number":1215,"context_line":"                            \u0027out\u0027:out})\r"},{"line_number":1216,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1217,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGZs%3D","line":1214,"in_reply_to":"AAAAM3%2F%2FKSc%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1212,"context_line":"            err_msg \u003d (_(\u0027_creat_volume:ERROR:Failed to Create volume. \u0027\r"},{"line_number":1213,"context_line":"                         \u0027volume name:%(name)s. out:%(out)s\u0027)\r"},{"line_number":1214,"context_line":"                         % {\u0027name\u0027: name,\r"},{"line_number":1215,"context_line":"                            \u0027out\u0027:out})\r"},{"line_number":1216,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1217,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1218,"context_line":"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKSU%3D","line":1215,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1212,"context_line":"            err_msg \u003d (_(\u0027_creat_volume:ERROR:Failed to Create volume. \u0027\r"},{"line_number":1213,"context_line":"                         \u0027volume name:%(name)s. out:%(out)s\u0027)\r"},{"line_number":1214,"context_line":"                         % {\u0027name\u0027: name,\r"},{"line_number":1215,"context_line":"                            \u0027out\u0027:out})\r"},{"line_number":1216,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1217,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1218,"context_line":"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGZo%3D","line":1215,"in_reply_to":"AAAAM3%2F%2FKSU%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1233,"context_line":"        \"\"\"Create a LUNcopy.\"\"\"\r"},{"line_number":1234,"context_line":"        cli_cmd \u003d (\u0027createluncopy -n %(name)s -l 4 -slun %(srclunid)s \u0027\r"},{"line_number":1235,"context_line":"                   \u0027-tlun %(tgtlunid)s\u0027\r"},{"line_number":1236,"context_line":"                   % {\u0027name\u0027:luncopyname,\r"},{"line_number":1237,"context_line":"                      \u0027srclunid\u0027:srclunid,\r"},{"line_number":1238,"context_line":"                      \u0027tgtlunid\u0027:tgtlunid})\r"},{"line_number":1239,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKSQ%3D","line":1236,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1233,"context_line":"        \"\"\"Create a LUNcopy.\"\"\"\r"},{"line_number":1234,"context_line":"        cli_cmd \u003d (\u0027createluncopy -n %(name)s -l 4 -slun %(srclunid)s \u0027\r"},{"line_number":1235,"context_line":"                   \u0027-tlun %(tgtlunid)s\u0027\r"},{"line_number":1236,"context_line":"                   % {\u0027name\u0027:luncopyname,\r"},{"line_number":1237,"context_line":"                      \u0027srclunid\u0027:srclunid,\r"},{"line_number":1238,"context_line":"                      \u0027tgtlunid\u0027:tgtlunid})\r"},{"line_number":1239,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGZk%3D","line":1236,"in_reply_to":"AAAAM3%2F%2FKSQ%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1234,"context_line":"        cli_cmd \u003d (\u0027createluncopy -n %(name)s -l 4 -slun %(srclunid)s \u0027\r"},{"line_number":1235,"context_line":"                   \u0027-tlun %(tgtlunid)s\u0027\r"},{"line_number":1236,"context_line":"                   % {\u0027name\u0027:luncopyname,\r"},{"line_number":1237,"context_line":"                      \u0027srclunid\u0027:srclunid,\r"},{"line_number":1238,"context_line":"                      \u0027tgtlunid\u0027:tgtlunid})\r"},{"line_number":1239,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1240,"context_line":"        self._check_cli_result(out, res)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKSM%3D","line":1237,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1234,"context_line":"        cli_cmd \u003d (\u0027createluncopy -n %(name)s -l 4 -slun %(srclunid)s \u0027\r"},{"line_number":1235,"context_line":"                   \u0027-tlun %(tgtlunid)s\u0027\r"},{"line_number":1236,"context_line":"                   % {\u0027name\u0027:luncopyname,\r"},{"line_number":1237,"context_line":"                      \u0027srclunid\u0027:srclunid,\r"},{"line_number":1238,"context_line":"                      \u0027tgtlunid\u0027:tgtlunid})\r"},{"line_number":1239,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1240,"context_line":"        self._check_cli_result(out, res)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGZY%3D","line":1237,"in_reply_to":"AAAAM3%2F%2FKSM%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1235,"context_line":"                   \u0027-tlun %(tgtlunid)s\u0027\r"},{"line_number":1236,"context_line":"                   % {\u0027name\u0027:luncopyname,\r"},{"line_number":1237,"context_line":"                      \u0027srclunid\u0027:srclunid,\r"},{"line_number":1238,"context_line":"                      \u0027tgtlunid\u0027:tgtlunid})\r"},{"line_number":1239,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1240,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":1241,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKSI%3D","line":1238,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1235,"context_line":"                   \u0027-tlun %(tgtlunid)s\u0027\r"},{"line_number":1236,"context_line":"                   % {\u0027name\u0027:luncopyname,\r"},{"line_number":1237,"context_line":"                      \u0027srclunid\u0027:srclunid,\r"},{"line_number":1238,"context_line":"                      \u0027tgtlunid\u0027:tgtlunid})\r"},{"line_number":1239,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1240,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":1241,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGZQ%3D","line":1238,"in_reply_to":"AAAAM3%2F%2FKSI%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1243,"context_line":"            err_msg \u003d (_(\u0027_create_luncopy:ERROR:Failed to Create LUNcopy. \u0027\r"},{"line_number":1244,"context_line":"                         \u0027LUNcopy name%(name)s. out:%(out)s\u0027)\r"},{"line_number":1245,"context_line":"                       % {\u0027name\u0027: luncopyname,\r"},{"line_number":1246,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1247,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1248,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1249,"context_line":"    \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKSA%3D","line":1246,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1243,"context_line":"            err_msg \u003d (_(\u0027_create_luncopy:ERROR:Failed to Create LUNcopy. \u0027\r"},{"line_number":1244,"context_line":"                         \u0027LUNcopy name%(name)s. out:%(out)s\u0027)\r"},{"line_number":1245,"context_line":"                       % {\u0027name\u0027: luncopyname,\r"},{"line_number":1246,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1247,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1248,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1249,"context_line":"    \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGZM%3D","line":1246,"in_reply_to":"AAAAM3%2F%2FKSA%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1250,"context_line":"    def _start_luncopy(self, luncopyid):\r"},{"line_number":1251,"context_line":"        \"\"\"Starte a LUNcopy.\"\"\"\r"},{"line_number":1252,"context_line":"        cli_cmd \u003d (\u0027chgluncopystatus -luncopy %(luncopyid)s -start\u0027\r"},{"line_number":1253,"context_line":"                   % {\u0027luncopyid\u0027:luncopyid})\r"},{"line_number":1254,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1255,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":1256,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKR8%3D","line":1253,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1250,"context_line":"    def _start_luncopy(self, luncopyid):\r"},{"line_number":1251,"context_line":"        \"\"\"Starte a LUNcopy.\"\"\"\r"},{"line_number":1252,"context_line":"        cli_cmd \u003d (\u0027chgluncopystatus -luncopy %(luncopyid)s -start\u0027\r"},{"line_number":1253,"context_line":"                   % {\u0027luncopyid\u0027:luncopyid})\r"},{"line_number":1254,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1255,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":1256,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGZI%3D","line":1253,"in_reply_to":"AAAAM3%2F%2FKR8%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1257,"context_line":"        if matchobject is None:\r"},{"line_number":1258,"context_line":"            err_msg \u003d (_(\u0027_start_luncopy:ERROR:Failed to start LUNcopy. \u0027\r"},{"line_number":1259,"context_line":"                         \u0027LUNcopy name:%(name)s. out:%(out)s\u0027)\r"},{"line_number":1260,"context_line":"                       % {\u0027name\u0027: luncopyname,\r"},{"line_number":1261,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1262,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1263,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKR4%3D","line":1260,"updated":"2013-02-05 06:51:46.000000000","message":"undefined luncopyname","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1257,"context_line":"        if matchobject is None:\r"},{"line_number":1258,"context_line":"            err_msg \u003d (_(\u0027_start_luncopy:ERROR:Failed to start LUNcopy. \u0027\r"},{"line_number":1259,"context_line":"                         \u0027LUNcopy name:%(name)s. out:%(out)s\u0027)\r"},{"line_number":1260,"context_line":"                       % {\u0027name\u0027: luncopyname,\r"},{"line_number":1261,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1262,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1263,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGZE%3D","line":1260,"in_reply_to":"AAAAM3%2F%2FKR4%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1258,"context_line":"            err_msg \u003d (_(\u0027_start_luncopy:ERROR:Failed to start LUNcopy. \u0027\r"},{"line_number":1259,"context_line":"                         \u0027LUNcopy name:%(name)s. out:%(out)s\u0027)\r"},{"line_number":1260,"context_line":"                       % {\u0027name\u0027: luncopyname,\r"},{"line_number":1261,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1262,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1263,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1264,"context_line":"      \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKR0%3D","line":1261,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1258,"context_line":"            err_msg \u003d (_(\u0027_start_luncopy:ERROR:Failed to start LUNcopy. \u0027\r"},{"line_number":1259,"context_line":"                         \u0027LUNcopy name:%(name)s. out:%(out)s\u0027)\r"},{"line_number":1260,"context_line":"                       % {\u0027name\u0027: luncopyname,\r"},{"line_number":1261,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1262,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1263,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1264,"context_line":"      \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGZA%3D","line":1261,"in_reply_to":"AAAAM3%2F%2FKR0%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1289,"context_line":"            elif luncopy_info[\u0027status\u0027] !\u003d \u0027Normal\u0027:\r"},{"line_number":1290,"context_line":"                err_msg \u003d (_(\u0027_wait_for_luncopy:ERROR:LUNcopy status is\u0027\r"},{"line_number":1291,"context_line":"                             \u0027 not normal. LUNcopy name:%(luncopyname)s\u0027)\r"},{"line_number":1292,"context_line":"                           % {\u0027luncopyname\u0027:luncopyname})\r"},{"line_number":1293,"context_line":"                LOG.error(err_msg)\r"},{"line_number":1294,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1295,"context_line":"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKRw%3D","line":1292,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1289,"context_line":"            elif luncopy_info[\u0027status\u0027] !\u003d \u0027Normal\u0027:\r"},{"line_number":1290,"context_line":"                err_msg \u003d (_(\u0027_wait_for_luncopy:ERROR:LUNcopy status is\u0027\r"},{"line_number":1291,"context_line":"                             \u0027 not normal. LUNcopy name:%(luncopyname)s\u0027)\r"},{"line_number":1292,"context_line":"                           % {\u0027luncopyname\u0027:luncopyname})\r"},{"line_number":1293,"context_line":"                LOG.error(err_msg)\r"},{"line_number":1294,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1295,"context_line":"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGY4%3D","line":1292,"in_reply_to":"AAAAM3%2F%2FKRw%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1305,"context_line":"        luncopyinfo \u003d {}\r"},{"line_number":1306,"context_line":"        for i in range(6, len(en) - 3):\r"},{"line_number":1307,"context_line":"            r \u003d re.split(r\u0027\\W+\u0027, en[i])\r"},{"line_number":1308,"context_line":"\t    print \"luncopy info:%s\" % r\r"},{"line_number":1309,"context_line":"            if r[1] \u003d\u003d luncopyname:\r"},{"line_number":1310,"context_line":"                luncopyinfo[\u0027name\u0027] \u003d r[1]\r"},{"line_number":1311,"context_line":"                luncopyinfo[\u0027id\u0027] \u003d r[2]\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKRo%3D","line":1308,"updated":"2013-02-05 06:51:46.000000000","message":"no tab","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1305,"context_line":"        luncopyinfo \u003d {}\r"},{"line_number":1306,"context_line":"        for i in range(6, len(en) - 3):\r"},{"line_number":1307,"context_line":"            r \u003d re.split(r\u0027\\W+\u0027, en[i])\r"},{"line_number":1308,"context_line":"\t    print \"luncopy info:%s\" % r\r"},{"line_number":1309,"context_line":"            if r[1] \u003d\u003d luncopyname:\r"},{"line_number":1310,"context_line":"                luncopyinfo[\u0027name\u0027] \u003d r[1]\r"},{"line_number":1311,"context_line":"                luncopyinfo[\u0027id\u0027] \u003d r[2]\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGYw%3D","line":1308,"in_reply_to":"AAAAM3%2F%2FKRo%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1317,"context_line":"    def _delete_luncopy(self, luncopyid):\r"},{"line_number":1318,"context_line":"        \"\"\"Delete a LUNcopy.\"\"\"\r"},{"line_number":1319,"context_line":"        cli_cmd \u003d (\u0027delluncopy -luncopy %(id)s\u0027\r"},{"line_number":1320,"context_line":"                   % {\u0027id\u0027:luncopyid})\r"},{"line_number":1321,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1322,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":1323,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKRg%3D","line":1320,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1317,"context_line":"    def _delete_luncopy(self, luncopyid):\r"},{"line_number":1318,"context_line":"        \"\"\"Delete a LUNcopy.\"\"\"\r"},{"line_number":1319,"context_line":"        cli_cmd \u003d (\u0027delluncopy -luncopy %(id)s\u0027\r"},{"line_number":1320,"context_line":"                   % {\u0027id\u0027:luncopyid})\r"},{"line_number":1321,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1322,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":1323,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGYo%3D","line":1320,"in_reply_to":"AAAAM3%2F%2FKRg%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1324,"context_line":"        if matchobject is None:\r"},{"line_number":1325,"context_line":"            err_msg \u003d (_(\u0027_delete_luncopy:ERROR:Failed to delete luncopy. \u0027\r"},{"line_number":1326,"context_line":"                         \u0027LUNcopy name:%(name)s. out:%(out)s.\u0027)\r"},{"line_number":1327,"context_line":"                       % {\u0027name\u0027: luncopyname,\r"},{"line_number":1328,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1329,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1330,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKRc%3D","line":1327,"updated":"2013-02-05 06:51:46.000000000","message":"undefined luncopyname","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1324,"context_line":"        if matchobject is None:\r"},{"line_number":1325,"context_line":"            err_msg \u003d (_(\u0027_delete_luncopy:ERROR:Failed to delete luncopy. \u0027\r"},{"line_number":1326,"context_line":"                         \u0027LUNcopy name:%(name)s. out:%(out)s.\u0027)\r"},{"line_number":1327,"context_line":"                       % {\u0027name\u0027: luncopyname,\r"},{"line_number":1328,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1329,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1330,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGYk%3D","line":1327,"in_reply_to":"AAAAM3%2F%2FKRc%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1325,"context_line":"            err_msg \u003d (_(\u0027_delete_luncopy:ERROR:Failed to delete luncopy. \u0027\r"},{"line_number":1326,"context_line":"                         \u0027LUNcopy name:%(name)s. out:%(out)s.\u0027)\r"},{"line_number":1327,"context_line":"                       % {\u0027name\u0027: luncopyname,\r"},{"line_number":1328,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1329,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1330,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1331,"context_line":"            \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKRY%3D","line":1328,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1325,"context_line":"            err_msg \u003d (_(\u0027_delete_luncopy:ERROR:Failed to delete luncopy. \u0027\r"},{"line_number":1326,"context_line":"                         \u0027LUNcopy name:%(name)s. out:%(out)s.\u0027)\r"},{"line_number":1327,"context_line":"                       % {\u0027name\u0027: luncopyname,\r"},{"line_number":1328,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1329,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1330,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1331,"context_line":"            \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGYg%3D","line":1328,"in_reply_to":"AAAAM3%2F%2FKRY%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1340,"context_line":"    def _create_snapshot(self, snapshotname, srclunid):\r"},{"line_number":1341,"context_line":"        \"\"\"Create a snapshot with snapshot name and source LUN ID.\"\"\"\r"},{"line_number":1342,"context_line":"        cli_cmd \u003d (\u0027createsnapshot -lun %(lunid)s -n %(snapname)s\u0027\r"},{"line_number":1343,"context_line":"                   % {\u0027lunid\u0027:srclunid,\r"},{"line_number":1344,"context_line":"                      \u0027snapname\u0027:snapshotname})\r"},{"line_number":1345,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1346,"context_line":"        self._check_cli_result(out, res)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKRU%3D","line":1343,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1340,"context_line":"    def _create_snapshot(self, snapshotname, srclunid):\r"},{"line_number":1341,"context_line":"        \"\"\"Create a snapshot with snapshot name and source LUN ID.\"\"\"\r"},{"line_number":1342,"context_line":"        cli_cmd \u003d (\u0027createsnapshot -lun %(lunid)s -n %(snapname)s\u0027\r"},{"line_number":1343,"context_line":"                   % {\u0027lunid\u0027:srclunid,\r"},{"line_number":1344,"context_line":"                      \u0027snapname\u0027:snapshotname})\r"},{"line_number":1345,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1346,"context_line":"        self._check_cli_result(out, res)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGYc%3D","line":1343,"in_reply_to":"AAAAM3%2F%2FKRU%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1341,"context_line":"        \"\"\"Create a snapshot with snapshot name and source LUN ID.\"\"\"\r"},{"line_number":1342,"context_line":"        cli_cmd \u003d (\u0027createsnapshot -lun %(lunid)s -n %(snapname)s\u0027\r"},{"line_number":1343,"context_line":"                   % {\u0027lunid\u0027:srclunid,\r"},{"line_number":1344,"context_line":"                      \u0027snapname\u0027:snapshotname})\r"},{"line_number":1345,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1346,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":1347,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKRQ%3D","line":1344,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1341,"context_line":"        \"\"\"Create a snapshot with snapshot name and source LUN ID.\"\"\"\r"},{"line_number":1342,"context_line":"        cli_cmd \u003d (\u0027createsnapshot -lun %(lunid)s -n %(snapname)s\u0027\r"},{"line_number":1343,"context_line":"                   % {\u0027lunid\u0027:srclunid,\r"},{"line_number":1344,"context_line":"                      \u0027snapname\u0027:snapshotname})\r"},{"line_number":1345,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)\r"},{"line_number":1346,"context_line":"        self._check_cli_result(out, res)\r"},{"line_number":1347,"context_line":"        matchobject \u003d re.search(\u0027command operates successfully\u0027, out)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGYU%3D","line":1344,"in_reply_to":"AAAAM3%2F%2FKRQ%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1349,"context_line":"            err_msg \u003d (_(\u0027_create_snapshot:ERROR:Failed to Create snapshot. \u0027\r"},{"line_number":1350,"context_line":"                         \u0027Snapshot name:%(name)s. \u0027\r"},{"line_number":1351,"context_line":"                         \u0027out:%(out)s\u0027)\r"},{"line_number":1352,"context_line":"                       % {\u0027name\u0027:snapshotname,\r"},{"line_number":1353,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1354,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1355,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKRM%3D","line":1352,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1349,"context_line":"            err_msg \u003d (_(\u0027_create_snapshot:ERROR:Failed to Create snapshot. \u0027\r"},{"line_number":1350,"context_line":"                         \u0027Snapshot name:%(name)s. \u0027\r"},{"line_number":1351,"context_line":"                         \u0027out:%(out)s\u0027)\r"},{"line_number":1352,"context_line":"                       % {\u0027name\u0027:snapshotname,\r"},{"line_number":1353,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1354,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1355,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGYQ%3D","line":1352,"in_reply_to":"AAAAM3%2F%2FKRM%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1350,"context_line":"                         \u0027Snapshot name:%(name)s. \u0027\r"},{"line_number":1351,"context_line":"                         \u0027out:%(out)s\u0027)\r"},{"line_number":1352,"context_line":"                       % {\u0027name\u0027:snapshotname,\r"},{"line_number":1353,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1354,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1355,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1356,"context_line":"    \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKRI%3D","line":1353,"updated":"2013-02-05 06:51:46.000000000","message":"missing whitespace after colon","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1350,"context_line":"                         \u0027Snapshot name:%(name)s. \u0027\r"},{"line_number":1351,"context_line":"                         \u0027out:%(out)s\u0027)\r"},{"line_number":1352,"context_line":"                       % {\u0027name\u0027:snapshotname,\r"},{"line_number":1353,"context_line":"                          \u0027out\u0027:out})\r"},{"line_number":1354,"context_line":"            LOG.error(err_msg)\r"},{"line_number":1355,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)\r"},{"line_number":1356,"context_line":"    \r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGYI%3D","line":1353,"in_reply_to":"AAAAM3%2F%2FKRI%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"cd130e6d4bf788b2dd3f3ac80fe654f011cc780d","unresolved":false,"context_lines":[{"line_number":1393,"context_line":"                return lundetail\r"},{"line_number":1394,"context_line":"        return None\r"},{"line_number":1395,"context_line":"            \r"},{"line_number":1396,"context_line":"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKRE%3D","line":1396,"updated":"2013-02-05 06:51:46.000000000","message":"no blank line at the end of the file","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"3a6d0637a22f4b74bb229677feb0dd8a3408136c","unresolved":false,"context_lines":[{"line_number":1393,"context_line":"                return lundetail\r"},{"line_number":1394,"context_line":"        return None\r"},{"line_number":1395,"context_line":"            \r"},{"line_number":1396,"context_line":"\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FGYE%3D","line":1396,"in_reply_to":"AAAAM3%2F%2FKRE%3D","updated":"2013-02-17 08:05:36.000000000","message":"Done","commit_id":"a614fb52a99250964cb26f0c093e9dd50dc9b167"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"try:"},{"line_number":36,"context_line":"    import pexpect"},{"line_number":37,"context_line":"except ImportError:"},{"line_number":38,"context_line":"    LOG.debug(_(\u0027Module \"pexpect\" not installed. \u0027"},{"line_number":39,"context_line":"                \u0027\"pexpect\" can be downloaded from \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FGIU%3D","line":36,"updated":"2013-02-07 11:03:14.000000000","message":"Why use pexpect?  This driver should inherit from san.py and use the existing SSH methods.  See the storwize_svc or hp_lefthand drivers for examples.","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"try:"},{"line_number":36,"context_line":"    import pexpect"},{"line_number":37,"context_line":"except ImportError:"},{"line_number":38,"context_line":"    LOG.debug(_(\u0027Module \"pexpect\" not installed. \u0027"},{"line_number":39,"context_line":"                \u0027\"pexpect\" can be downloaded from \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBcA%3D","line":36,"in_reply_to":"AAAAM3%2F%2FGIU%3D","updated":"2013-02-14 21:35:51.000000000","message":"We have tried to use module paramiko to send SSH commands at first, but it not work. We loged into an OS module in which we can not run SSH commands using the existing SSH methodes. instead, pexpect works well, so we choose it. We want to know whether pexpect is OK. Thanks.","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"46801a44bcce0dc2309460855becebc02b6530cb","unresolved":false,"context_lines":[{"line_number":53,"context_line":"HOST_PORT_PREFIX \u003d \u0027HostPort_\u0027"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class huaweiISCSIDriver(driver.ISCSIDriver):"},{"line_number":57,"context_line":"    \"\"\"Huawei T series and Dorado iSCSI volume driver.\"\"\""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B%2Fqc%3D","line":56,"updated":"2013-02-12 06:03:09.000000000","message":"It would be good if class names start with a capital letter","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":53,"context_line":"HOST_PORT_PREFIX \u003d \u0027HostPort_\u0027"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class huaweiISCSIDriver(driver.ISCSIDriver):"},{"line_number":57,"context_line":"    \"\"\"Huawei T series and Dorado iSCSI volume driver.\"\"\""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B9ws%3D","line":56,"in_reply_to":"AAAAM3%2F%2B%2Fqc%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        LOG.debug(_(\u0027create_volume:volume name: %s.\u0027) % volume_name)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        self.login_info \u003d self._get_login_info()"},{"line_number":100,"context_line":"        if int(volume[\u0027size\u0027]) \u003d\u003d 0:"},{"line_number":101,"context_line":"            volume_sise \u003d \u0027100M\u0027"},{"line_number":102,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FGIM%3D","line":99,"updated":"2013-02-07 11:03:14.000000000","message":"Why do you call _get_login_info() every time?  It is already saved from the call in check_for_setup_error.","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        LOG.debug(_(\u0027create_volume:volume name: %s.\u0027) % volume_name)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        self.login_info \u003d self._get_login_info()"},{"line_number":100,"context_line":"        if int(volume[\u0027size\u0027]) \u003d\u003d 0:"},{"line_number":101,"context_line":"            volume_sise \u003d \u0027100M\u0027"},{"line_number":102,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBbs%3D","line":99,"in_reply_to":"AAAAM3%2F%2FGIM%3D","updated":"2013-02-14 21:35:51.000000000","message":"If the users want to change their SSH passwords, they needn\u0027t to restart the cinder services. That\u0027s why we call _get_login_info() every function.","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            self._delete_volume(volume_name, volume_id)"},{"line_number":117,"context_line":"        else:"},{"line_number":118,"context_line":"            err_msg \u003d (_(\u0027delete_volume:ERROR:No need to delete volume.\u0027"},{"line_number":119,"context_line":"                         \u0027Volume %(name)s do not exist.\u0027)"},{"line_number":120,"context_line":"                       % {\u0027name\u0027: volume[\u0027name\u0027]})"},{"line_number":121,"context_line":"            LOG.error(err_msg)"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FGD4%3D","line":119,"updated":"2013-02-07 11:03:14.000000000","message":"s/do/does/","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            self._delete_volume(volume_name, volume_id)"},{"line_number":117,"context_line":"        else:"},{"line_number":118,"context_line":"            err_msg \u003d (_(\u0027delete_volume:ERROR:No need to delete volume.\u0027"},{"line_number":119,"context_line":"                         \u0027Volume %(name)s do not exist.\u0027)"},{"line_number":120,"context_line":"                       % {\u0027name\u0027: volume[\u0027name\u0027]})"},{"line_number":121,"context_line":"            LOG.error(err_msg)"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBbo%3D","line":119,"in_reply_to":"AAAAM3%2F%2FGD4%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        return {\u0027provider_location\u0027: lun_id}"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def ensure_export(self, context, volume):"},{"line_number":139,"context_line":"        \"\"\"Driver entry point to get the  export info for a existing volume\"\"\""},{"line_number":140,"context_line":"        volume_name \u003d self._name_transfer(volume[\u0027name\u0027])"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FGDY%3D","line":138,"updated":"2013-02-07 11:03:14.000000000","message":"ensure_export() shouldn\u0027t return anything.  If there is nothing to do in your driver to export, just \u0027pass\u0027.","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        return {\u0027provider_location\u0027: lun_id}"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def ensure_export(self, context, volume):"},{"line_number":139,"context_line":"        \"\"\"Driver entry point to get the  export info for a existing volume\"\"\""},{"line_number":140,"context_line":"        volume_name \u003d self._name_transfer(volume[\u0027name\u0027])"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBbg%3D","line":138,"in_reply_to":"AAAAM3%2F%2FGDY%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        self.login_info \u003d self._get_login_info()"},{"line_number":168,"context_line":"        hostgroup_name \u003d HOST_GROUP_NAME"},{"line_number":169,"context_line":"        hostgroup_id \u003d self._find_hostgroup(hostgroup_name)"},{"line_number":170,"context_line":"        if hostgroup_id is None:"},{"line_number":171,"context_line":"            self._create_hostgroup(hostgroup_name)"},{"line_number":172,"context_line":"            hostgroup_id \u003d self._find_hostgroup(hostgroup_name)"},{"line_number":173,"context_line":"            if hostgroup_id is None:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FGDQ%3D","line":170,"updated":"2013-02-07 11:03:14.000000000","message":"It looks like the host group should be created in do_setup(), and here you should have an assert.","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        self.login_info \u003d self._get_login_info()"},{"line_number":168,"context_line":"        hostgroup_name \u003d HOST_GROUP_NAME"},{"line_number":169,"context_line":"        hostgroup_id \u003d self._find_hostgroup(hostgroup_name)"},{"line_number":170,"context_line":"        if hostgroup_id is None:"},{"line_number":171,"context_line":"            self._create_hostgroup(hostgroup_name)"},{"line_number":172,"context_line":"            hostgroup_id \u003d self._find_hostgroup(hostgroup_name)"},{"line_number":173,"context_line":"            if hostgroup_id is None:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBbc%3D","line":170,"in_reply_to":"AAAAM3%2F%2FGDQ%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            self._create_hostgroup(hostgroup_name)"},{"line_number":172,"context_line":"            hostgroup_id \u003d self._find_hostgroup(hostgroup_name)"},{"line_number":173,"context_line":"            if hostgroup_id is None:"},{"line_number":174,"context_line":"                err_msg \u003d (_(\u0027initialize_connection:ERROR:Failed to \u0027"},{"line_number":175,"context_line":"                             \u0027initialize connection. \u0027"},{"line_number":176,"context_line":"                             \u0027Hostgroup do not exist. \u0027"},{"line_number":177,"context_line":"                             \u0027hostgroup name:%(hostgroup)s\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FGC8%3D","line":174,"updated":"2013-02-07 11:03:14.000000000","message":"In all of these long error messages, you can use locals() to shorten the strings.","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            self._create_hostgroup(hostgroup_name)"},{"line_number":172,"context_line":"            hostgroup_id \u003d self._find_hostgroup(hostgroup_name)"},{"line_number":173,"context_line":"            if hostgroup_id is None:"},{"line_number":174,"context_line":"                err_msg \u003d (_(\u0027initialize_connection:ERROR:Failed to \u0027"},{"line_number":175,"context_line":"                             \u0027initialize connection. \u0027"},{"line_number":176,"context_line":"                             \u0027Hostgroup do not exist. \u0027"},{"line_number":177,"context_line":"                             \u0027hostgroup name:%(hostgroup)s\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBbY%3D","line":174,"in_reply_to":"AAAAM3%2F%2FGC8%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":183,"context_line":"                LOG.error(err_msg)"},{"line_number":184,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        host_name \u003d HOST_NAME_PREFIX + (\u0027%s\u0027 % initiator_name[26:])"},{"line_number":187,"context_line":"        host_id \u003d self._find_host_in_hostgroup(host_name, hostgroup_id)"},{"line_number":188,"context_line":"        if host_id is None:"},{"line_number":189,"context_line":"            self._add_host(host_name, hostgroup_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FGDI%3D","line":186,"updated":"2013-02-07 11:03:14.000000000","message":"You might have two long initiator names that translate to the same host name.","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":183,"context_line":"                LOG.error(err_msg)"},{"line_number":184,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        host_name \u003d HOST_NAME_PREFIX + (\u0027%s\u0027 % initiator_name[26:])"},{"line_number":187,"context_line":"        host_id \u003d self._find_host_in_hostgroup(host_name, hostgroup_id)"},{"line_number":188,"context_line":"        if host_id is None:"},{"line_number":189,"context_line":"            self._add_host(host_name, hostgroup_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B68k%3D","line":186,"in_reply_to":"AAAAM3%2F%2FGDI%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":204,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":205,"context_line":"        # Create an initiator."},{"line_number":206,"context_line":"        added \u003d self._check_initiator(initiator_name)"},{"line_number":207,"context_line":"        if added is False:"},{"line_number":208,"context_line":"            self._add_initiator(initiator_name)"},{"line_number":209,"context_line":"        # Add the initiator to host."},{"line_number":210,"context_line":"        isportadd \u003d False"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FGCo%3D","line":207,"updated":"2013-02-07 11:03:14.000000000","message":"if not added:","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":204,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":205,"context_line":"        # Create an initiator."},{"line_number":206,"context_line":"        added \u003d self._check_initiator(initiator_name)"},{"line_number":207,"context_line":"        if added is False:"},{"line_number":208,"context_line":"            self._add_initiator(initiator_name)"},{"line_number":209,"context_line":"        # Add the initiator to host."},{"line_number":210,"context_line":"        isportadd \u003d False"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBbQ%3D","line":207,"in_reply_to":"AAAAM3%2F%2FGCo%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":208,"context_line":"            self._add_initiator(initiator_name)"},{"line_number":209,"context_line":"        # Add the initiator to host."},{"line_number":210,"context_line":"        isportadd \u003d False"},{"line_number":211,"context_line":"        port_name \u003d HOST_PORT_PREFIX + initiator_name[16:].replace(\u0027:\u0027, \u0027-\u0027)"},{"line_number":212,"context_line":"        port_info \u003d initiator_name"},{"line_number":213,"context_line":"        hostport_info \u003d self._get_hostport_info(host_id)"},{"line_number":214,"context_line":"        if hostport_info is None:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FGCg%3D","line":211,"updated":"2013-02-07 11:03:14.000000000","message":"Why substring [16:]?","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":208,"context_line":"            self._add_initiator(initiator_name)"},{"line_number":209,"context_line":"        # Add the initiator to host."},{"line_number":210,"context_line":"        isportadd \u003d False"},{"line_number":211,"context_line":"        port_name \u003d HOST_PORT_PREFIX + initiator_name[16:].replace(\u0027:\u0027, \u0027-\u0027)"},{"line_number":212,"context_line":"        port_info \u003d initiator_name"},{"line_number":213,"context_line":"        hostport_info \u003d self._get_hostport_info(host_id)"},{"line_number":214,"context_line":"        if hostport_info is None:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B68o%3D","line":211,"in_reply_to":"AAAAM3%2F%2FGCg%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        port_name \u003d HOST_PORT_PREFIX + initiator_name[16:].replace(\u0027:\u0027, \u0027-\u0027)"},{"line_number":212,"context_line":"        port_info \u003d initiator_name"},{"line_number":213,"context_line":"        hostport_info \u003d self._get_hostport_info(host_id)"},{"line_number":214,"context_line":"        if hostport_info is None:"},{"line_number":215,"context_line":"            self._add_hostport(port_name, host_id, port_info)"},{"line_number":216,"context_line":"        else:"},{"line_number":217,"context_line":"            for hostport in hostport_info:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FGCE%3D","line":214,"updated":"2013-02-07 11:03:14.000000000","message":"if not hostport_info:","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        port_name \u003d HOST_PORT_PREFIX + initiator_name[16:].replace(\u0027:\u0027, \u0027-\u0027)"},{"line_number":212,"context_line":"        port_info \u003d initiator_name"},{"line_number":213,"context_line":"        hostport_info \u003d self._get_hostport_info(host_id)"},{"line_number":214,"context_line":"        if hostport_info is None:"},{"line_number":215,"context_line":"            self._add_hostport(port_name, host_id, port_info)"},{"line_number":216,"context_line":"        else:"},{"line_number":217,"context_line":"            for hostport in hostport_info:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBbM%3D","line":214,"in_reply_to":"AAAAM3%2F%2FGCE%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":220,"context_line":"                    break"},{"line_number":221,"context_line":"            if isportadd is False:"},{"line_number":222,"context_line":"                self._add_hostport(port_name, host_id, port_info)"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        LOG.debug(_(\u0027initialize_connection: hostgroup name: %(hostgroup)s, \u0027"},{"line_number":225,"context_line":"                    \u0027host name: %(host)s, initiator name:%(ini)s, \u0027"},{"line_number":226,"context_line":"                    \u0027hostport name: %(hostport)s\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FGB0%3D","line":223,"updated":"2013-02-07 11:03:14.000000000","message":"The flow of the code above is very confusing.  Try this:\n\nisportadd \u003d False (move it lower down near where it\u0027s used)\nhostport_info \u003d self._get_hostport_info(host_id)\nif hostport_info:\n    for hostport in hostport_info:\n        if hostport[\u0027info\u0027] \u003d\u003d initiator_name:\n            isportadd \u003d True\nif not isportadd:\n    self._add_hostport(port_name, host_id, port_info)","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":220,"context_line":"                    break"},{"line_number":221,"context_line":"            if isportadd is False:"},{"line_number":222,"context_line":"                self._add_hostport(port_name, host_id, port_info)"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        LOG.debug(_(\u0027initialize_connection: hostgroup name: %(hostgroup)s, \u0027"},{"line_number":225,"context_line":"                    \u0027host name: %(host)s, initiator name:%(ini)s, \u0027"},{"line_number":226,"context_line":"                    \u0027hostport name: %(hostport)s\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBbI%3D","line":223,"in_reply_to":"AAAAM3%2F%2FGB0%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            if ini[\u0027Name\u0027] \u003d\u003d initiator_name:"},{"line_number":237,"context_line":"                target_ip \u003d ini[\u0027TargetIP\u0027]"},{"line_number":238,"context_line":"                break"},{"line_number":239,"context_line":"        if target_ip is None:"},{"line_number":240,"context_line":"            target_ip \u003d iscsi_conf[\u0027DefaultTargetIP\u0027]"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        target_iqn \u003d self._get_tgt_iqn(target_ip)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FGBs%3D","line":239,"updated":"2013-02-07 11:03:14.000000000","message":"if not target_ip:\n\n(change for all)","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            if ini[\u0027Name\u0027] \u003d\u003d initiator_name:"},{"line_number":237,"context_line":"                target_ip \u003d ini[\u0027TargetIP\u0027]"},{"line_number":238,"context_line":"                break"},{"line_number":239,"context_line":"        if target_ip is None:"},{"line_number":240,"context_line":"            target_ip \u003d iscsi_conf[\u0027DefaultTargetIP\u0027]"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        target_iqn \u003d self._get_tgt_iqn(target_ip)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBbE%3D","line":239,"in_reply_to":"AAAAM3%2F%2FGBs%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":244,"context_line":"            err_msg \u003d (_(\u0027initialize_connection:ERROR:\u0027"},{"line_number":245,"context_line":"                         \u0027Failed to find target iSCSI iqn.\u0027))"},{"line_number":246,"context_line":"            LOG.error(err_msg)"},{"line_number":247,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":248,"context_line":"        # Map a LUN to a host if the the LUN is not mapped."},{"line_number":249,"context_line":"        lun_id \u003d self._find_lun(volume_name)"},{"line_number":250,"context_line":"        if lun_id is None:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FGAc%3D","line":247,"updated":"2013-02-07 11:03:14.000000000","message":"Add blank line here","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":244,"context_line":"            err_msg \u003d (_(\u0027initialize_connection:ERROR:\u0027"},{"line_number":245,"context_line":"                         \u0027Failed to find target iSCSI iqn.\u0027))"},{"line_number":246,"context_line":"            LOG.error(err_msg)"},{"line_number":247,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":248,"context_line":"        # Map a LUN to a host if the the LUN is not mapped."},{"line_number":249,"context_line":"        lun_id \u003d self._find_lun(volume_name)"},{"line_number":250,"context_line":"        if lun_id is None:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBbA%3D","line":247,"in_reply_to":"AAAAM3%2F%2FGAc%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":257,"context_line":"        ismapped \u003d False"},{"line_number":258,"context_line":"        hostlun_id \u003d None"},{"line_number":259,"context_line":"        map_info \u003d self._get_map_info(host_id)"},{"line_number":260,"context_line":"        if map_info is not None:"},{"line_number":261,"context_line":"            for map in map_info:"},{"line_number":262,"context_line":"                if map[\u0027devlunid\u0027] \u003d\u003d lun_id:"},{"line_number":263,"context_line":"                    ismapped \u003d True"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FF%2F4%3D","line":260,"updated":"2013-02-07 11:03:14.000000000","message":"if map_info:\n\n(Change for all instances)","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":257,"context_line":"        ismapped \u003d False"},{"line_number":258,"context_line":"        hostlun_id \u003d None"},{"line_number":259,"context_line":"        map_info \u003d self._get_map_info(host_id)"},{"line_number":260,"context_line":"        if map_info is not None:"},{"line_number":261,"context_line":"            for map in map_info:"},{"line_number":262,"context_line":"                if map[\u0027devlunid\u0027] \u003d\u003d lun_id:"},{"line_number":263,"context_line":"                    ismapped \u003d True"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBa8%3D","line":260,"in_reply_to":"AAAAM3%2F%2FF%2F4%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":260,"context_line":"        if map_info is not None:"},{"line_number":261,"context_line":"            for map in map_info:"},{"line_number":262,"context_line":"                if map[\u0027devlunid\u0027] \u003d\u003d lun_id:"},{"line_number":263,"context_line":"                    ismapped \u003d True"},{"line_number":264,"context_line":"                    hostlun_id \u003d map[\u0027hostlunid\u0027]"},{"line_number":265,"context_line":"                    break"},{"line_number":266,"context_line":"        # The LUN is not mapped to the host."}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FF%2Fw%3D","line":263,"updated":"2013-02-07 11:03:14.000000000","message":"You don\u0027t need ismapped.  Test instead for \"if not hostlun_id:\"","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":260,"context_line":"        if map_info is not None:"},{"line_number":261,"context_line":"            for map in map_info:"},{"line_number":262,"context_line":"                if map[\u0027devlunid\u0027] \u003d\u003d lun_id:"},{"line_number":263,"context_line":"                    ismapped \u003d True"},{"line_number":264,"context_line":"                    hostlun_id \u003d map[\u0027hostlunid\u0027]"},{"line_number":265,"context_line":"                    break"},{"line_number":266,"context_line":"        # The LUN is not mapped to the host."}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBa0%3D","line":263,"in_reply_to":"AAAAM3%2F%2FF%2Fw%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":280,"context_line":"        properties[\u0027target_iqn\u0027] \u003d target_iqn"},{"line_number":281,"context_line":"        properties[\u0027target_lun\u0027] \u003d int(hostlun_id)"},{"line_number":282,"context_line":"        properties[\u0027volume_id\u0027] \u003d volume[\u0027id\u0027]"},{"line_number":283,"context_line":"        auth \u003d volume[\u0027provider_auth\u0027]"},{"line_number":284,"context_line":"        if auth:"},{"line_number":285,"context_line":"            (auth_method, auth_username, auth_secret) \u003d auth.split()"},{"line_number":286,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FF%2FY%3D","line":283,"updated":"2013-02-07 11:03:14.000000000","message":"Where is volume[\u0027provider_auth\u0027] set?  Does this work?","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":280,"context_line":"        properties[\u0027target_iqn\u0027] \u003d target_iqn"},{"line_number":281,"context_line":"        properties[\u0027target_lun\u0027] \u003d int(hostlun_id)"},{"line_number":282,"context_line":"        properties[\u0027volume_id\u0027] \u003d volume[\u0027id\u0027]"},{"line_number":283,"context_line":"        auth \u003d volume[\u0027provider_auth\u0027]"},{"line_number":284,"context_line":"        if auth:"},{"line_number":285,"context_line":"            (auth_method, auth_username, auth_secret) \u003d auth.split()"},{"line_number":286,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B9A0%3D","line":283,"in_reply_to":"AAAAM3%2F%2FF%2FY%3D","updated":"2013-02-14 21:35:51.000000000","message":"If volume[\u0027provider_auth\u0027] not set before, it doesn\u0027t work. We don\u0027t add \u0027CHAP\u0027 here.","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":317,"context_line":"                         \u0027Host name:%(host)s.\u0027)"},{"line_number":318,"context_line":"                       % {\u0027host\u0027: host_name})"},{"line_number":319,"context_line":"            LOG.error(err_msg)"},{"line_number":320,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":321,"context_line":"        # Delete host map."},{"line_number":322,"context_line":"        mapnum \u003d 0"},{"line_number":323,"context_line":"        map_id \u003d None"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FF%2FA%3D","line":320,"updated":"2013-02-07 11:03:14.000000000","message":"Add blank line","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":317,"context_line":"                         \u0027Host name:%(host)s.\u0027)"},{"line_number":318,"context_line":"                       % {\u0027host\u0027: host_name})"},{"line_number":319,"context_line":"            LOG.error(err_msg)"},{"line_number":320,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":321,"context_line":"        # Delete host map."},{"line_number":322,"context_line":"        mapnum \u003d 0"},{"line_number":323,"context_line":"        map_id \u003d None"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBaw%3D","line":320,"in_reply_to":"AAAAM3%2F%2FF%2FA%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":319,"context_line":"            LOG.error(err_msg)"},{"line_number":320,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":321,"context_line":"        # Delete host map."},{"line_number":322,"context_line":"        mapnum \u003d 0"},{"line_number":323,"context_line":"        map_id \u003d None"},{"line_number":324,"context_line":"        lun_id \u003d self._find_lun(volume_name)"},{"line_number":325,"context_line":"        if lun_id is None:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FF%2Bc%3D","line":322,"updated":"2013-02-07 11:03:14.000000000","message":"Not needed","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":319,"context_line":"            LOG.error(err_msg)"},{"line_number":320,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":321,"context_line":"        # Delete host map."},{"line_number":322,"context_line":"        mapnum \u003d 0"},{"line_number":323,"context_line":"        map_id \u003d None"},{"line_number":324,"context_line":"        lun_id \u003d self._find_lun(volume_name)"},{"line_number":325,"context_line":"        if lun_id is None:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBas%3D","line":322,"in_reply_to":"AAAAM3%2F%2FF%2Bc%3D","updated":"2013-02-14 21:35:51.000000000","message":"If other LUNS mapped to the same initiator, we can not delete the initiator. so, mapnum is used to tell whether the initiator can be deleted.","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":320,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":321,"context_line":"        # Delete host map."},{"line_number":322,"context_line":"        mapnum \u003d 0"},{"line_number":323,"context_line":"        map_id \u003d None"},{"line_number":324,"context_line":"        lun_id \u003d self._find_lun(volume_name)"},{"line_number":325,"context_line":"        if lun_id is None:"},{"line_number":326,"context_line":"            err_msg \u003d (_(\u0027terminate_connection:ERROR:volume do not exist.\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FF%2BY%3D","line":323,"updated":"2013-02-07 11:03:14.000000000","message":"Move down to where it is used (line 331)","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":320,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":321,"context_line":"        # Delete host map."},{"line_number":322,"context_line":"        mapnum \u003d 0"},{"line_number":323,"context_line":"        map_id \u003d None"},{"line_number":324,"context_line":"        lun_id \u003d self._find_lun(volume_name)"},{"line_number":325,"context_line":"        if lun_id is None:"},{"line_number":326,"context_line":"            err_msg \u003d (_(\u0027terminate_connection:ERROR:volume do not exist.\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBao%3D","line":323,"in_reply_to":"AAAAM3%2F%2FF%2BY%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":344,"context_line":"                        \u0027and volume. Host name:%(hostname)s,\u0027"},{"line_number":345,"context_line":"                        \u0027volume name:%(volumename)s.\u0027)"},{"line_number":346,"context_line":"                      % {\u0027hostname\u0027: host_name,"},{"line_number":347,"context_line":"                         \u0027volumename\u0027: volume_name})"},{"line_number":348,"context_line":"        # Delete host initiator when there is no LUN mapped to it."},{"line_number":349,"context_line":"        portnum \u003d 0"},{"line_number":350,"context_line":"        hostportinfo \u003d self._get_hostport_info(host_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FF9Q%3D","line":347,"updated":"2013-02-07 11:03:14.000000000","message":"Add blank line","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":344,"context_line":"                        \u0027and volume. Host name:%(hostname)s,\u0027"},{"line_number":345,"context_line":"                        \u0027volume name:%(volumename)s.\u0027)"},{"line_number":346,"context_line":"                      % {\u0027hostname\u0027: host_name,"},{"line_number":347,"context_line":"                         \u0027volumename\u0027: volume_name})"},{"line_number":348,"context_line":"        # Delete host initiator when there is no LUN mapped to it."},{"line_number":349,"context_line":"        portnum \u003d 0"},{"line_number":350,"context_line":"        hostportinfo \u003d self._get_hostport_info(host_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBak%3D","line":347,"in_reply_to":"AAAAM3%2F%2FF9Q%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":359,"context_line":"        else:"},{"line_number":360,"context_line":"            LOG.error(_(\u0027terminate_connection:ERROR:No initiator is added \u0027"},{"line_number":361,"context_line":"                        \u0027to the host. Host name:%(hostname)s\u0027)"},{"line_number":362,"context_line":"                      % {\u0027hostname\u0027: host_name})"},{"line_number":363,"context_line":"        # Delete host when there is no initiator added to it."},{"line_number":364,"context_line":"        if portnum \u003d\u003d 0:"},{"line_number":365,"context_line":"            self._delete_host(host_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FF8c%3D","line":362,"updated":"2013-02-07 11:03:14.000000000","message":"Add blank line\n\n(Go over all the code and add where necessary - usually if you add a comment as a heading for a block of code, it\u0027s a good idea to add a blank line as well)","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":359,"context_line":"        else:"},{"line_number":360,"context_line":"            LOG.error(_(\u0027terminate_connection:ERROR:No initiator is added \u0027"},{"line_number":361,"context_line":"                        \u0027to the host. Host name:%(hostname)s\u0027)"},{"line_number":362,"context_line":"                      % {\u0027hostname\u0027: host_name})"},{"line_number":363,"context_line":"        # Delete host when there is no initiator added to it."},{"line_number":364,"context_line":"        if portnum \u003d\u003d 0:"},{"line_number":365,"context_line":"            self._delete_host(host_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBag%3D","line":362,"in_reply_to":"AAAAM3%2F%2FF8c%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":688,"context_line":""},{"line_number":689,"context_line":"        return iscsiinfo"},{"line_number":690,"context_line":""},{"line_number":691,"context_line":"    def _execute_cli(self, cmd):"},{"line_number":692,"context_line":"        \"\"\"Build SSH connection to execute CLI commands."},{"line_number":693,"context_line":"        If the connection to first controller timeout,"},{"line_number":694,"context_line":"        try to connect to the other controller."}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FGII%3D","line":691,"updated":"2013-02-07 11:03:14.000000000","message":"Please replace with SSH functions that already exist in Cinder, as per my comment above","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":688,"context_line":""},{"line_number":689,"context_line":"        return iscsiinfo"},{"line_number":690,"context_line":""},{"line_number":691,"context_line":"    def _execute_cli(self, cmd):"},{"line_number":692,"context_line":"        \"\"\"Build SSH connection to execute CLI commands."},{"line_number":693,"context_line":"        If the connection to first controller timeout,"},{"line_number":694,"context_line":"        try to connect to the other controller."}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B660%3D","line":691,"in_reply_to":"AAAAM3%2F%2FGII%3D","updated":"2013-02-14 21:35:51.000000000","message":"We have tried to use module paramiko, but it not work.Please see my response before. Thanks.","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":761,"context_line":"        finally:"},{"line_number":762,"context_line":"            ssh.close(force\u003dTrue)"},{"line_number":763,"context_line":""},{"line_number":764,"context_line":"    def _name_transfer(self, name):"},{"line_number":765,"context_line":"        \"\"\"Form a new name.\"\"\""},{"line_number":766,"context_line":"        newname \u003d name.replace(\u0027-\u0027, \u0027\u0027)[-32:]"},{"line_number":767,"context_line":"        return newname"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FGGg%3D","line":764,"updated":"2013-02-07 11:03:14.000000000","message":"I assume you have a 32-character limit on names?  A comment would be nice.  But more importantly, you may have a problem with collisions here.  Maybe add a hash of the full name?\n\nAlso, _name_translate would be a better name in my opinion.","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":761,"context_line":"        finally:"},{"line_number":762,"context_line":"            ssh.close(force\u003dTrue)"},{"line_number":763,"context_line":""},{"line_number":764,"context_line":"    def _name_transfer(self, name):"},{"line_number":765,"context_line":"        \"\"\"Form a new name.\"\"\""},{"line_number":766,"context_line":"        newname \u003d name.replace(\u0027-\u0027, \u0027\u0027)[-32:]"},{"line_number":767,"context_line":"        return newname"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B674%3D","line":764,"in_reply_to":"AAAAM3%2F%2FGGg%3D","updated":"2013-02-14 21:35:51.000000000","message":"Yes, there is a 32-character limit on names, i have added a comment, used a hash of the full name and correct the function name to be _name_translate. Thanks for your suggesstions.","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":785,"context_line":"        for i in range(6, len(en) - 3):"},{"line_number":786,"context_line":"            r \u003d en[i].split()"},{"line_number":787,"context_line":"            if r[6 - d] \u003d\u003d name:"},{"line_number":788,"context_line":"                lunid \u003d r[0]"},{"line_number":789,"context_line":"                return lunid"},{"line_number":790,"context_line":"        return None"},{"line_number":791,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FGDw%3D","line":788,"updated":"2013-02-07 11:03:14.000000000","message":"Why not just \u0027return r[0]\u0027?","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":785,"context_line":"        for i in range(6, len(en) - 3):"},{"line_number":786,"context_line":"            r \u003d en[i].split()"},{"line_number":787,"context_line":"            if r[6 - d] \u003d\u003d name:"},{"line_number":788,"context_line":"                lunid \u003d r[0]"},{"line_number":789,"context_line":"                return lunid"},{"line_number":790,"context_line":"        return None"},{"line_number":791,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBaU%3D","line":788,"in_reply_to":"AAAAM3%2F%2FGDw%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":847,"context_line":"                   % {\u0027name\u0027: ininame})"},{"line_number":848,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)"},{"line_number":849,"context_line":"        self._check_cli_result(out, res)"},{"line_number":850,"context_line":"        if out.find(\u0027Initiator Information\u0027) \u003e -1:"},{"line_number":851,"context_line":"            added \u003d True"},{"line_number":852,"context_line":"        return added"},{"line_number":853,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FGCs%3D","line":850,"updated":"2013-02-07 11:03:14.000000000","message":"More concise:\n\nif ...:\n    return True\nreturn False\n\nAnd no need for \u0027added\u0027","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":847,"context_line":"                   % {\u0027name\u0027: ininame})"},{"line_number":848,"context_line":"        (out, res) \u003d self._execute_cli(cli_cmd)"},{"line_number":849,"context_line":"        self._check_cli_result(out, res)"},{"line_number":850,"context_line":"        if out.find(\u0027Initiator Information\u0027) \u003e -1:"},{"line_number":851,"context_line":"            added \u003d True"},{"line_number":852,"context_line":"        return added"},{"line_number":853,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBaQ%3D","line":850,"in_reply_to":"AAAAM3%2F%2FGCs%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":909,"context_line":"        if matchobject:"},{"line_number":910,"context_line":"            return None"},{"line_number":911,"context_line":"        hostportinfo \u003d []"},{"line_number":912,"context_line":"        hostport_list \u003d []"},{"line_number":913,"context_line":"        list_key \u003d [\u0027id\u0027, \u0027name\u0027, \u0027info\u0027, \u0027type\u0027, \u0027hostid\u0027,"},{"line_number":914,"context_line":"                    \u0027linkstatus\u0027, \u0027multioathtype\u0027]"},{"line_number":915,"context_line":"        en \u003d re.split(\u0027\\r\\n\u0027, out)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FGCM%3D","line":912,"updated":"2013-02-07 11:03:14.000000000","message":"not used","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":909,"context_line":"        if matchobject:"},{"line_number":910,"context_line":"            return None"},{"line_number":911,"context_line":"        hostportinfo \u003d []"},{"line_number":912,"context_line":"        hostport_list \u003d []"},{"line_number":913,"context_line":"        list_key \u003d [\u0027id\u0027, \u0027name\u0027, \u0027info\u0027, \u0027type\u0027, \u0027hostid\u0027,"},{"line_number":914,"context_line":"                    \u0027linkstatus\u0027, \u0027multioathtype\u0027]"},{"line_number":915,"context_line":"        en \u003d re.split(\u0027\\r\\n\u0027, out)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBaM%3D","line":912,"in_reply_to":"AAAAM3%2F%2FGCM%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":1201,"context_line":""},{"line_number":1202,"context_line":"        # If write type is \"write through\", no need"},{"line_number":1203,"context_line":"        # to set mirror switch."},{"line_number":1204,"context_line":"        if lunsetinfo[\u0027WriteType\u0027] \u003d\u003d \"2\":"},{"line_number":1205,"context_line":"            mirrorsw \u003d \"\""},{"line_number":1206,"context_line":"        else:"},{"line_number":1207,"context_line":"            mirrorsw \u003d (\u0027-mirrorsw %(mirrorsw)s \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FGF8%3D","line":1204,"updated":"2013-02-07 11:03:14.000000000","message":"I would change this to something like:\n\n        if lunsetinfo[\u0027WriteType\u0027] !\u003d \"2\":\n            cli_cmd \u003d cli_cmd + (\u0027-mirrorsw %(mirrorsw)s \u0027\n                        % {\u0027mirrorsw\u0027: lunsetinfo[\u0027MirrorSwitch\u0027]})","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":1201,"context_line":""},{"line_number":1202,"context_line":"        # If write type is \"write through\", no need"},{"line_number":1203,"context_line":"        # to set mirror switch."},{"line_number":1204,"context_line":"        if lunsetinfo[\u0027WriteType\u0027] \u003d\u003d \"2\":"},{"line_number":1205,"context_line":"            mirrorsw \u003d \"\""},{"line_number":1206,"context_line":"        else:"},{"line_number":1207,"context_line":"            mirrorsw \u003d (\u0027-mirrorsw %(mirrorsw)s \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBZw%3D","line":1204,"in_reply_to":"AAAAM3%2F%2FGF8%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":1219,"context_line":"            Tseries \u003d (\u0027-rg %(raidgroup)s -susize %(susize)s \u0027"},{"line_number":1220,"context_line":"                       % {\u0027raidgroup\u0027: lunsetinfo[\"StoragePool\"],"},{"line_number":1221,"context_line":"                          \u0027susize\u0027: lunsetinfo[\"StripUnitSize\"]})"},{"line_number":1222,"context_line":"        prevalue \u003d \"\""},{"line_number":1223,"context_line":"        pretimes \u003d \"\""},{"line_number":1224,"context_line":"        pretype \u003d \"-pretype %s \" % lunsetinfo[\u0027PrefetchType\u0027]"},{"line_number":1225,"context_line":"        # If constant prefetch, we should set prefetch value."}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FGFQ%3D","line":1222,"updated":"2013-02-07 11:03:14.000000000","message":"It seems that prevalue and pretimes are mutually exclusive - I would use one variable for both, making the code cleaner","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":1219,"context_line":"            Tseries \u003d (\u0027-rg %(raidgroup)s -susize %(susize)s \u0027"},{"line_number":1220,"context_line":"                       % {\u0027raidgroup\u0027: lunsetinfo[\"StoragePool\"],"},{"line_number":1221,"context_line":"                          \u0027susize\u0027: lunsetinfo[\"StripUnitSize\"]})"},{"line_number":1222,"context_line":"        prevalue \u003d \"\""},{"line_number":1223,"context_line":"        pretimes \u003d \"\""},{"line_number":1224,"context_line":"        pretype \u003d \"-pretype %s \" % lunsetinfo[\u0027PrefetchType\u0027]"},{"line_number":1225,"context_line":"        # If constant prefetch, we should set prefetch value."}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FBZo%3D","line":1222,"in_reply_to":"AAAAM3%2F%2FGFQ%3D","updated":"2013-02-14 21:35:51.000000000","message":"Done","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f1bc30fd64c97cbdc1b9749e894b18c55a348bfa","unresolved":false,"context_lines":[{"line_number":1367,"context_line":"            LOG.error(err_msg)"},{"line_number":1368,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":1369,"context_line":""},{"line_number":1370,"context_line":"    def _check_cli_result(self, out, res):"},{"line_number":1371,"context_line":"        \"\"\"Check whether CLI execute successfully.\"\"\""},{"line_number":1372,"context_line":"        if res !\u003d 0:"},{"line_number":1373,"context_line":"            err_msg \u003d (_(\u0027_check_cli_result:Error:Execute cli command failed. \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FGHs%3D","line":1370,"updated":"2013-02-07 11:03:14.000000000","message":"This function should also take and print the failed command","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"68db1bf11c93bb8885169513efc731ada61a0d09","unresolved":false,"context_lines":[{"line_number":1367,"context_line":"            LOG.error(err_msg)"},{"line_number":1368,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":1369,"context_line":""},{"line_number":1370,"context_line":"    def _check_cli_result(self, out, res):"},{"line_number":1371,"context_line":"        \"\"\"Check whether CLI execute successfully.\"\"\""},{"line_number":1372,"context_line":"        if res !\u003d 0:"},{"line_number":1373,"context_line":"            err_msg \u003d (_(\u0027_check_cli_result:Error:Execute cli command failed. \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B9pE%3D","line":1370,"in_reply_to":"AAAAM3%2F%2FGHs%3D","updated":"2013-02-14 21:35:51.000000000","message":"The failed commands will be printed in \"out\". So no need to add extra infomation. Thanks for suggesstion.","commit_id":"40dfbbefe6a584bfaaa6d6ffd8c16d80e11569e5"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        return {\u0027provider_location\u0027: lun_id}"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def ensure_export(self, context, volume):"},{"line_number":192,"context_line":"        \"\"\"Driver entry point to get the export info for a existing volume\"\"\""},{"line_number":193,"context_line":"        pass"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    def remove_export(self, context, volume_id):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B1A0%3D","line":192,"updated":"2013-02-18 14:37:27.000000000","message":"one line docstring needs a period","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        return {\u0027provider_location\u0027: lun_id}"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def ensure_export(self, context, volume):"},{"line_number":192,"context_line":"        \"\"\"Driver entry point to get the export info for a existing volume\"\"\""},{"line_number":193,"context_line":"        pass"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    def remove_export(self, context, volume_id):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B0cE%3D","line":192,"in_reply_to":"AAAAM3%2F%2B1A0%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                  % {\u0027volume\u0027: volume_name,"},{"line_number":208,"context_line":"                     \u0027ini\u0027: initiator_name})"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        host_name \u003d HOST_NAME_PREFIX + str(hash(initiator_name))"},{"line_number":211,"context_line":"        host_id \u003d self._find_host_in_hostgroup(host_name, self.hostgroup_id)"},{"line_number":212,"context_line":"        if not host_id:"},{"line_number":213,"context_line":"            self._add_host(host_name, self.hostgroup_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B04o%3D","line":210,"updated":"2013-02-18 14:37:27.000000000","message":"This should work fine, but would you want to look at the hosts defined on the controller and know what host it is?  Maybe use HOST_NAME_PREFIX + connector[\u0027host\u0027] + hash?  Up to you.","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                  % {\u0027volume\u0027: volume_name,"},{"line_number":208,"context_line":"                     \u0027ini\u0027: initiator_name})"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        host_name \u003d HOST_NAME_PREFIX + str(hash(initiator_name))"},{"line_number":211,"context_line":"        host_id \u003d self._find_host_in_hostgroup(host_name, self.hostgroup_id)"},{"line_number":212,"context_line":"        if not host_id:"},{"line_number":213,"context_line":"            self._add_host(host_name, self.hostgroup_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B0Z4%3D","line":210,"in_reply_to":"AAAAM3%2F%2B04o%3D","updated":"2013-02-19 03:50:59.000000000","message":"Because of the 32-characters limit on host names,  adding other infomation, like connector[\u0027host\u0027],  may leads to exceed the limit. Thanks for your suggestion all the same.","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        LOG.debug(_(\u0027initialize_connection:host name: %(host_name)s,\u0027"},{"line_number":236,"context_line":"                    \u0027initiator name: %(initiator_name)s, \u0027"},{"line_number":237,"context_line":"                    \u0027hostport name: %(port_name)s\u0027)"},{"line_number":238,"context_line":"                  % locals())"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        # Get target iSCSI iqn."},{"line_number":241,"context_line":"        iscsi_conf \u003d self._get_iscsi_info()"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B1BQ%3D","line":238,"updated":"2013-02-18 14:37:27.000000000","message":"Sorry to drive you crazy, but it seems John found a problem with locals(), and so if it\u0027s not too much trouble, please switch back all instances.","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        LOG.debug(_(\u0027initialize_connection:host name: %(host_name)s,\u0027"},{"line_number":236,"context_line":"                    \u0027initiator name: %(initiator_name)s, \u0027"},{"line_number":237,"context_line":"                    \u0027hostport name: %(port_name)s\u0027)"},{"line_number":238,"context_line":"                  % locals())"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        # Get target iSCSI iqn."},{"line_number":241,"context_line":"        iscsi_conf \u003d self._get_iscsi_info()"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B0b8%3D","line":238,"in_reply_to":"AAAAM3%2F%2B1BQ%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":462,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"        # Create a target LUN."},{"line_number":465,"context_line":"        volume_size \u003d \"%sG\" % volume[\u0027size\u0027]"},{"line_number":466,"context_line":"        self._create_volume(volume_name, volume_size)"},{"line_number":467,"context_line":"        volume_id \u003d self._find_lun(volume_name)"},{"line_number":468,"context_line":"        luncopy_name \u003d volume_name"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B0w0%3D","line":465,"updated":"2013-02-18 14:37:27.000000000","message":"If you take care of the case where volume[\u0027size\u0027] is 0 in _create_volume(), you should take care of it here too.","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":462,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"        # Create a target LUN."},{"line_number":465,"context_line":"        volume_size \u003d \"%sG\" % volume[\u0027size\u0027]"},{"line_number":466,"context_line":"        self._create_volume(volume_name, volume_size)"},{"line_number":467,"context_line":"        volume_id \u003d self._find_lun(volume_name)"},{"line_number":468,"context_line":"        luncopy_name \u003d volume_name"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B0IM%3D","line":465,"in_reply_to":"AAAAM3%2F%2B0w0%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"bee042600ab1b9bd6867686e9dba34fe63f2ea1e","unresolved":false,"context_lines":[{"line_number":720,"context_line":"            else:"},{"line_number":721,"context_line":"                return out"},{"line_number":722,"context_line":""},{"line_number":723,"context_line":"    def _name_translate(self, name):"},{"line_number":724,"context_line":"        \"\"\"Form new names because of the 32-character limit on names."},{"line_number":725,"context_line":"        Remove prefix of volume name or snapshot name."},{"line_number":726,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B0%2FI%3D","line":723,"updated":"2013-02-18 14:37:27.000000000","message":"You may have collisions here (two volumes with different names that become the same).  For example, \u0027abc\u0027, \u0027a-bc\u0027, \u0027ab-c\u0027, \u0027a-b-c\u0027 will all translate to the same name.","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"b7b5110178d38c81553f4c94148b841647309f0d","unresolved":false,"context_lines":[{"line_number":720,"context_line":"            else:"},{"line_number":721,"context_line":"                return out"},{"line_number":722,"context_line":""},{"line_number":723,"context_line":"    def _name_translate(self, name):"},{"line_number":724,"context_line":"        \"\"\"Form new names because of the 32-character limit on names."},{"line_number":725,"context_line":"        Remove prefix of volume name or snapshot name."},{"line_number":726,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B0IE%3D","line":723,"in_reply_to":"AAAAM3%2F%2B0%2FI%3D","updated":"2013-02-19 03:50:59.000000000","message":"Done","commit_id":"1ca7feb05845b334cfeccc219b04c21ebf85919f"},{"author":{"_account_id":4468,"name":"Wangpan","email":"hzwangpan@corp.netease.com","username":"hzwangpan"},"change_message_id":"cdf65e346166340bb9657c8095d986ea9d882929","unresolved":false,"context_lines":[{"line_number":36,"context_line":"huawei_opt \u003d ["},{"line_number":37,"context_line":"    cfg.StrOpt(\u0027cinder_huawei_conf_file\u0027,"},{"line_number":38,"context_line":"               default\u003d\u0027/etc/cinder/cinder_huawei_conf.xml\u0027,"},{"line_number":39,"context_line":"               help\u003d\u0027config data for cinder huawei plugin\u0027)"},{"line_number":40,"context_line":"]"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"FLAGS \u003d flags.FLAGS"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAM3%2F%2Bylk%3D","line":39,"updated":"2013-02-19 06:50:09.000000000","message":"indentation not a multiple of 4, need one more space.","commit_id":"8359bf555f0949c57b2a1953c4f1363367d327bf"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"ed6cdc30c3e0c7e9db44a90aeda654f901d99012","unresolved":false,"context_lines":[{"line_number":36,"context_line":"huawei_opt \u003d ["},{"line_number":37,"context_line":"    cfg.StrOpt(\u0027cinder_huawei_conf_file\u0027,"},{"line_number":38,"context_line":"               default\u003d\u0027/etc/cinder/cinder_huawei_conf.xml\u0027,"},{"line_number":39,"context_line":"               help\u003d\u0027config data for cinder huawei plugin\u0027)"},{"line_number":40,"context_line":"]"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"FLAGS \u003d flags.FLAGS"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAM3%2F%2ByJ4%3D","line":39,"in_reply_to":"AAAAM3%2F%2Bylk%3D","updated":"2013-02-19 11:41:16.000000000","message":"I have checked once more, it really is a mutiple of 4. Thank for review.","commit_id":"8359bf555f0949c57b2a1953c4f1363367d327bf"},{"author":{"_account_id":4468,"name":"Wangpan","email":"hzwangpan@corp.netease.com","username":"hzwangpan"},"change_message_id":"cdf65e346166340bb9657c8095d986ea9d882929","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        LOG.debug(_(\u0027check_for_setup_error: Device type is:%(type)s, \u0027"},{"line_number":143,"context_line":"                    \u0027version is:%(version)s.\u0027)"},{"line_number":144,"context_line":"                  % {\u0027type\u0027: self.device_type[\u0027type\u0027],"},{"line_number":145,"context_line":"                     \u0027version\u0027: self.device_type[\u0027version\u0027]})"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        # Now only version V1 is supported."}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAM3%2F%2Bygs%3D","line":144,"updated":"2013-02-19 06:50:09.000000000","message":"% should be placed at the end of above line:\n\u0027version is:%(version)s.\u0027) %\n{\u0027type\u0027: self.device_type[\u0027type\u0027],","commit_id":"8359bf555f0949c57b2a1953c4f1363367d327bf"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"ed6cdc30c3e0c7e9db44a90aeda654f901d99012","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        LOG.debug(_(\u0027check_for_setup_error: Device type is:%(type)s, \u0027"},{"line_number":143,"context_line":"                    \u0027version is:%(version)s.\u0027)"},{"line_number":144,"context_line":"                  % {\u0027type\u0027: self.device_type[\u0027type\u0027],"},{"line_number":145,"context_line":"                     \u0027version\u0027: self.device_type[\u0027version\u0027]})"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        # Now only version V1 is supported."}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAM3%2F%2ByKc%3D","line":144,"in_reply_to":"AAAAM3%2F%2Bygs%3D","updated":"2013-02-19 11:41:16.000000000","message":"I think the current format is OK, like other drivers. If placing % at the end, the length of one-line may be out of 79-character limit. Thanks for your suggestion.","commit_id":"8359bf555f0949c57b2a1953c4f1363367d327bf"},{"author":{"_account_id":4468,"name":"Wangpan","email":"hzwangpan@corp.netease.com","username":"hzwangpan"},"change_message_id":"cdf65e346166340bb9657c8095d986ea9d882929","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        if volume_id:"},{"line_number":177,"context_line":"            self._delete_volume(volume_name, volume_id)"},{"line_number":178,"context_line":"        else:"},{"line_number":179,"context_line":"            err_msg \u003d (_(\u0027delete_volume:ERROR:No need to delete volume.\u0027"},{"line_number":180,"context_line":"                         \u0027Volume %(name)s does not exist.\u0027)"},{"line_number":181,"context_line":"                       % {\u0027name\u0027: volume[\u0027name\u0027]})"},{"line_number":182,"context_line":"            LOG.error(err_msg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAM3%2F%2BygU%3D","line":179,"updated":"2013-02-19 06:50:09.000000000","message":"\"delete_volume:ERROR:\" I think these words should be deleted.\nLOG.error will do this for you.","commit_id":"8359bf555f0949c57b2a1953c4f1363367d327bf"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"ed6cdc30c3e0c7e9db44a90aeda654f901d99012","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        if volume_id:"},{"line_number":177,"context_line":"            self._delete_volume(volume_name, volume_id)"},{"line_number":178,"context_line":"        else:"},{"line_number":179,"context_line":"            err_msg \u003d (_(\u0027delete_volume:ERROR:No need to delete volume.\u0027"},{"line_number":180,"context_line":"                         \u0027Volume %(name)s does not exist.\u0027)"},{"line_number":181,"context_line":"                       % {\u0027name\u0027: volume[\u0027name\u0027]})"},{"line_number":182,"context_line":"            LOG.error(err_msg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAM3%2F%2ByLc%3D","line":179,"in_reply_to":"AAAAM3%2F%2BygU%3D","updated":"2013-02-19 11:41:16.000000000","message":"Done","commit_id":"8359bf555f0949c57b2a1953c4f1363367d327bf"}],"cinder/volume/drivers/huawei/huawei_iscsi.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"84b6a0c0c0c6fd4a91699a5e0c0007c6c4e9f769","unresolved":false,"context_lines":[{"line_number":312,"context_line":"                     \u0027ini\u0027: initiator_name})"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"        self.login_info \u003d self._get_login_info()"},{"line_number":315,"context_line":"        hostgroup_name \u003d HOST_GROUP_NAME"},{"line_number":316,"context_line":"        host_name \u003d HOST_NAME_PREFIX + str(hash(initiator_name))"},{"line_number":317,"context_line":"        host_id \u003d self._find_host_in_hostgroup(host_name, self.hostgroup_id)"},{"line_number":318,"context_line":"        if not host_id:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAM3%2F%2BvJI%3D","line":315,"updated":"2013-02-20 10:10:24.000000000","message":"hostgroup_name is never used","commit_id":"f8d07259f14620021b66d53536731caa96963f16"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"84b6a0c0c0c6fd4a91699a5e0c0007c6c4e9f769","unresolved":false,"context_lines":[{"line_number":431,"context_line":"            LOG.debug(err_msg)"},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":434,"context_line":"        \"\"\"Create a volume from a snapshot."},{"line_number":435,"context_line":"        We use LUNcopy to create a new LUN from snapshot."},{"line_number":436,"context_line":"        \"\"\""},{"line_number":437,"context_line":"        snapshot_name \u003d self._name_translate(snapshot[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAM3%2F%2BvIk%3D","line":434,"updated":"2013-02-20 10:10:24.000000000","message":"Should be a new line between these two line comments. https://github.com/openstack/cinder/blob/master/HACKING.rst#docstrings","commit_id":"f8d07259f14620021b66d53536731caa96963f16"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"84b6a0c0c0c6fd4a91699a5e0c0007c6c4e9f769","unresolved":false,"context_lines":[{"line_number":485,"context_line":"        self._delete_luncopy(luncopy_id)"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"    def get_volume_stats(self, refresh\u003dFalse):"},{"line_number":488,"context_line":"        \"\"\"Get volume status."},{"line_number":489,"context_line":"        If \u0027refresh\u0027 is True, run update the stats first."},{"line_number":490,"context_line":"        \"\"\""},{"line_number":491,"context_line":"        if refresh:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAM3%2F%2BvIc%3D","line":488,"updated":"2013-02-20 10:10:24.000000000","message":"Should be a new line between these two line comments. https://github.com/openstack/cinder/blob/master/HACKING.rst#docstrings","commit_id":"f8d07259f14620021b66d53536731caa96963f16"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"84b6a0c0c0c6fd4a91699a5e0c0007c6c4e9f769","unresolved":false,"context_lines":[{"line_number":507,"context_line":"            if ((not IP1 and not IP2) or"},{"line_number":508,"context_line":"                not username or"},{"line_number":509,"context_line":"                not pwd or"},{"line_number":510,"context_line":"                not pool):"},{"line_number":511,"context_line":"                isconfwrong \u003d True"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"            elif not pool[0].attrib[\u0027Name\u0027]:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAM3%2F%2BvJA%3D","line":510,"updated":"2013-02-20 10:10:24.000000000","message":"Continuation line does not distinguish from next line.","commit_id":"f8d07259f14620021b66d53536731caa96963f16"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"84b6a0c0c0c6fd4a91699a5e0c0007c6c4e9f769","unresolved":false,"context_lines":[{"line_number":590,"context_line":"                prefetch \u003d root.find(\u0027LUN/Prefetch\u0027)"},{"line_number":591,"context_line":""},{"line_number":592,"context_line":"                if (prefetch is not None and"},{"line_number":593,"context_line":"                    prefetch.attrib[\u0027Type\u0027] !\u003d \u0027\u0027):"},{"line_number":594,"context_line":"                    lunsetinfo[\u0027PrefetchType\u0027] \u003d prefetch.attrib[\u0027Type\u0027]"},{"line_number":595,"context_line":"                    if lunsetinfo[\u0027PrefetchType\u0027] \u003d\u003d \u00271\u0027:"},{"line_number":596,"context_line":"                        lunsetinfo[\u0027PrefetchValue\u0027] \u003d prefetch.attrib[\u0027Value\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAM3%2F%2BvI8%3D","line":593,"updated":"2013-02-20 10:10:24.000000000","message":"Continuation line does distinguish from next line.","commit_id":"f8d07259f14620021b66d53536731caa96963f16"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"84b6a0c0c0c6fd4a91699a5e0c0007c6c4e9f769","unresolved":false,"context_lines":[{"line_number":643,"context_line":"        return pools_list"},{"line_number":644,"context_line":""},{"line_number":645,"context_line":"    def _get_maximum_pool(self, poolinconf, poolindev, luntype):"},{"line_number":646,"context_line":"        \"\"\"Get the maximum pool from config file."},{"line_number":647,"context_line":"        According to the given pools\u0027 name in config file,"},{"line_number":648,"context_line":"        we select the pool of maximum free capacity."},{"line_number":649,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAM3%2F%2BvIY%3D","line":646,"updated":"2013-02-20 10:10:24.000000000","message":"Should be a new line between these two line comments. https://github.com/openstack/cinder/blob/master/HACKING.rst#docstrings","commit_id":"f8d07259f14620021b66d53536731caa96963f16"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"84b6a0c0c0c6fd4a91699a5e0c0007c6c4e9f769","unresolved":false,"context_lines":[{"line_number":690,"context_line":"        return iscsiinfo"},{"line_number":691,"context_line":""},{"line_number":692,"context_line":"    def _execute_cli(self, cmd):"},{"line_number":693,"context_line":"        \"\"\"Build SSH connection to execute CLI commands."},{"line_number":694,"context_line":"        If the connection to first controller time out,"},{"line_number":695,"context_line":"        try to connect to the other controller."},{"line_number":696,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAM3%2F%2BvIU%3D","line":693,"updated":"2013-02-20 10:10:24.000000000","message":"Should be a new line between these two line comments. https://github.com/openstack/cinder/blob/master/HACKING.rst#docstrings","commit_id":"f8d07259f14620021b66d53536731caa96963f16"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"84b6a0c0c0c6fd4a91699a5e0c0007c6c4e9f769","unresolved":false,"context_lines":[{"line_number":714,"context_line":"                ssh.close()"},{"line_number":715,"context_line":"            except Exception as err:"},{"line_number":716,"context_line":"                if (not self.controller_alterable and"},{"line_number":717,"context_line":"                    str(err).find(\u0027timed out\u0027) \u003e -1):"},{"line_number":718,"context_line":"                    self.controller_alterable \u003d False"},{"line_number":719,"context_line":""},{"line_number":720,"context_line":"                    LOG.debug(_(\u0027_execute_cli:Connect to controller0 %(ctr0)s\u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAM3%2F%2BvI4%3D","line":717,"updated":"2013-02-20 10:10:24.000000000","message":"Continuation line does distinguish from next line.","commit_id":"f8d07259f14620021b66d53536731caa96963f16"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"84b6a0c0c0c6fd4a91699a5e0c0007c6c4e9f769","unresolved":false,"context_lines":[{"line_number":735,"context_line":"                return out"},{"line_number":736,"context_line":""},{"line_number":737,"context_line":"    def _name_translate(self, name):"},{"line_number":738,"context_line":"        \"\"\"Form new names because of the 32-character limit on names."},{"line_number":739,"context_line":"        \"\"\""},{"line_number":740,"context_line":"        newname \u003d VOL_AND_SNAP_NAME_FREFIX + str(hash(name))"},{"line_number":741,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAM3%2F%2BvIQ%3D","line":738,"updated":"2013-02-20 10:10:24.000000000","message":"Can be a one line doc string. https://github.com/openstack/cinder/blob/master/HACKING.rst#docstrings","commit_id":"f8d07259f14620021b66d53536731caa96963f16"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"84b6a0c0c0c6fd4a91699a5e0c0007c6c4e9f769","unresolved":false,"context_lines":[{"line_number":1269,"context_line":"        return None"},{"line_number":1270,"context_line":""},{"line_number":1271,"context_line":"    def _wait_for_luncopy(self, luncopyname):"},{"line_number":1272,"context_line":"        \"\"\"Waite for LUNcopy complete.\"\"\""},{"line_number":1273,"context_line":"        while True:"},{"line_number":1274,"context_line":"            luncopy_info \u003d self._get_luncopy_info(luncopyname)"},{"line_number":1275,"context_line":"            if luncopy_info[\u0027state\u0027] \u003d\u003d \u0027Complete\u0027:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAM3%2F%2BvIM%3D","line":1272,"updated":"2013-02-20 10:10:24.000000000","message":"Wait for LUNcopy to complete.","commit_id":"f8d07259f14620021b66d53536731caa96963f16"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"84b6a0c0c0c6fd4a91699a5e0c0007c6c4e9f769","unresolved":false,"context_lines":[{"line_number":1378,"context_line":"        for poolinfo in poolinfo_dev:"},{"line_number":1379,"context_line":"            for pool in pools_conf:"},{"line_number":1380,"context_line":"                if (self.device_type[\u0027type\u0027] \u003d\u003d \u0027Dorado5100\u0027 and"},{"line_number":1381,"context_line":"                    poolinfo[5] \u003d\u003d pool.attrib[\u0027Name\u0027]):"},{"line_number":1382,"context_line":"                    total_free_capacity +\u003d float(poolinfo[3])"},{"line_number":1383,"context_line":"                    break"},{"line_number":1384,"context_line":"                elif self.device_type[\u0027type\u0027] \u003d\u003d \u0027Dorado2100 G2\u0027:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAM3%2F%2BvI0%3D","line":1381,"updated":"2013-02-20 10:10:24.000000000","message":"Continuation line does distinguish from next line.","commit_id":"f8d07259f14620021b66d53536731caa96963f16"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"84b6a0c0c0c6fd4a91699a5e0c0007c6c4e9f769","unresolved":false,"context_lines":[{"line_number":1386,"context_line":"                    break"},{"line_number":1387,"context_line":"                else:"},{"line_number":1388,"context_line":"                    if (lun_type \u003d\u003d \u0027Thick\u0027 and"},{"line_number":1389,"context_line":"                        poolinfo[5] \u003d\u003d pool.attrib[\u0027Name\u0027]):"},{"line_number":1390,"context_line":"                        total_free_capacity +\u003d float(poolinfo[3])"},{"line_number":1391,"context_line":"                        break"},{"line_number":1392,"context_line":"                    elif poolinfo[1] \u003d\u003d pool.attrib[\u0027Name\u0027]:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAM3%2F%2BvIw%3D","line":1389,"updated":"2013-02-20 10:10:24.000000000","message":"Continuation line does distinguish from next line.","commit_id":"f8d07259f14620021b66d53536731caa96963f16"}]}
