)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1e8217635366faa31e9c8fdc5423a47c4f3a0664","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add ZTE Block Storage Driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"It will support the minimum set of features required in Mitaka:"},{"line_number":10,"context_line":" * Volume Create/Delete"},{"line_number":11,"context_line":" * Volume Attach/Detach"},{"line_number":12,"context_line":" * Snapshot Create/Delete"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"dab17558_8247b1ba","line":9,"updated":"2016-05-17 22:08:02.000000000","message":"Newton","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"080d35c961fd33c59cc062fa1e6a928a1c46e4e4","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add ZTE Block Storage Driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"It will support the minimum set of features required in Mitaka:"},{"line_number":10,"context_line":" * Volume Create/Delete"},{"line_number":11,"context_line":" * Volume Attach/Detach"},{"line_number":12,"context_line":" * Snapshot Create/Delete"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"5a9d85d2_c550620d","line":9,"range":{"start_line":9,"start_character":56,"end_line":9,"end_character":62},"updated":"2016-06-21 01:40:36.000000000","message":"Your commit branch is master not Mitaka, please change Mitaka to Newton.","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"2d880ab545df797293269c7d64344eb884f94304","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add ZTE Block Storage Driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"It will support the minimum set of features required in Mitaka:"},{"line_number":10,"context_line":" * Volume Create/Delete"},{"line_number":11,"context_line":" * Volume Attach/Detach"},{"line_number":12,"context_line":" * Snapshot Create/Delete"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"5a9d85d2_c5ca221a","line":9,"range":{"start_line":9,"start_character":56,"end_line":9,"end_character":62},"in_reply_to":"5a9d85d2_c550620d","updated":"2016-06-21 03:45:01.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"}],"cinder/tests/unit/test_zte_ks.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7cc821e834da763d5d0d930aa880f2dc8eef45e2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012-2015 ZTE Corporation. All rights reserved"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_f2313da3","line":1,"updated":"2016-05-11 19:12:52.000000000","message":"2016?","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"2661e73eb9f547d17b3f41e455b2cedfa32c2069","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012-2015 ZTE Corporation. All rights reserved"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_36af20e5","line":1,"in_reply_to":"dab17558_2202d30b","updated":"2016-05-18 03:08:51.000000000","message":"Done","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"59ac94c2eba1c222be2be58b7819bba94859fb9f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012-2015 ZTE Corporation. All rights reserved"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_2202d30b","line":1,"in_reply_to":"dab17558_f2313da3","updated":"2016-05-14 00:17:39.000000000","message":"Done","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7cc821e834da763d5d0d930aa880f2dc8eef45e2","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from cinder.volume.drivers.zte import zte_ks"},{"line_number":25,"context_line":"from cinder.volume.drivers.zte import zte_pub"},{"line_number":26,"context_line":"from oslo_config import cfg"},{"line_number":27,"context_line":"import six"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def translate_volume_name(vol_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_52dc8945","line":27,"updated":"2016-05-11 19:12:52.000000000","message":"The imports for six and oslo_config should be above the cinder imports. The import grouping should be standard libs, third party libs, then local (cinder) imports, separated by blank lines.","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"59ac94c2eba1c222be2be58b7819bba94859fb9f","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from cinder.volume.drivers.zte import zte_ks"},{"line_number":25,"context_line":"from cinder.volume.drivers.zte import zte_pub"},{"line_number":26,"context_line":"from oslo_config import cfg"},{"line_number":27,"context_line":"import six"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def translate_volume_name(vol_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_7dff5e01","line":27,"in_reply_to":"dab17558_52dc8945","updated":"2016-05-14 00:17:39.000000000","message":"Done","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1e8217635366faa31e9c8fdc5423a47c4f3a0664","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012-2016 ZTE Corporation. All rights reserved"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_62ebada4","line":1,"updated":"2016-05-17 22:08:02.000000000","message":"2016","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"7c23f3010688e6607ad30963385c589e833b87cc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012-2016 ZTE Corporation. All rights reserved"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_12c8e121","line":1,"in_reply_to":"dab17558_62ebada4","updated":"2016-05-19 08:39:34.000000000","message":"Done","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"547f9929bdd50021016c1b57a01efdf7cb36630c","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":34,"context_line":"    return new_name"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"session_id \u003d \u0027kfomqdnoetjcjlva\u0027"},{"line_number":37,"context_line":"volume_paras \u003d {\u0027name\u0027: \u0027volume-21ec7341-9256-497b-97d9-ef48edcf0635\u0027,"},{"line_number":38,"context_line":"                \u0027size\u0027: 2,"},{"line_number":39,"context_line":"                \u0027volume_name\u0027: \u0027vol1\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_e3f20d6e","line":36,"updated":"2016-05-17 18:13:57.000000000","message":"Would be better to make this something like \"aaaabbbbccccdddd\" so it\u0027s clearly a fake ID in test failures etc.","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"7c23f3010688e6607ad30963385c589e833b87cc","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":34,"context_line":"    return new_name"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"session_id \u003d \u0027kfomqdnoetjcjlva\u0027"},{"line_number":37,"context_line":"volume_paras \u003d {\u0027name\u0027: \u0027volume-21ec7341-9256-497b-97d9-ef48edcf0635\u0027,"},{"line_number":38,"context_line":"                \u0027size\u0027: 2,"},{"line_number":39,"context_line":"                \u0027volume_name\u0027: \u0027vol1\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_92dcd1e5","line":36,"in_reply_to":"dab17558_e3f20d6e","updated":"2016-05-19 08:39:34.000000000","message":"Done","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"2883cc8459f67e2a2ac71be46038d64202035d82","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":34,"context_line":"    return new_name"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"session_id \u003d \u0027kfomqdnoetjcjlva\u0027"},{"line_number":37,"context_line":"volume_paras \u003d {\u0027name\u0027: \u0027volume-21ec7341-9256-497b-97d9-ef48edcf0635\u0027,"},{"line_number":38,"context_line":"                \u0027size\u0027: 2,"},{"line_number":39,"context_line":"                \u0027volume_name\u0027: \u0027vol1\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_d5fa8674","line":36,"in_reply_to":"dab17558_e3f20d6e","updated":"2016-05-20 02:57:17.000000000","message":"if we change \"kfomqdnoetjcjlva\" to \"aaaabbbbccccdddd\",  we will fail to pass \"tempest.scenario.test_volume_boot_pattern.TestVolumeBootPattern.test_volume_boot_pattern\"","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"547f9929bdd50021016c1b57a01efdf7cb36630c","unresolved":false,"context_lines":[{"line_number":76,"context_line":"             \u0027initiator\u0027: \u0027iqn.1993-08.org.debian:01:222\u0027}"},{"line_number":77,"context_line":"fcconnector \u003d {\u0027ip\u0027: \u002710.0.0.0\u0027,"},{"line_number":78,"context_line":"               \u0027wwpns\u0027: [1, 2, 3, 4, 5, 6, 7, 8]}"},{"line_number":79,"context_line":"fake_opt \u003d ["},{"line_number":80,"context_line":"    cfg.StrOpt(\u0027fake_opt\u0027, default\u003d\u0027fake\u0027, help\u003d\u0027fake opts\u0027)"},{"line_number":81,"context_line":"]"},{"line_number":82,"context_line":"VolFlowLimitAttr_paras \u003d {\u0027sqwWriteFlowLimit\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_e3996d20","line":79,"updated":"2016-05-17 18:13:57.000000000","message":"Not needed?","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"7c23f3010688e6607ad30963385c589e833b87cc","unresolved":false,"context_lines":[{"line_number":76,"context_line":"             \u0027initiator\u0027: \u0027iqn.1993-08.org.debian:01:222\u0027}"},{"line_number":77,"context_line":"fcconnector \u003d {\u0027ip\u0027: \u002710.0.0.0\u0027,"},{"line_number":78,"context_line":"               \u0027wwpns\u0027: [1, 2, 3, 4, 5, 6, 7, 8]}"},{"line_number":79,"context_line":"fake_opt \u003d ["},{"line_number":80,"context_line":"    cfg.StrOpt(\u0027fake_opt\u0027, default\u003d\u0027fake\u0027, help\u003d\u0027fake opts\u0027)"},{"line_number":81,"context_line":"]"},{"line_number":82,"context_line":"VolFlowLimitAttr_paras \u003d {\u0027sqwWriteFlowLimit\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_92033142","line":79,"in_reply_to":"bab6814e_3972737d","updated":"2016-05-19 08:39:34.000000000","message":"Needed.","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"46085b6482008f6a8ebe4dcf91556b67c6b788af","unresolved":false,"context_lines":[{"line_number":76,"context_line":"             \u0027initiator\u0027: \u0027iqn.1993-08.org.debian:01:222\u0027}"},{"line_number":77,"context_line":"fcconnector \u003d {\u0027ip\u0027: \u002710.0.0.0\u0027,"},{"line_number":78,"context_line":"               \u0027wwpns\u0027: [1, 2, 3, 4, 5, 6, 7, 8]}"},{"line_number":79,"context_line":"fake_opt \u003d ["},{"line_number":80,"context_line":"    cfg.StrOpt(\u0027fake_opt\u0027, default\u003d\u0027fake\u0027, help\u003d\u0027fake opts\u0027)"},{"line_number":81,"context_line":"]"},{"line_number":82,"context_line":"VolFlowLimitAttr_paras \u003d {\u0027sqwWriteFlowLimit\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_3972737d","line":79,"in_reply_to":"dab17558_e3996d20","updated":"2016-05-18 14:16:06.000000000","message":"Done","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"547f9929bdd50021016c1b57a01efdf7cb36630c","unresolved":false,"context_lines":[{"line_number":157,"context_line":"            \u0027tSystemNetCfg\u0027: ["},{"line_number":158,"context_line":"                {\u0027udwCtrlId\u0027: 0, \u0027udwRoleType\u0027: 0,"},{"line_number":159,"context_line":"                 \u0027udwPortType\u0027: 1, \u0027udwDeviceId\u0027: 123,"},{"line_number":160,"context_line":"                 \u0027cIpAddr\u0027: \u002710.43.16.20\u0027},"},{"line_number":161,"context_line":"                {\u0027udwCtrlId\u0027: 0, \u0027udwRoleType\u0027: 0,"},{"line_number":162,"context_line":"                 \u0027udwPortType\u0027: 1, \u0027udwDeviceId\u0027: 123,"},{"line_number":163,"context_line":"                 \u0027cIpAddr\u0027: \u002710.43.16.21\u0027},"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_63229dba","line":160,"updated":"2016-05-17 18:13:57.000000000","message":"Please use an IP reserved for docs rather than a real IP (RFC 5737).\n\nSuggest 198.51.100.x.\n\n(This is just so firewalls don\u0027t get triggered etc if there are bugs that cause real connections out.)","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"46085b6482008f6a8ebe4dcf91556b67c6b788af","unresolved":false,"context_lines":[{"line_number":157,"context_line":"            \u0027tSystemNetCfg\u0027: ["},{"line_number":158,"context_line":"                {\u0027udwCtrlId\u0027: 0, \u0027udwRoleType\u0027: 0,"},{"line_number":159,"context_line":"                 \u0027udwPortType\u0027: 1, \u0027udwDeviceId\u0027: 123,"},{"line_number":160,"context_line":"                 \u0027cIpAddr\u0027: \u002710.43.16.20\u0027},"},{"line_number":161,"context_line":"                {\u0027udwCtrlId\u0027: 0, \u0027udwRoleType\u0027: 0,"},{"line_number":162,"context_line":"                 \u0027udwPortType\u0027: 1, \u0027udwDeviceId\u0027: 123,"},{"line_number":163,"context_line":"                 \u0027cIpAddr\u0027: \u002710.43.16.21\u0027},"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_8a9fbf5e","line":160,"in_reply_to":"dab17558_63229dba","updated":"2016-05-18 14:16:06.000000000","message":"Done","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"46085b6482008f6a8ebe4dcf91556b67c6b788af","unresolved":false,"context_lines":[{"line_number":157,"context_line":"            \u0027tSystemNetCfg\u0027: ["},{"line_number":158,"context_line":"                {\u0027udwCtrlId\u0027: 0, \u0027udwRoleType\u0027: 0,"},{"line_number":159,"context_line":"                 \u0027udwPortType\u0027: 1, \u0027udwDeviceId\u0027: 123,"},{"line_number":160,"context_line":"                 \u0027cIpAddr\u0027: \u002710.43.16.20\u0027},"},{"line_number":161,"context_line":"                {\u0027udwCtrlId\u0027: 0, \u0027udwRoleType\u0027: 0,"},{"line_number":162,"context_line":"                 \u0027udwPortType\u0027: 1, \u0027udwDeviceId\u0027: 123,"},{"line_number":163,"context_line":"                 \u0027cIpAddr\u0027: \u002710.43.16.21\u0027},"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_cbf2666f","line":160,"in_reply_to":"dab17558_63229dba","updated":"2016-05-18 14:16:06.000000000","message":"Done","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"547f9929bdd50021016c1b57a01efdf7cb36630c","unresolved":false,"context_lines":[{"line_number":343,"context_line":"        configuration \u003d conf.Configuration(None)"},{"line_number":344,"context_line":"        self.configuration \u003d configuration"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        self.configuration.zteControllerIP0 \u003d \u0027129.0.63.2\u0027"},{"line_number":347,"context_line":"        self.configuration.zteLocalIP \u003d \u0027129.0.0.8\u0027"},{"line_number":348,"context_line":"        self.configuration.zteUserName \u003d \u0027root\u0027"},{"line_number":349,"context_line":"        self.configuration.zteUserPassword \u003d \u0027root\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_83606102","line":346,"updated":"2016-05-17 18:13:57.000000000","message":"Please use 192.0.2.2  (From IP ranges reserved for documentation, rather than real addresses.  RFC 5737)","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"7c23f3010688e6607ad30963385c589e833b87cc","unresolved":false,"context_lines":[{"line_number":343,"context_line":"        configuration \u003d conf.Configuration(None)"},{"line_number":344,"context_line":"        self.configuration \u003d configuration"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        self.configuration.zteControllerIP0 \u003d \u0027129.0.63.2\u0027"},{"line_number":347,"context_line":"        self.configuration.zteLocalIP \u003d \u0027129.0.0.8\u0027"},{"line_number":348,"context_line":"        self.configuration.zteUserName \u003d \u0027root\u0027"},{"line_number":349,"context_line":"        self.configuration.zteUserPassword \u003d \u0027root\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_f21b9d7e","line":346,"in_reply_to":"dab17558_83606102","updated":"2016-05-19 08:39:34.000000000","message":"Done","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"547f9929bdd50021016c1b57a01efdf7cb36630c","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        self.configuration \u003d configuration"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        self.configuration.zteControllerIP0 \u003d \u0027129.0.63.2\u0027"},{"line_number":347,"context_line":"        self.configuration.zteLocalIP \u003d \u0027129.0.0.8\u0027"},{"line_number":348,"context_line":"        self.configuration.zteUserName \u003d \u0027root\u0027"},{"line_number":349,"context_line":"        self.configuration.zteUserPassword \u003d \u0027root\u0027"},{"line_number":350,"context_line":"        self.configuration.zteChunkSize \u003d 64"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_a3512532","line":347,"updated":"2016-05-17 18:13:57.000000000","message":"Please use 192.0.2.8 or 127.0.0.8.  (Same as above.)","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3f71e39d1febaebd2e4698a55d9bcaf86018b0bd","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from cinder.volume.drivers.zte import zte_pub"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def _get_md5(src_string):"},{"line_number":32,"context_line":"    md5obj \u003d hashlib.md5()"},{"line_number":33,"context_line":"    md5obj.update(src_string.encode(\u0027UTF-8\u0027))"},{"line_number":34,"context_line":"    md5_string \u003d md5obj.hexdigest()"},{"line_number":35,"context_line":"    md5_string \u003d md5_string[0:19]"},{"line_number":36,"context_line":"    return md5_string"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def translate_volume_name(vol_name):"},{"line_number":40,"context_line":"    new_name \u003d \u0027OpenCos_\u0027 + six.text_type("},{"line_number":41,"context_line":"        _get_md5(vol_name))"},{"line_number":42,"context_line":"    new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":43,"context_line":"    return new_name"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"session_id \u003d \u0027kfomqdnoetjcjlva\u0027"},{"line_number":46,"context_line":"volume_paras \u003d {\u0027name\u0027: \u0027volume-21ec7341-9256-497b-97d9-ef48edcf0635\u0027,"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_38088991","line":43,"range":{"start_line":31,"start_character":0,"end_line":43,"end_character":19},"updated":"2016-07-08 13:09:37.000000000","message":"Why is all of this code duplicated from the volume driver just to set a static string? Just set a value below and remove this.","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"73018380dd433bf0fc6758e76d4e586549df5909","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from cinder.volume.drivers.zte import zte_pub"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def _get_md5(src_string):"},{"line_number":32,"context_line":"    md5obj \u003d hashlib.md5()"},{"line_number":33,"context_line":"    md5obj.update(src_string.encode(\u0027UTF-8\u0027))"},{"line_number":34,"context_line":"    md5_string \u003d md5obj.hexdigest()"},{"line_number":35,"context_line":"    md5_string \u003d md5_string[0:19]"},{"line_number":36,"context_line":"    return md5_string"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def translate_volume_name(vol_name):"},{"line_number":40,"context_line":"    new_name \u003d \u0027OpenCos_\u0027 + six.text_type("},{"line_number":41,"context_line":"        _get_md5(vol_name))"},{"line_number":42,"context_line":"    new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":43,"context_line":"    return new_name"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"session_id \u003d \u0027kfomqdnoetjcjlva\u0027"},{"line_number":46,"context_line":"volume_paras \u003d {\u0027name\u0027: \u0027volume-21ec7341-9256-497b-97d9-ef48edcf0635\u0027,"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_82e76711","line":43,"range":{"start_line":31,"start_character":0,"end_line":43,"end_character":19},"in_reply_to":"1aa78d24_38088991","updated":"2016-07-09 10:20:57.000000000","message":"Done","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"}],"cinder/volume/drivers/zte/zte_ks.py":[{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"df52cab40664f119fd7fbc68fcf69f82bb0cbdb8","unresolved":false,"context_lines":[{"line_number":139,"context_line":"            \u0027UserName\u0027: self.configuration.zteUserName,"},{"line_number":140,"context_line":"            \u0027UserPassword\u0027: self.configuration.zteUserPassword}"},{"line_number":141,"context_line":"        self._get_server()"},{"line_number":142,"context_line":"        try:"},{"line_number":143,"context_line":"            self.session_id \u003d self._user_login()"},{"line_number":144,"context_line":"        except exception.CinderException:"},{"line_number":145,"context_line":"            self._change_server()"},{"line_number":146,"context_line":"            self.session_id \u003d self._user_login()"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def check_for_setup_error(self):"},{"line_number":149,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_1d527313","line":146,"range":{"start_line":142,"start_character":8,"end_line":146,"end_character":48},"updated":"2016-05-04 22:20:35.000000000","message":"I would recommend using a more specific exception than CinderException here since it looks like it is being used to decide if it was unable to log in. While the code does look like it should be ok, its not immediately apparent what its doing.","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"7e3508c4ae7c1752c6524504c7f96b009a23a43c","unresolved":false,"context_lines":[{"line_number":139,"context_line":"            \u0027UserName\u0027: self.configuration.zteUserName,"},{"line_number":140,"context_line":"            \u0027UserPassword\u0027: self.configuration.zteUserPassword}"},{"line_number":141,"context_line":"        self._get_server()"},{"line_number":142,"context_line":"        try:"},{"line_number":143,"context_line":"            self.session_id \u003d self._user_login()"},{"line_number":144,"context_line":"        except exception.CinderException:"},{"line_number":145,"context_line":"            self._change_server()"},{"line_number":146,"context_line":"            self.session_id \u003d self._user_login()"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def check_for_setup_error(self):"},{"line_number":149,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":3,"id":"dab17558_e2844bb2","line":146,"range":{"start_line":142,"start_character":8,"end_line":146,"end_character":48},"in_reply_to":"1a122d0e_1d527313","updated":"2016-05-14 00:15:30.000000000","message":"Yes, we will fix it in next version","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"df52cab40664f119fd7fbc68fcf69f82bb0cbdb8","unresolved":false,"context_lines":[{"line_number":289,"context_line":"                    raise exception.VolumeIsBusy(err_msg)"},{"line_number":290,"context_line":"            else:"},{"line_number":291,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":292,"context_line":"        time.sleep(6)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    def _delete_clone_relation_by_volname(self, volname, issnapshot):"},{"line_number":295,"context_line":"        svol_name \u003d {\u0027scVolName\u0027: volname}"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_bddd3f72","line":292,"updated":"2016-05-04 22:20:35.000000000","message":"Why 6? Usually this kind of thing should be configurable, especially for unit tests where anytime this method is called it would take 6 seconds :(","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"7e3508c4ae7c1752c6524504c7f96b009a23a43c","unresolved":false,"context_lines":[{"line_number":289,"context_line":"                    raise exception.VolumeIsBusy(err_msg)"},{"line_number":290,"context_line":"            else:"},{"line_number":291,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":292,"context_line":"        time.sleep(6)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    def _delete_clone_relation_by_volname(self, volname, issnapshot):"},{"line_number":295,"context_line":"        svol_name \u003d {\u0027scVolName\u0027: volname}"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_d6a3b59c","line":292,"in_reply_to":"1a122d0e_bddd3f72","updated":"2016-05-14 00:15:30.000000000","message":"Yes, I will modify this \u00276\u0027 to config_file.","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"df52cab40664f119fd7fbc68fcf69f82bb0cbdb8","unresolved":false,"context_lines":[{"line_number":416,"context_line":"                         \u0027 %(volume_size)s.\u0027),"},{"line_number":417,"context_line":"                       {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":418,"context_line":"                        \u0027volume_size\u0027: int(src_vref[\u0027size\u0027])})"},{"line_number":419,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":420,"context_line":"        else:"},{"line_number":421,"context_line":"            volume_size \u003d float("},{"line_number":422,"context_line":"                volume[\u0027size\u0027] *"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_dd13dbff","line":419,"updated":"2016-05-04 22:20:35.000000000","message":"Ones like this that aren\u0027t an error from calling your API you might want to use VolumeDriverException instead of VolumeBackendAPIException","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"7e3508c4ae7c1752c6524504c7f96b009a23a43c","unresolved":false,"context_lines":[{"line_number":416,"context_line":"                         \u0027 %(volume_size)s.\u0027),"},{"line_number":417,"context_line":"                       {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":418,"context_line":"                        \u0027volume_size\u0027: int(src_vref[\u0027size\u0027])})"},{"line_number":419,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":420,"context_line":"        else:"},{"line_number":421,"context_line":"            volume_size \u003d float("},{"line_number":422,"context_line":"                volume[\u0027size\u0027] *"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_31879362","line":419,"in_reply_to":"1a122d0e_dd13dbff","updated":"2016-05-14 00:15:30.000000000","message":"Done","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"df52cab40664f119fd7fbc68fcf69f82bb0cbdb8","unresolved":false,"context_lines":[{"line_number":440,"context_line":"                  \u0027%(volume_size)s.\u0027),"},{"line_number":441,"context_line":"                {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":442,"context_line":"                 \u0027volume_size\u0027: int(snapshot[\u0027volume_size\u0027])})"},{"line_number":443,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":444,"context_line":"        else:"},{"line_number":445,"context_line":"            volume_size \u003d float("},{"line_number":446,"context_line":"                volume[\u0027size\u0027] *"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_5db50beb","line":443,"updated":"2016-05-04 22:20:35.000000000","message":"same here","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"7e3508c4ae7c1752c6524504c7f96b009a23a43c","unresolved":false,"context_lines":[{"line_number":440,"context_line":"                  \u0027%(volume_size)s.\u0027),"},{"line_number":441,"context_line":"                {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":442,"context_line":"                 \u0027volume_size\u0027: int(snapshot[\u0027volume_size\u0027])})"},{"line_number":443,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":444,"context_line":"        else:"},{"line_number":445,"context_line":"            volume_size \u003d float("},{"line_number":446,"context_line":"                volume[\u0027size\u0027] *"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_b193a3a2","line":443,"in_reply_to":"1a122d0e_5db50beb","updated":"2016-05-14 00:15:30.000000000","message":"Done","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"df52cab40664f119fd7fbc68fcf69f82bb0cbdb8","unresolved":false,"context_lines":[{"line_number":623,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":624,"context_line":"            err_msg \u003d (_(\u0027get_Net_Cfg fail.with Return code: %(ret)s.\u0027),"},{"line_number":625,"context_line":"                       {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":626,"context_line":"            raise exception.CinderException(err_msg)"},{"line_number":627,"context_line":""},{"line_number":628,"context_line":"        targetips \u003d []"},{"line_number":629,"context_line":"        net_cfg_info \u003d ret[\u0027data\u0027][\u0027tSystemNetCfg\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_9d232305","line":626,"updated":"2016-05-04 22:20:35.000000000","message":"For consistency you probably want to use the VolumeBackendAPIException for this","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"7e3508c4ae7c1752c6524504c7f96b009a23a43c","unresolved":false,"context_lines":[{"line_number":623,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":624,"context_line":"            err_msg \u003d (_(\u0027get_Net_Cfg fail.with Return code: %(ret)s.\u0027),"},{"line_number":625,"context_line":"                       {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":626,"context_line":"            raise exception.CinderException(err_msg)"},{"line_number":627,"context_line":""},{"line_number":628,"context_line":"        targetips \u003d []"},{"line_number":629,"context_line":"        net_cfg_info \u003d ret[\u0027data\u0027][\u0027tSystemNetCfg\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_f1899b70","line":626,"in_reply_to":"1a122d0e_9d232305","updated":"2016-05-14 00:15:30.000000000","message":"Done","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"df52cab40664f119fd7fbc68fcf69f82bb0cbdb8","unresolved":false,"context_lines":[{"line_number":633,"context_line":"                targetips.append(net_cfg_info[item][\u0027cIpAddr\u0027])"},{"line_number":634,"context_line":"        return targetips"},{"line_number":635,"context_line":""},{"line_number":636,"context_line":"    @utils.synchronized(\u0027locked_initialize_connection\u0027)"},{"line_number":637,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":638,"context_line":"        \"\"\"Map a volume to a host and return target iSCSI information.\"\"\""},{"line_number":639,"context_line":"        initiator_name \u003d connector[\u0027initiator\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_5dd22bd2","line":636,"updated":"2016-05-04 22:20:35.000000000","message":"Just in case you didn\u0027t already know, these locks are going to be incurring additional burden on anyone who wants to use cinder with active-active HA deployments (which are becoming very popular) since they would end up needing Tooz deployed with zookeeper or something.\n\nNot sure what part of this needs them, but if its possible you should try and remove them.","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"7e3508c4ae7c1752c6524504c7f96b009a23a43c","unresolved":false,"context_lines":[{"line_number":633,"context_line":"                targetips.append(net_cfg_info[item][\u0027cIpAddr\u0027])"},{"line_number":634,"context_line":"        return targetips"},{"line_number":635,"context_line":""},{"line_number":636,"context_line":"    @utils.synchronized(\u0027locked_initialize_connection\u0027)"},{"line_number":637,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":638,"context_line":"        \"\"\"Map a volume to a host and return target iSCSI information.\"\"\""},{"line_number":639,"context_line":"        initiator_name \u003d connector[\u0027initiator\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_b65b9953","line":636,"in_reply_to":"1a122d0e_5dd22bd2","updated":"2016-05-14 00:15:30.000000000","message":"We need it.","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"df52cab40664f119fd7fbc68fcf69f82bb0cbdb8","unresolved":false,"context_lines":[{"line_number":706,"context_line":"                initiator_list.append(item)"},{"line_number":707,"context_line":"            iscsi_info[\u0027Initiator\u0027] \u003d initiator_list"},{"line_number":708,"context_line":""},{"line_number":709,"context_line":"        except Exception:"},{"line_number":710,"context_line":"            LOG.exception(_LE(\u0027_get_iscsi_info error.\u0027))"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        return iscsi_info"},{"line_number":713,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_d8e00929","line":710,"range":{"start_line":709,"start_character":0,"end_line":710,"end_character":56},"updated":"2016-05-04 22:20:35.000000000","message":"Should this raise after you log the exception? Looks like where it is used in initialize connection it will cause problems if this method returned {}.","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"7e3508c4ae7c1752c6524504c7f96b009a23a43c","unresolved":false,"context_lines":[{"line_number":706,"context_line":"                initiator_list.append(item)"},{"line_number":707,"context_line":"            iscsi_info[\u0027Initiator\u0027] \u003d initiator_list"},{"line_number":708,"context_line":""},{"line_number":709,"context_line":"        except Exception:"},{"line_number":710,"context_line":"            LOG.exception(_LE(\u0027_get_iscsi_info error.\u0027))"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        return iscsi_info"},{"line_number":713,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"dab17558_8231ff0d","line":710,"range":{"start_line":709,"start_character":0,"end_line":710,"end_character":56},"in_reply_to":"1a122d0e_d8e00929","updated":"2016-05-14 00:15:30.000000000","message":"The driver would retry, so I think it needn\u0027t raise exception.","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"df52cab40664f119fd7fbc68fcf69f82bb0cbdb8","unresolved":false,"context_lines":[{"line_number":730,"context_line":"            err_msg \u003d (_(\u0027_get_target_ip_ctrl:get iscsi port list fail. \u0027"},{"line_number":731,"context_line":"                         \u0027with Return code: %(ret)s.\u0027),"},{"line_number":732,"context_line":"                       {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":733,"context_line":"            raise exception.CinderException(err_msg)"},{"line_number":734,"context_line":"        count \u003d ret[\u0027data\u0027][\u0027sdwDeviceNum\u0027]"},{"line_number":735,"context_line":"        for index in range(0, count):"},{"line_number":736,"context_line":"            systemnetcfg \u003d ret[\u0027data\u0027][\u0027tSystemNetCfg\u0027][index]"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_783d758d","line":733,"updated":"2016-05-04 22:20:35.000000000","message":"VolumeBackendAPIException?","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"7e3508c4ae7c1752c6524504c7f96b009a23a43c","unresolved":false,"context_lines":[{"line_number":730,"context_line":"            err_msg \u003d (_(\u0027_get_target_ip_ctrl:get iscsi port list fail. \u0027"},{"line_number":731,"context_line":"                         \u0027with Return code: %(ret)s.\u0027),"},{"line_number":732,"context_line":"                       {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":733,"context_line":"            raise exception.CinderException(err_msg)"},{"line_number":734,"context_line":"        count \u003d ret[\u0027data\u0027][\u0027sdwDeviceNum\u0027]"},{"line_number":735,"context_line":"        for index in range(0, count):"},{"line_number":736,"context_line":"            systemnetcfg \u003d ret[\u0027data\u0027][\u0027tSystemNetCfg\u0027][index]"}],"source_content_type":"text/x-python","patch_set":3,"id":"dab17558_8263bf19","line":733,"in_reply_to":"1a122d0e_783d758d","updated":"2016-05-14 00:15:30.000000000","message":"Done","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"df52cab40664f119fd7fbc68fcf69f82bb0cbdb8","unresolved":false,"context_lines":[{"line_number":781,"context_line":"                    _(\u0027create host fail.host name:%(name)s \u0027"},{"line_number":782,"context_line":"                      \u0027with Return code: %(ret)s.\u0027),"},{"line_number":783,"context_line":"                    {\u0027name\u0027: host_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":784,"context_line":"                raise exception.CinderException(err_msg)"},{"line_number":785,"context_line":""},{"line_number":786,"context_line":"            # If port deleted by user, add it."},{"line_number":787,"context_line":"            port_info \u003d {"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_d84e4937","line":784,"updated":"2016-05-04 22:20:35.000000000","message":"VolumeBackendAPIException?","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"7e3508c4ae7c1752c6524504c7f96b009a23a43c","unresolved":false,"context_lines":[{"line_number":781,"context_line":"                    _(\u0027create host fail.host name:%(name)s \u0027"},{"line_number":782,"context_line":"                      \u0027with Return code: %(ret)s.\u0027),"},{"line_number":783,"context_line":"                    {\u0027name\u0027: host_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":784,"context_line":"                raise exception.CinderException(err_msg)"},{"line_number":785,"context_line":""},{"line_number":786,"context_line":"            # If port deleted by user, add it."},{"line_number":787,"context_line":"            port_info \u003d {"}],"source_content_type":"text/x-python","patch_set":3,"id":"dab17558_42ab971d","line":784,"in_reply_to":"1a122d0e_d84e4937","updated":"2016-05-14 00:15:30.000000000","message":"Done","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"df52cab40664f119fd7fbc68fcf69f82bb0cbdb8","unresolved":false,"context_lines":[{"line_number":798,"context_line":"                             \u0027%(name)s  with Return code: %(ret)s.\u0027),"},{"line_number":799,"context_line":"                           {\u0027name\u0027: initiator_name,"},{"line_number":800,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":801,"context_line":"                raise exception.CinderException(err_msg)"},{"line_number":802,"context_line":""},{"line_number":803,"context_line":"            host_in_grp \u003d {"},{"line_number":804,"context_line":"                \u0027ucInitName\u0027: host_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_785455c5","line":801,"updated":"2016-05-04 22:20:35.000000000","message":"VolumeBackendAPIException","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"7e3508c4ae7c1752c6524504c7f96b009a23a43c","unresolved":false,"context_lines":[{"line_number":798,"context_line":"                             \u0027%(name)s  with Return code: %(ret)s.\u0027),"},{"line_number":799,"context_line":"                           {\u0027name\u0027: initiator_name,"},{"line_number":800,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":801,"context_line":"                raise exception.CinderException(err_msg)"},{"line_number":802,"context_line":""},{"line_number":803,"context_line":"            host_in_grp \u003d {"},{"line_number":804,"context_line":"                \u0027ucInitName\u0027: host_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"dab17558_02b18f8f","line":801,"in_reply_to":"1a122d0e_785455c5","updated":"2016-05-14 00:15:30.000000000","message":"Done","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"df52cab40664f119fd7fbc68fcf69f82bb0cbdb8","unresolved":false,"context_lines":[{"line_number":814,"context_line":"                           {\u0027name\u0027: map_group_name,"},{"line_number":815,"context_line":"                            \u0027init\u0027: host_name,"},{"line_number":816,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":817,"context_line":"                raise exception.CinderException(err_msg)"},{"line_number":818,"context_line":"        else:"},{"line_number":819,"context_line":"            err_msg \u003d (_(\u0027create group fail.group name:%(name)s \u0027"},{"line_number":820,"context_line":"                         \u0027with Return code: %(ret)s.\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_98a05192","line":817,"updated":"2016-05-04 22:20:35.000000000","message":"VolumeBackendAPIException?","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"7e3508c4ae7c1752c6524504c7f96b009a23a43c","unresolved":false,"context_lines":[{"line_number":814,"context_line":"                           {\u0027name\u0027: map_group_name,"},{"line_number":815,"context_line":"                            \u0027init\u0027: host_name,"},{"line_number":816,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":817,"context_line":"                raise exception.CinderException(err_msg)"},{"line_number":818,"context_line":"        else:"},{"line_number":819,"context_line":"            err_msg \u003d (_(\u0027create group fail.group name:%(name)s \u0027"},{"line_number":820,"context_line":"                         \u0027with Return code: %(ret)s.\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"dab17558_e2abab1c","line":817,"in_reply_to":"1a122d0e_98a05192","updated":"2016-05-14 00:15:30.000000000","message":"Done","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"df52cab40664f119fd7fbc68fcf69f82bb0cbdb8","unresolved":false,"context_lines":[{"line_number":820,"context_line":"                         \u0027with Return code: %(ret)s.\u0027),"},{"line_number":821,"context_line":"                       {\u0027name\u0027: map_group_name,"},{"line_number":822,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":823,"context_line":"            raise exception.CinderException(err_msg)"},{"line_number":824,"context_line":""},{"line_number":825,"context_line":"    def _map_delete_lun(self, lunid, initiator_name):"},{"line_number":826,"context_line":"        map_group_name \u003d self._translate_grp_name(initiator_name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_589a3963","line":823,"updated":"2016-05-04 22:20:35.000000000","message":"VolumeBackendAPIException?","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"7e3508c4ae7c1752c6524504c7f96b009a23a43c","unresolved":false,"context_lines":[{"line_number":820,"context_line":"                         \u0027with Return code: %(ret)s.\u0027),"},{"line_number":821,"context_line":"                       {\u0027name\u0027: map_group_name,"},{"line_number":822,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":823,"context_line":"            raise exception.CinderException(err_msg)"},{"line_number":824,"context_line":""},{"line_number":825,"context_line":"    def _map_delete_lun(self, lunid, initiator_name):"},{"line_number":826,"context_line":"        map_group_name \u003d self._translate_grp_name(initiator_name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_51820f53","line":823,"in_reply_to":"1a122d0e_589a3963","updated":"2016-05-14 00:15:30.000000000","message":"Done","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"df52cab40664f119fd7fbc68fcf69f82bb0cbdb8","unresolved":false,"context_lines":[{"line_number":837,"context_line":"                             \u0027with Return code: %(ret)s.\u0027),"},{"line_number":838,"context_line":"                           {\u0027name\u0027: map_group_name, \u0027lun\u0027: lunid,"},{"line_number":839,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":840,"context_line":"                raise exception.CinderException(err_msg)"},{"line_number":841,"context_line":""},{"line_number":842,"context_line":"        # if no lun in group,then we will delete this group"},{"line_number":843,"context_line":"        lun_num \u003d self._get_group_lunnum(map_group_name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_98797132","line":840,"updated":"2016-05-04 22:20:35.000000000","message":"VolumeBackendAPIException?","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"7e3508c4ae7c1752c6524504c7f96b009a23a43c","unresolved":false,"context_lines":[{"line_number":837,"context_line":"                             \u0027with Return code: %(ret)s.\u0027),"},{"line_number":838,"context_line":"                           {\u0027name\u0027: map_group_name, \u0027lun\u0027: lunid,"},{"line_number":839,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":840,"context_line":"                raise exception.CinderException(err_msg)"},{"line_number":841,"context_line":""},{"line_number":842,"context_line":"        # if no lun in group,then we will delete this group"},{"line_number":843,"context_line":"        lun_num \u003d self._get_group_lunnum(map_group_name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"dab17558_a2b9a37b","line":840,"in_reply_to":"1a122d0e_98797132","updated":"2016-05-14 00:15:30.000000000","message":"Done","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"df52cab40664f119fd7fbc68fcf69f82bb0cbdb8","unresolved":false,"context_lines":[{"line_number":852,"context_line":"            err_msg \u003d (_(\u0027_map_delete_host:get map group info fail. \u0027"},{"line_number":853,"context_line":"                         \u0027group name:%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":854,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":855,"context_line":"            raise exception.CinderException(err_msg)"},{"line_number":856,"context_line":""},{"line_number":857,"context_line":"        sdwhostnum \u003d ret[\u0027data\u0027][\u0027sdwHostNum\u0027]"},{"line_number":858,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_f8722549","line":855,"updated":"2016-05-04 22:20:35.000000000","message":"VolumeBackendAPIException?","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"7e3508c4ae7c1752c6524504c7f96b009a23a43c","unresolved":false,"context_lines":[{"line_number":852,"context_line":"            err_msg \u003d (_(\u0027_map_delete_host:get map group info fail. \u0027"},{"line_number":853,"context_line":"                         \u0027group name:%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":854,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":855,"context_line":"            raise exception.CinderException(err_msg)"},{"line_number":856,"context_line":""},{"line_number":857,"context_line":"        sdwhostnum \u003d ret[\u0027data\u0027][\u0027sdwHostNum\u0027]"},{"line_number":858,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_f1b23b48","line":855,"in_reply_to":"1a122d0e_f8722549","updated":"2016-05-14 00:15:30.000000000","message":"Done","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"df52cab40664f119fd7fbc68fcf69f82bb0cbdb8","unresolved":false,"context_lines":[{"line_number":879,"context_line":"                                 \u0027%(ret)s.\u0027),"},{"line_number":880,"context_line":"                               {\u0027name\u0027: initiator_name,"},{"line_number":881,"context_line":"                                \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":882,"context_line":"                    raise exception.CinderException(err_msg)"},{"line_number":883,"context_line":""},{"line_number":884,"context_line":"                return_data \u003d ret[\u0027data\u0027]"},{"line_number":885,"context_line":"                portnum \u003d return_data[\u0027sdwPortNum\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_188d6131","line":882,"updated":"2016-05-04 22:20:35.000000000","message":"VolumeBackendAPIException?","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"7e3508c4ae7c1752c6524504c7f96b009a23a43c","unresolved":false,"context_lines":[{"line_number":879,"context_line":"                                 \u0027%(ret)s.\u0027),"},{"line_number":880,"context_line":"                               {\u0027name\u0027: initiator_name,"},{"line_number":881,"context_line":"                                \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":882,"context_line":"                    raise exception.CinderException(err_msg)"},{"line_number":883,"context_line":""},{"line_number":884,"context_line":"                return_data \u003d ret[\u0027data\u0027]"},{"line_number":885,"context_line":"                portnum \u003d return_data[\u0027sdwPortNum\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_11b6d73d","line":882,"in_reply_to":"1a122d0e_188d6131","updated":"2016-05-14 00:15:30.000000000","message":"Done","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"df52cab40664f119fd7fbc68fcf69f82bb0cbdb8","unresolved":false,"context_lines":[{"line_number":898,"context_line":"                                   {\u0027name\u0027: initiator_name,"},{"line_number":899,"context_line":"                                    \u0027port\u0027: port_name,"},{"line_number":900,"context_line":"                                    \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":901,"context_line":"                        raise exception.CinderException(err_msg)"},{"line_number":902,"context_line":""},{"line_number":903,"context_line":"                ret \u003d self._call_method("},{"line_number":904,"context_line":"                    \u0027DelHost\u0027, {\"cHostAlias\": initiator_name})"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_f89b4571","line":901,"updated":"2016-05-04 22:20:35.000000000","message":"VolumeBackendAPIException?","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"7e3508c4ae7c1752c6524504c7f96b009a23a43c","unresolved":false,"context_lines":[{"line_number":898,"context_line":"                                   {\u0027name\u0027: initiator_name,"},{"line_number":899,"context_line":"                                    \u0027port\u0027: port_name,"},{"line_number":900,"context_line":"                                    \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":901,"context_line":"                        raise exception.CinderException(err_msg)"},{"line_number":902,"context_line":""},{"line_number":903,"context_line":"                ret \u003d self._call_method("},{"line_number":904,"context_line":"                    \u0027DelHost\u0027, {\"cHostAlias\": initiator_name})"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_71a62b10","line":901,"in_reply_to":"1a122d0e_f89b4571","updated":"2016-05-14 00:15:30.000000000","message":"Done","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"df52cab40664f119fd7fbc68fcf69f82bb0cbdb8","unresolved":false,"context_lines":[{"line_number":910,"context_line":"                                 \u0027%(ret)s\u0027) %"},{"line_number":911,"context_line":"                               {\u0027name\u0027: initiator_name,"},{"line_number":912,"context_line":"                                \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":913,"context_line":"                    raise exception.CinderException(err_msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_d8980978","line":913,"updated":"2016-05-04 22:20:35.000000000","message":"VolumeBackendAPIException?","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"7e3508c4ae7c1752c6524504c7f96b009a23a43c","unresolved":false,"context_lines":[{"line_number":910,"context_line":"                                 \u0027%(ret)s\u0027) %"},{"line_number":911,"context_line":"                               {\u0027name\u0027: initiator_name,"},{"line_number":912,"context_line":"                                \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":913,"context_line":"                    raise exception.CinderException(err_msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_d1af3fe1","line":913,"in_reply_to":"1a122d0e_d8980978","updated":"2016-05-14 00:15:30.000000000","message":"Done","commit_id":"b1870b072d3fd391901bc9e98990968177710ff6"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7cc821e834da763d5d0d930aa880f2dc8eef45e2","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            LOG.debug(\u0027Response Data: method %(method)s %(res)s.\u0027,"},{"line_number":95,"context_line":"                      {\u0027method\u0027: method, \u0027res\u0027: response})"},{"line_number":96,"context_line":"        except Exception as err:"},{"line_number":97,"context_line":"            LOG.exception(_LE(\u0027Bad response from server: %s.\u0027), err)"},{"line_number":98,"context_line":"            raise"},{"line_number":99,"context_line":"        res_json \u003d json.loads(response)"},{"line_number":100,"context_line":"        return res_json"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_f2bbfdc1","line":97,"range":{"start_line":97,"start_character":64,"end_line":97,"end_character":67},"updated":"2016-05-11 19:12:52.000000000","message":"An exception object should not be passed to LOG.exception.","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"dfb953b554b15822e7a4d921ff7f4149e643c30f","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            LOG.debug(\u0027Response Data: method %(method)s %(res)s.\u0027,"},{"line_number":95,"context_line":"                      {\u0027method\u0027: method, \u0027res\u0027: response})"},{"line_number":96,"context_line":"        except Exception as err:"},{"line_number":97,"context_line":"            LOG.exception(_LE(\u0027Bad response from server: %s.\u0027), err)"},{"line_number":98,"context_line":"            raise"},{"line_number":99,"context_line":"        res_json \u003d json.loads(response)"},{"line_number":100,"context_line":"        return res_json"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_a230f556","line":97,"range":{"start_line":97,"start_character":64,"end_line":97,"end_character":67},"in_reply_to":"dab17558_f2bbfdc1","updated":"2016-05-14 00:17:01.000000000","message":"I think the err need not record in LOG, so I removed \u0027err\u0027.","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":12184,"name":"Weiwei Gu","email":"gu.weiwei@zte.com.cn","username":"guweiwei"},"change_message_id":"62208c93c45eac215925ee1431a9e01fa9460ec8","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        return res_json"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def _get_server(self):"},{"line_number":103,"context_line":"        controller_ip \u003d (self.login_info[\u0027ControllerIP0\u0027]"},{"line_number":104,"context_line":"                         or self.login_info[\u0027ControllerIP1\u0027] or \u0027\u0027)"},{"line_number":105,"context_line":"        self.url \u003d \u0027https://\u0027 + controller_ip + \u0027/phpclient/client.php\u0027"},{"line_number":106,"context_line":"        LOG.debug(\u0027Set zte server is %s.\u0027, self.url)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def _change_server(self):"},{"line_number":109,"context_line":"        if (self.login_info[\u0027ControllerIP0\u0027]) and ("}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_083e77c0","line":106,"range":{"start_line":103,"start_character":0,"end_line":106,"end_character":52},"updated":"2016-05-11 07:25:49.000000000","message":"It is better to raise when self.login_info[\u0027ControllerIP0\u0027] and self.login_info[\u0027ControllerIP1\u0027] are not configured.","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"dfb953b554b15822e7a4d921ff7f4149e643c30f","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        return res_json"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def _get_server(self):"},{"line_number":103,"context_line":"        controller_ip \u003d (self.login_info[\u0027ControllerIP0\u0027]"},{"line_number":104,"context_line":"                         or self.login_info[\u0027ControllerIP1\u0027] or \u0027\u0027)"},{"line_number":105,"context_line":"        self.url \u003d \u0027https://\u0027 + controller_ip + \u0027/phpclient/client.php\u0027"},{"line_number":106,"context_line":"        LOG.debug(\u0027Set zte server is %s.\u0027, self.url)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def _change_server(self):"},{"line_number":109,"context_line":"        if (self.login_info[\u0027ControllerIP0\u0027]) and ("}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_82da1115","line":106,"range":{"start_line":103,"start_character":0,"end_line":106,"end_character":52},"in_reply_to":"dab17558_083e77c0","updated":"2016-05-14 00:17:01.000000000","message":"I will fix it next version :)","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7cc821e834da763d5d0d930aa880f2dc8eef45e2","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            return self.session_id"},{"line_number":128,"context_line":"        else:"},{"line_number":129,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":130,"context_line":"                \u0027Failed to login. Return code: %(ret)s.\u0027 % {"},{"line_number":131,"context_line":"                    \u0027ret\u0027: result[\u0027returncode\u0027]})"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def do_setup(self, context):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_32e905b8","line":130,"updated":"2016-05-11 19:12:52.000000000","message":"Needs _LE() translation marker.","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"dfb953b554b15822e7a4d921ff7f4149e643c30f","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            return self.session_id"},{"line_number":128,"context_line":"        else:"},{"line_number":129,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":130,"context_line":"                \u0027Failed to login. Return code: %(ret)s.\u0027 % {"},{"line_number":131,"context_line":"                    \u0027ret\u0027: result[\u0027returncode\u0027]})"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def do_setup(self, context):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_e2b5ddec","line":130,"in_reply_to":"dab17558_32e905b8","updated":"2016-05-14 00:17:01.000000000","message":"DONE","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7cc821e834da763d5d0d930aa880f2dc8eef45e2","unresolved":false,"context_lines":[{"line_number":158,"context_line":"                LOG.info(_LI(\u0027heartbeat failed.San. Return code:\u0027"},{"line_number":159,"context_line":"                             \u0027 %(ret)s.\u0027),"},{"line_number":160,"context_line":"                         {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":161,"context_line":"        except Exception:"},{"line_number":162,"context_line":"            LOG.exception(_LE(\u0027_get_sessionid error.\u0027))"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        self._change_server()"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_72f6ed8f","line":161,"range":{"start_line":161,"start_character":15,"end_line":161,"end_character":24},"updated":"2016-05-11 19:12:52.000000000","message":"Is there a more specific exception that can be caught?","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"dfb953b554b15822e7a4d921ff7f4149e643c30f","unresolved":false,"context_lines":[{"line_number":158,"context_line":"                LOG.info(_LI(\u0027heartbeat failed.San. Return code:\u0027"},{"line_number":159,"context_line":"                             \u0027 %(ret)s.\u0027),"},{"line_number":160,"context_line":"                         {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":161,"context_line":"        except Exception:"},{"line_number":162,"context_line":"            LOG.exception(_LE(\u0027_get_sessionid error.\u0027))"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        self._change_server()"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_0fd00ac8","line":161,"range":{"start_line":161,"start_character":15,"end_line":161,"end_character":24},"in_reply_to":"dab17558_72f6ed8f","updated":"2016-05-14 00:17:01.000000000","message":"I want to capture all exception, so I use it.","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7cc821e834da763d5d0d930aa880f2dc8eef45e2","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            volume[\u0027size\u0027] *"},{"line_number":237,"context_line":"            zte_pub.ZTE_SIZE *"},{"line_number":238,"context_line":"            zte_pub.ZTE_SIZE)"},{"line_number":239,"context_line":"        self._create_volume(volume_name, volume_size)"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"    def _delete_clone_volume(self, cloned_name):"},{"line_number":242,"context_line":"        cloned_name +\u003d zte_pub.ZTE_CLONE_SUFFIX"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_d21fd9b4","line":239,"updated":"2016-05-11 19:12:52.000000000","message":"It would be better to use the volume ID rather than name. Name is not guaranteed to be unique.","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"dfb953b554b15822e7a4d921ff7f4149e643c30f","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            volume[\u0027size\u0027] *"},{"line_number":237,"context_line":"            zte_pub.ZTE_SIZE *"},{"line_number":238,"context_line":"            zte_pub.ZTE_SIZE)"},{"line_number":239,"context_line":"        self._create_volume(volume_name, volume_size)"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"    def _delete_clone_volume(self, cloned_name):"},{"line_number":242,"context_line":"        cloned_name +\u003d zte_pub.ZTE_CLONE_SUFFIX"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_ef3ca6e2","line":239,"in_reply_to":"dab17558_d21fd9b4","updated":"2016-05-14 00:17:01.000000000","message":"It looks ok, now.\nWe would fix it on next version.","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7cc821e834da763d5d0d930aa880f2dc8eef45e2","unresolved":false,"context_lines":[{"line_number":247,"context_line":"                                     zte_pub.ZTE_ERR_VAS_OBJECT_NOT_EXIST,"},{"line_number":248,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":249,"context_line":"            err_msg \u003d (_(\u0027Delete volume failed. Clone name:%(name)s.\u0027"},{"line_number":250,"context_line":"                         \u0027Return code: %(ret)s.\u0027),"},{"line_number":251,"context_line":"                       {\u0027name\u0027: cloned_name,"},{"line_number":252,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":253,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_b271750e","line":250,"range":{"start_line":250,"start_character":49,"end_line":250,"end_character":50},"updated":"2016-05-11 19:12:52.000000000","message":"This needs to be % instead of , to do the string formatting. Otherwise you are passing in a tuple to the exception initialization.","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"dfb953b554b15822e7a4d921ff7f4149e643c30f","unresolved":false,"context_lines":[{"line_number":247,"context_line":"                                     zte_pub.ZTE_ERR_VAS_OBJECT_NOT_EXIST,"},{"line_number":248,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":249,"context_line":"            err_msg \u003d (_(\u0027Delete volume failed. Clone name:%(name)s.\u0027"},{"line_number":250,"context_line":"                         \u0027Return code: %(ret)s.\u0027),"},{"line_number":251,"context_line":"                       {\u0027name\u0027: cloned_name,"},{"line_number":252,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":253,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_8254d1c9","line":250,"range":{"start_line":250,"start_character":49,"end_line":250,"end_character":50},"in_reply_to":"dab17558_b271750e","updated":"2016-05-14 00:17:01.000000000","message":"Done","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7cc821e834da763d5d0d930aa880f2dc8eef45e2","unresolved":false,"context_lines":[{"line_number":259,"context_line":"                                     zte_pub.ZTE_ERR_LUNDEV_NOT_EXIST,"},{"line_number":260,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":261,"context_line":"            err_msg \u003d (_(\u0027Delete volume fail. Volume name:%(name)s.\u0027"},{"line_number":262,"context_line":"                         \u0027Return code: %(ret)s.\u0027),"},{"line_number":263,"context_line":"                       {\u0027name\u0027: volume_name,"},{"line_number":264,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":265,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_12ca011b","line":262,"range":{"start_line":262,"start_character":49,"end_line":262,"end_character":50},"updated":"2016-05-11 19:12:52.000000000","message":", \u003d\u003e %","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"dfb953b554b15822e7a4d921ff7f4149e643c30f","unresolved":false,"context_lines":[{"line_number":259,"context_line":"                                     zte_pub.ZTE_ERR_LUNDEV_NOT_EXIST,"},{"line_number":260,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":261,"context_line":"            err_msg \u003d (_(\u0027Delete volume fail. Volume name:%(name)s.\u0027"},{"line_number":262,"context_line":"                         \u0027Return code: %(ret)s.\u0027),"},{"line_number":263,"context_line":"                       {\u0027name\u0027: volume_name,"},{"line_number":264,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":265,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_624f2d34","line":262,"range":{"start_line":262,"start_character":49,"end_line":262,"end_character":50},"in_reply_to":"dab17558_12ca011b","updated":"2016-05-14 00:17:01.000000000","message":"Done","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7cc821e834da763d5d0d930aa880f2dc8eef45e2","unresolved":false,"context_lines":[{"line_number":280,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":281,"context_line":"            err_msg \u003d (_(\u0027_delete_clone_volume:Failed to clone vol.\u0027"},{"line_number":282,"context_line":"                         \u0027cloned  name:%(name)s with Return code: \u0027"},{"line_number":283,"context_line":"                         \u0027%(ret)s.\u0027),"},{"line_number":284,"context_line":"                       {\u0027name\u0027: cloned_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":285,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_VOLUME_TASK_NOT_FINISHED:"},{"line_number":286,"context_line":"                if issnapshot:"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_b2dfb5d4","line":283,"range":{"start_line":283,"start_character":36,"end_line":283,"end_character":37},"updated":"2016-05-11 19:12:52.000000000","message":", \u003d\u003e %","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"dfb953b554b15822e7a4d921ff7f4149e643c30f","unresolved":false,"context_lines":[{"line_number":280,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":281,"context_line":"            err_msg \u003d (_(\u0027_delete_clone_volume:Failed to clone vol.\u0027"},{"line_number":282,"context_line":"                         \u0027cloned  name:%(name)s with Return code: \u0027"},{"line_number":283,"context_line":"                         \u0027%(ret)s.\u0027),"},{"line_number":284,"context_line":"                       {\u0027name\u0027: cloned_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":285,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_VOLUME_TASK_NOT_FINISHED:"},{"line_number":286,"context_line":"                if issnapshot:"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_02e621e7","line":283,"range":{"start_line":283,"start_character":36,"end_line":283,"end_character":37},"in_reply_to":"dab17558_b2dfb5d4","updated":"2016-05-14 00:17:01.000000000","message":"Done","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7cc821e834da763d5d0d930aa880f2dc8eef45e2","unresolved":false,"context_lines":[{"line_number":329,"context_line":"        ret \u003d self._call_method(\u0027CreateSvol\u0027, svol_paras)"},{"line_number":330,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":331,"context_line":"            err_msg \u003d (_(\u0027Failed to create snap.snap name:%(snapname)s,\u0027"},{"line_number":332,"context_line":"                         \u0027srvol name :%(srv)s with Return code: %(ret)s.\u0027),"},{"line_number":333,"context_line":"                       {\u0027snapname\u0027: snapshot_name,"},{"line_number":334,"context_line":"                        \u0027srv\u0027: src_vol,"},{"line_number":335,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_72870db5","line":332,"range":{"start_line":332,"start_character":74,"end_line":332,"end_character":75},"updated":"2016-05-11 19:12:52.000000000","message":", \u003d\u003e %","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"dfb953b554b15822e7a4d921ff7f4149e643c30f","unresolved":false,"context_lines":[{"line_number":329,"context_line":"        ret \u003d self._call_method(\u0027CreateSvol\u0027, svol_paras)"},{"line_number":330,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":331,"context_line":"            err_msg \u003d (_(\u0027Failed to create snap.snap name:%(snapname)s,\u0027"},{"line_number":332,"context_line":"                         \u0027srvol name :%(srv)s with Return code: %(ret)s.\u0027),"},{"line_number":333,"context_line":"                       {\u0027snapname\u0027: snapshot_name,"},{"line_number":334,"context_line":"                        \u0027srv\u0027: src_vol,"},{"line_number":335,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_62660dbc","line":332,"range":{"start_line":332,"start_character":74,"end_line":332,"end_character":75},"in_reply_to":"dab17558_72870db5","updated":"2016-05-14 00:17:01.000000000","message":"Done","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7cc821e834da763d5d0d930aa880f2dc8eef45e2","unresolved":false,"context_lines":[{"line_number":351,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":352,"context_line":"            err_msg \u003d (_(\u0027_delete_snapshot:Failed to delete snap.\u0027"},{"line_number":353,"context_line":"                         \u0027snap name:%(snapname)s with Return code: \u0027"},{"line_number":354,"context_line":"                         \u0027%(ret)s.\u0027),"},{"line_number":355,"context_line":"                       {\u0027snapname\u0027: snapshot_name,"},{"line_number":356,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":357,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_ERR_SNAP_EXIST_CLONE:"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_12668129","line":354,"range":{"start_line":354,"start_character":36,"end_line":354,"end_character":37},"updated":"2016-05-11 19:12:52.000000000","message":", \u003d\u003e %","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"dfb953b554b15822e7a4d921ff7f4149e643c30f","unresolved":false,"context_lines":[{"line_number":351,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":352,"context_line":"            err_msg \u003d (_(\u0027_delete_snapshot:Failed to delete snap.\u0027"},{"line_number":353,"context_line":"                         \u0027snap name:%(snapname)s with Return code: \u0027"},{"line_number":354,"context_line":"                         \u0027%(ret)s.\u0027),"},{"line_number":355,"context_line":"                       {\u0027snapname\u0027: snapshot_name,"},{"line_number":356,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":357,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_ERR_SNAP_EXIST_CLONE:"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_e2b15de1","line":354,"range":{"start_line":354,"start_character":36,"end_line":354,"end_character":37},"in_reply_to":"dab17558_12668129","updated":"2016-05-14 00:17:01.000000000","message":"Done","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7cc821e834da763d5d0d930aa880f2dc8eef45e2","unresolved":false,"context_lines":[{"line_number":373,"context_line":"        ret \u003d self._call_method(\u0027ExpandVolOnPool\u0027, ext_vol_paras)"},{"line_number":374,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":375,"context_line":"            err_msg \u003d (_(\u0027_extend_volume:Failed to extend vol.vol name:\u0027"},{"line_number":376,"context_line":"                         \u0027%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":377,"context_line":"                       {\u0027name\u0027: volume_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":378,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":379,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_d257d923","line":376,"range":{"start_line":376,"start_character":63,"end_line":376,"end_character":64},"updated":"2016-05-11 19:12:52.000000000","message":", \u003d\u003e %","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"dfb953b554b15822e7a4d921ff7f4149e643c30f","unresolved":false,"context_lines":[{"line_number":373,"context_line":"        ret \u003d self._call_method(\u0027ExpandVolOnPool\u0027, ext_vol_paras)"},{"line_number":374,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":375,"context_line":"            err_msg \u003d (_(\u0027_extend_volume:Failed to extend vol.vol name:\u0027"},{"line_number":376,"context_line":"                         \u0027%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":377,"context_line":"                       {\u0027name\u0027: volume_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":378,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":379,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_025741ca","line":376,"range":{"start_line":376,"start_character":63,"end_line":376,"end_character":64},"in_reply_to":"dab17558_d257d923","updated":"2016-05-14 00:17:01.000000000","message":"Done","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7cc821e834da763d5d0d930aa880f2dc8eef45e2","unresolved":false,"context_lines":[{"line_number":413,"context_line":"        if int(volume[\u0027size\u0027]) \u003c src_vref[\u0027size\u0027]:"},{"line_number":414,"context_line":"            err_msg \u003d (_(\u0027:cloned volume size invalid.\u0027"},{"line_number":415,"context_line":"                         \u0027clone siez:%(cloned_size)s src volume size:\u0027"},{"line_number":416,"context_line":"                         \u0027 %(volume_size)s.\u0027),"},{"line_number":417,"context_line":"                       {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":418,"context_line":"                        \u0027volume_size\u0027: int(src_vref[\u0027size\u0027])})"},{"line_number":419,"context_line":"            raise exception.VolumeDriverException(err_msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_8d16d049","line":416,"range":{"start_line":416,"start_character":45,"end_line":416,"end_character":46},"updated":"2016-05-11 19:12:52.000000000","message":", \u003d\u003e %","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"dfb953b554b15822e7a4d921ff7f4149e643c30f","unresolved":false,"context_lines":[{"line_number":413,"context_line":"        if int(volume[\u0027size\u0027]) \u003c src_vref[\u0027size\u0027]:"},{"line_number":414,"context_line":"            err_msg \u003d (_(\u0027:cloned volume size invalid.\u0027"},{"line_number":415,"context_line":"                         \u0027clone siez:%(cloned_size)s src volume size:\u0027"},{"line_number":416,"context_line":"                         \u0027 %(volume_size)s.\u0027),"},{"line_number":417,"context_line":"                       {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":418,"context_line":"                        \u0027volume_size\u0027: int(src_vref[\u0027size\u0027])})"},{"line_number":419,"context_line":"            raise exception.VolumeDriverException(err_msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_e2595dfe","line":416,"range":{"start_line":416,"start_character":45,"end_line":416,"end_character":46},"in_reply_to":"dab17558_8d16d049","updated":"2016-05-14 00:17:01.000000000","message":"Done","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7cc821e834da763d5d0d930aa880f2dc8eef45e2","unresolved":false,"context_lines":[{"line_number":437,"context_line":"            err_msg \u003d ("},{"line_number":438,"context_line":"                _(\u0027:cloned volume size invalid.\u0027"},{"line_number":439,"context_line":"                  \u0027clone siez:%(cloned_size)s src volume size: \u0027"},{"line_number":440,"context_line":"                  \u0027%(volume_size)s.\u0027),"},{"line_number":441,"context_line":"                {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":442,"context_line":"                 \u0027volume_size\u0027: int(snapshot[\u0027volume_size\u0027])})"},{"line_number":443,"context_line":"            raise exception.VolumeDriverException(err_msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_ed2b1c80","line":440,"range":{"start_line":440,"start_character":37,"end_line":440,"end_character":38},"updated":"2016-05-11 19:12:52.000000000","message":", \u003d\u003e %","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"dfb953b554b15822e7a4d921ff7f4149e643c30f","unresolved":false,"context_lines":[{"line_number":437,"context_line":"            err_msg \u003d ("},{"line_number":438,"context_line":"                _(\u0027:cloned volume size invalid.\u0027"},{"line_number":439,"context_line":"                  \u0027clone siez:%(cloned_size)s src volume size: \u0027"},{"line_number":440,"context_line":"                  \u0027%(volume_size)s.\u0027),"},{"line_number":441,"context_line":"                {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":442,"context_line":"                 \u0027volume_size\u0027: int(snapshot[\u0027volume_size\u0027])})"},{"line_number":443,"context_line":"            raise exception.VolumeDriverException(err_msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_4275c961","line":440,"range":{"start_line":440,"start_character":37,"end_line":440,"end_character":38},"in_reply_to":"dab17558_ed2b1c80","updated":"2016-05-14 00:17:01.000000000","message":"Done","commit_id":"dffb9534f6eb582f5c09a91096ea3e4771fb22dd"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"4efac928a414f6ac0e434ff68153e79503230d99","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    def _get_pool_list(self):"},{"line_number":168,"context_line":"        pool_info_list \u003d []"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        for pool_name in self.configuration.StoragePool:"},{"line_number":171,"context_line":"            if pool_name:"},{"line_number":172,"context_line":"                ret \u003d self._call_method("},{"line_number":173,"context_line":"                    \u0027GetPoolInfo\u0027, {"}],"source_content_type":"text/x-python","patch_set":8,"id":"dab17558_6207bb81","line":170,"updated":"2016-05-13 23:58:36.000000000","message":"It should be zteStoragePool?","commit_id":"62fbb619585d3cf0e7596a3ebc393e10c7d8278c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1e8217635366faa31e9c8fdc5423a47c4f3a0664","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012-2016 ZTE Corporation. All rights reserved"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_42fb09c1","line":1,"updated":"2016-05-17 22:08:02.000000000","message":"2016","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"7c23f3010688e6607ad30963385c589e833b87cc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012-2016 ZTE Corporation. All rights reserved"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_9e97ba8f","line":1,"in_reply_to":"dab17558_42fb09c1","updated":"2016-05-19 08:39:34.000000000","message":"Done","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1e8217635366faa31e9c8fdc5423a47c4f3a0664","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"zte_opts \u003d ["},{"line_number":38,"context_line":"    cfg.IPOpt(\u0027zteControllerIP0\u0027, default\u003d\u00270.0.0.0\u0027,"},{"line_number":39,"context_line":"              help\u003d\u0027Main controller IP.\u0027),"},{"line_number":40,"context_line":"    cfg.IPOpt(\u0027zteControllerIP1\u0027, default\u003d\u00270.0.0.0\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_427e6919","line":37,"updated":"2016-05-17 22:08:02.000000000","message":"Can you use some the existing options here, san_ip, san_password, san_login?\n\nhttps://github.com/openstack/cinder/blob/master/cinder/volume/drivers/san/san.py#L42","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"2883cc8459f67e2a2ac71be46038d64202035d82","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"zte_opts \u003d ["},{"line_number":38,"context_line":"    cfg.IPOpt(\u0027zteControllerIP0\u0027, default\u003d\u00270.0.0.0\u0027,"},{"line_number":39,"context_line":"              help\u003d\u0027Main controller IP.\u0027),"},{"line_number":40,"context_line":"    cfg.IPOpt(\u0027zteControllerIP1\u0027, default\u003d\u00270.0.0.0\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_d579e6c9","line":37,"in_reply_to":"dab17558_427e6919","updated":"2016-05-20 02:57:17.000000000","message":"These options are only for ZTE servers.","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"547f9929bdd50021016c1b57a01efdf7cb36630c","unresolved":false,"context_lines":[{"line_number":41,"context_line":"              help\u003d\u0027slave controller IP.\u0027),"},{"line_number":42,"context_line":"    cfg.IPOpt(\u0027zteLocalIP\u0027, default\u003d\u00270.0.0.0\u0027, help\u003d\u0027Local IP.\u0027),"},{"line_number":43,"context_line":"    cfg.StrOpt(\u0027zteUserName\u0027, default\u003d\u0027\u0027, help\u003d\u0027User name.\u0027),"},{"line_number":44,"context_line":"    cfg.StrOpt(\u0027zteUserPassword\u0027, default\u003d\u0027\u0027, help\u003d\u0027User password.\u0027),"},{"line_number":45,"context_line":"    cfg.IntOpt(\u0027zteChunkSize\u0027, default\u003d4, help\u003d\u0027Virtual block size of pool .\u0027),"},{"line_number":46,"context_line":"    cfg.IntOpt(\u0027zteAheadReadSize\u0027, default\u003d8, help\u003d\u0027Cache readahead size.\u0027),"},{"line_number":47,"context_line":"    cfg.IntOpt(\u0027zteCachePolicy\u0027, default\u003d1, help\u003d\u0027Cache policy.\u0027),"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_63ce1d5b","line":44,"updated":"2016-05-17 18:13:57.000000000","message":"Set secret\u003dTrue for the password option.","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"2883cc8459f67e2a2ac71be46038d64202035d82","unresolved":false,"context_lines":[{"line_number":41,"context_line":"              help\u003d\u0027slave controller IP.\u0027),"},{"line_number":42,"context_line":"    cfg.IPOpt(\u0027zteLocalIP\u0027, default\u003d\u00270.0.0.0\u0027, help\u003d\u0027Local IP.\u0027),"},{"line_number":43,"context_line":"    cfg.StrOpt(\u0027zteUserName\u0027, default\u003d\u0027\u0027, help\u003d\u0027User name.\u0027),"},{"line_number":44,"context_line":"    cfg.StrOpt(\u0027zteUserPassword\u0027, default\u003d\u0027\u0027, help\u003d\u0027User password.\u0027),"},{"line_number":45,"context_line":"    cfg.IntOpt(\u0027zteChunkSize\u0027, default\u003d4, help\u003d\u0027Virtual block size of pool .\u0027),"},{"line_number":46,"context_line":"    cfg.IntOpt(\u0027zteAheadReadSize\u0027, default\u003d8, help\u003d\u0027Cache readahead size.\u0027),"},{"line_number":47,"context_line":"    cfg.IntOpt(\u0027zteCachePolicy\u0027, default\u003d1, help\u003d\u0027Cache policy.\u0027),"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_55c97625","line":44,"in_reply_to":"dab17558_63ce1d5b","updated":"2016-05-20 02:57:17.000000000","message":"How to do \"set secret\u003dTrue\"? Is there any examples or docs?","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"547f9929bdd50021016c1b57a01efdf7cb36630c","unresolved":false,"context_lines":[{"line_number":145,"context_line":"            self._change_server()"},{"line_number":146,"context_line":"            self.session_id \u003d self._user_login()"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def check_for_setup_error(self):"},{"line_number":149,"context_line":"        pass"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def _get_sessionid(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_23b1b5e0","line":148,"updated":"2016-05-17 18:13:57.000000000","message":"Check that zteControllerIP0 is set to something other than 0.0.0.0","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"54cc952d2b4626d4e4813a276cfc406991eb19f8","unresolved":false,"context_lines":[{"line_number":145,"context_line":"            self._change_server()"},{"line_number":146,"context_line":"            self.session_id \u003d self._user_login()"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def check_for_setup_error(self):"},{"line_number":149,"context_line":"        pass"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def _get_sessionid(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_a9449cb6","line":148,"in_reply_to":"dab17558_23b1b5e0","updated":"2016-05-21 02:50:38.000000000","message":"Done","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"547f9929bdd50021016c1b57a01efdf7cb36630c","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                             \u0027 %(ret)s.\u0027),"},{"line_number":160,"context_line":"                         {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":161,"context_line":"        except Exception:"},{"line_number":162,"context_line":"            LOG.exception(_LE(\u0027_get_sessionid error.\u0027))"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        self._change_server()"},{"line_number":165,"context_line":"        return self._user_login()"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_83fa2173","line":162,"updated":"2016-05-17 18:13:57.000000000","message":"This probably needs to re-raise?","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"7c23f3010688e6607ad30963385c589e833b87cc","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                             \u0027 %(ret)s.\u0027),"},{"line_number":160,"context_line":"                         {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":161,"context_line":"        except Exception:"},{"line_number":162,"context_line":"            LOG.exception(_LE(\u0027_get_sessionid error.\u0027))"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        self._change_server()"},{"line_number":165,"context_line":"        return self._user_login()"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_b9f8d84a","line":162,"in_reply_to":"dab17558_83fa2173","updated":"2016-05-19 08:39:34.000000000","message":"If we fail  to get an existing server session, we will try the other server.So needn\u0027t   re-raise.","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"547f9929bdd50021016c1b57a01efdf7cb36630c","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        if pool_name:"},{"line_number":227,"context_line":"            self._create_volume_from_pool(volume_name, volume_size, pool_name)"},{"line_number":228,"context_line":"        else:"},{"line_number":229,"context_line":"            raise exception.CinderException(_(\u0027No pool available.\u0027))"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    def create_volume(self, volume):"},{"line_number":232,"context_line":"        \"\"\"Create a new volume.\"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_e3168da5","line":229,"updated":"2016-05-17 18:13:57.000000000","message":"Should be a VolumeDriverException rather than CinderException.","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"7c23f3010688e6607ad30963385c589e833b87cc","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        if pool_name:"},{"line_number":227,"context_line":"            self._create_volume_from_pool(volume_name, volume_size, pool_name)"},{"line_number":228,"context_line":"        else:"},{"line_number":229,"context_line":"            raise exception.CinderException(_(\u0027No pool available.\u0027))"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    def create_volume(self, volume):"},{"line_number":232,"context_line":"        \"\"\"Create a new volume.\"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_c39b2d71","line":229,"in_reply_to":"dab17558_e3168da5","updated":"2016-05-19 08:39:34.000000000","message":"Done","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"547f9929bdd50021016c1b57a01efdf7cb36630c","unresolved":false,"context_lines":[{"line_number":536,"context_line":"                       {\u0027name\u0027: map_group_name,"},{"line_number":537,"context_line":"                        \u0027vol\u0027: volume_name,"},{"line_number":538,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":539,"context_line":"            raise exception.CinderException(err_msg)"},{"line_number":540,"context_line":""},{"line_number":541,"context_line":"    def _get_group_lunnum(self, map_group_name):"},{"line_number":542,"context_line":"        map_grp_info \u003d {\u0027cMapGrpName\u0027: map_group_name}"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_230d358f","line":539,"updated":"2016-05-17 18:13:57.000000000","message":"Should be a VolumeDriverException rather than CinderException.","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"7c23f3010688e6607ad30963385c589e833b87cc","unresolved":false,"context_lines":[{"line_number":536,"context_line":"                       {\u0027name\u0027: map_group_name,"},{"line_number":537,"context_line":"                        \u0027vol\u0027: volume_name,"},{"line_number":538,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":539,"context_line":"            raise exception.CinderException(err_msg)"},{"line_number":540,"context_line":""},{"line_number":541,"context_line":"    def _get_group_lunnum(self, map_group_name):"},{"line_number":542,"context_line":"        map_grp_info \u003d {\u0027cMapGrpName\u0027: map_group_name}"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_439d7d58","line":539,"in_reply_to":"dab17558_230d358f","updated":"2016-05-19 08:39:34.000000000","message":"Done","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"547f9929bdd50021016c1b57a01efdf7cb36630c","unresolved":false,"context_lines":[{"line_number":550,"context_line":"            err_msg \u003d (_(\u0027_map_lun:Get group info fail.\u0027"},{"line_number":551,"context_line":"                         \u0027Group name:%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":552,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":553,"context_line":"            raise exception.CinderException(err_msg)"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    def _delete_group(self, map_group_name):"},{"line_number":556,"context_line":"        # before delete the group, we must delete the hosts in group"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_6323bd05","line":553,"updated":"2016-05-17 18:13:57.000000000","message":"Should be a VolumeDriverException rather than CinderException.","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"7c23f3010688e6607ad30963385c589e833b87cc","unresolved":false,"context_lines":[{"line_number":550,"context_line":"            err_msg \u003d (_(\u0027_map_lun:Get group info fail.\u0027"},{"line_number":551,"context_line":"                         \u0027Group name:%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":552,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":553,"context_line":"            raise exception.CinderException(err_msg)"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    def _delete_group(self, map_group_name):"},{"line_number":556,"context_line":"        # before delete the group, we must delete the hosts in group"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_c3a96d7d","line":553,"in_reply_to":"dab17558_6323bd05","updated":"2016-05-19 08:39:34.000000000","message":"Done","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"547f9929bdd50021016c1b57a01efdf7cb36630c","unresolved":false,"context_lines":[{"line_number":563,"context_line":"            err_msg \u003d (_(\u0027_delete_group:Del group fail.\u0027"},{"line_number":564,"context_line":"                         \u0027Group name:%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":565,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":566,"context_line":"            raise exception.CinderException(err_msg)"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"    def _map_lun(self, initiator_name, volume_name, map_group_name):"},{"line_number":569,"context_line":"        self._create_group(initiator_name, map_group_name)"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_a31925d3","line":566,"updated":"2016-05-17 18:13:57.000000000","message":"Should be a VolumeDriverException rather than CinderException.","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"7c23f3010688e6607ad30963385c589e833b87cc","unresolved":false,"context_lines":[{"line_number":563,"context_line":"            err_msg \u003d (_(\u0027_delete_group:Del group fail.\u0027"},{"line_number":564,"context_line":"                         \u0027Group name:%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":565,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":566,"context_line":"            raise exception.CinderException(err_msg)"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"    def _map_lun(self, initiator_name, volume_name, map_group_name):"},{"line_number":569,"context_line":"        self._create_group(initiator_name, map_group_name)"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_a3cb8952","line":566,"in_reply_to":"dab17558_a31925d3","updated":"2016-05-19 08:39:34.000000000","message":"Done","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"547f9929bdd50021016c1b57a01efdf7cb36630c","unresolved":false,"context_lines":[{"line_number":590,"context_line":"             \u0027lun\u0027: 0,"},{"line_number":591,"context_line":"             \u0027vol\u0027: volume_name,"},{"line_number":592,"context_line":"             \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":593,"context_line":"        raise exception.CinderException(err_msg)"},{"line_number":594,"context_line":""},{"line_number":595,"context_line":"    def _update_volume_group_info(self):"},{"line_number":596,"context_line":"        pool_list \u003d self._get_pool_list()"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_e37dede7","line":593,"updated":"2016-05-17 18:13:57.000000000","message":"Should be a VolumeDriverException rather than CinderException.","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"7c23f3010688e6607ad30963385c589e833b87cc","unresolved":false,"context_lines":[{"line_number":590,"context_line":"             \u0027lun\u0027: 0,"},{"line_number":591,"context_line":"             \u0027vol\u0027: volume_name,"},{"line_number":592,"context_line":"             \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":593,"context_line":"        raise exception.CinderException(err_msg)"},{"line_number":594,"context_line":""},{"line_number":595,"context_line":"    def _update_volume_group_info(self):"},{"line_number":596,"context_line":"        pool_list \u003d self._get_pool_list()"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_63e881b5","line":593,"in_reply_to":"dab17558_e37dede7","updated":"2016-05-19 08:39:34.000000000","message":"Done","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"547f9929bdd50021016c1b57a01efdf7cb36630c","unresolved":false,"context_lines":[{"line_number":607,"context_line":"            err_msg \u003d (_(\u0027_map_lun:get sys info fail.with Return code: \u0027"},{"line_number":608,"context_line":"                         \u0027%(ret)s.\u0027),"},{"line_number":609,"context_line":"                       {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":610,"context_line":"            raise exception.CinderException(err_msg)"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":"        return ret[\u0027data\u0027]"},{"line_number":613,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_238415d1","line":610,"updated":"2016-05-17 18:13:57.000000000","message":"Should be a VolumeDriverException rather than CinderException.","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"7c23f3010688e6607ad30963385c589e833b87cc","unresolved":false,"context_lines":[{"line_number":607,"context_line":"            err_msg \u003d (_(\u0027_map_lun:get sys info fail.with Return code: \u0027"},{"line_number":608,"context_line":"                         \u0027%(ret)s.\u0027),"},{"line_number":609,"context_line":"                       {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":610,"context_line":"            raise exception.CinderException(err_msg)"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":"        return ret[\u0027data\u0027]"},{"line_number":613,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_e3dc7114","line":610,"in_reply_to":"dab17558_238415d1","updated":"2016-05-19 08:39:34.000000000","message":"Done","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1e8217635366faa31e9c8fdc5423a47c4f3a0664","unresolved":false,"context_lines":[{"line_number":625,"context_line":"            \u0027multiattach\u0027: True,"},{"line_number":626,"context_line":"            \u0027total_capacity_gb\u0027: pool_info[\u0027total\u0027],"},{"line_number":627,"context_line":"            \u0027free_capacity_gb\u0027: pool_info[\u0027free\u0027],"},{"line_number":628,"context_line":"            \u0027reserved_percentage\u0027: 0,"},{"line_number":629,"context_line":"            \u0027QoS_support\u0027: False}"},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"        self._stats \u003d data"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_82d97124","line":628,"updated":"2016-05-17 22:08:02.000000000","message":"This should be from cinder.conf: \nself.configuration.reserved_percentage","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"eda18978a22ddeef7f7be0744420a2fb9cff57ec","unresolved":false,"context_lines":[{"line_number":625,"context_line":"            \u0027multiattach\u0027: True,"},{"line_number":626,"context_line":"            \u0027total_capacity_gb\u0027: pool_info[\u0027total\u0027],"},{"line_number":627,"context_line":"            \u0027free_capacity_gb\u0027: pool_info[\u0027free\u0027],"},{"line_number":628,"context_line":"            \u0027reserved_percentage\u0027: 0,"},{"line_number":629,"context_line":"            \u0027QoS_support\u0027: False}"},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"        self._stats \u003d data"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_c7713d78","line":628,"in_reply_to":"dab17558_82d97124","updated":"2016-05-20 03:07:30.000000000","message":"This is a fixed option and this value can\u0027t be changed.","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"547f9929bdd50021016c1b57a01efdf7cb36630c","unresolved":false,"context_lines":[{"line_number":686,"context_line":"            msg \u003d (_(\u0027Failed to get target ip or iqn \u0027"},{"line_number":687,"context_line":"                     \u0027for initiator %(ini)s, please check config file.\u0027),"},{"line_number":688,"context_line":"                   {\u0027ini\u0027: initiator_name})"},{"line_number":689,"context_line":"            raise exception.CinderException(reason\u003dmsg)"},{"line_number":690,"context_line":""},{"line_number":691,"context_line":"        map_group_name \u003d self._translate_grp_name(initiator_name)"},{"line_number":692,"context_line":"        lunid \u003d self._map_lun(initiator_name, volume_name, map_group_name)"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_c37549fa","line":689,"updated":"2016-05-17 18:13:57.000000000","message":"Should be a VolumeDriverException rather than CinderException.","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"7c23f3010688e6607ad30963385c589e833b87cc","unresolved":false,"context_lines":[{"line_number":686,"context_line":"            msg \u003d (_(\u0027Failed to get target ip or iqn \u0027"},{"line_number":687,"context_line":"                     \u0027for initiator %(ini)s, please check config file.\u0027),"},{"line_number":688,"context_line":"                   {\u0027ini\u0027: initiator_name})"},{"line_number":689,"context_line":"            raise exception.CinderException(reason\u003dmsg)"},{"line_number":690,"context_line":""},{"line_number":691,"context_line":"        map_group_name \u003d self._translate_grp_name(initiator_name)"},{"line_number":692,"context_line":"        lunid \u003d self._map_lun(initiator_name, volume_name, map_group_name)"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_6336c153","line":689,"in_reply_to":"dab17558_c37549fa","updated":"2016-05-19 08:39:34.000000000","message":"Done","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1e8217635366faa31e9c8fdc5423a47c4f3a0664","unresolved":false,"context_lines":[{"line_number":733,"context_line":""},{"line_number":734,"context_line":"        except Exception as err:"},{"line_number":735,"context_line":"            LOG.exception(_LE(\u0027_get_iscsi_info error.\u0027))"},{"line_number":736,"context_line":"            raise err"},{"line_number":737,"context_line":""},{"line_number":738,"context_line":"        return iscsi_info"},{"line_number":739,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_22a0858f","line":736,"updated":"2016-05-17 22:08:02.000000000","message":"Should just be \"raise\".","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"c14befd8e2b81d8ae33ba59aad11b6d20974305e","unresolved":false,"context_lines":[{"line_number":733,"context_line":""},{"line_number":734,"context_line":"        except Exception as err:"},{"line_number":735,"context_line":"            LOG.exception(_LE(\u0027_get_iscsi_info error.\u0027))"},{"line_number":736,"context_line":"            raise err"},{"line_number":737,"context_line":""},{"line_number":738,"context_line":"        return iscsi_info"},{"line_number":739,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_7b9e8f57","line":736,"in_reply_to":"bab6814e_202176fc","updated":"2016-05-18 14:25:25.000000000","message":"Actually no, it\u0027s not. Should just be raise.","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"3afe691ae084f9e9d31015b90386a20403b47d11","unresolved":false,"context_lines":[{"line_number":733,"context_line":""},{"line_number":734,"context_line":"        except Exception as err:"},{"line_number":735,"context_line":"            LOG.exception(_LE(\u0027_get_iscsi_info error.\u0027))"},{"line_number":736,"context_line":"            raise err"},{"line_number":737,"context_line":""},{"line_number":738,"context_line":"        return iscsi_info"},{"line_number":739,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_f774329d","line":736,"in_reply_to":"bab6814e_7b9e8f57","updated":"2016-05-19 03:26:52.000000000","message":"We will fix this problem.","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"46085b6482008f6a8ebe4dcf91556b67c6b788af","unresolved":false,"context_lines":[{"line_number":733,"context_line":""},{"line_number":734,"context_line":"        except Exception as err:"},{"line_number":735,"context_line":"            LOG.exception(_LE(\u0027_get_iscsi_info error.\u0027))"},{"line_number":736,"context_line":"            raise err"},{"line_number":737,"context_line":""},{"line_number":738,"context_line":"        return iscsi_info"},{"line_number":739,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_202176fc","line":736,"in_reply_to":"dab17558_22a0858f","updated":"2016-05-18 14:16:06.000000000","message":"\"raise err\" is fine too.","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"547f9929bdd50021016c1b57a01efdf7cb36630c","unresolved":false,"context_lines":[{"line_number":895,"context_line":"                if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_SUCCESS,"},{"line_number":896,"context_line":"                                             zte_pub.ZTE_ERR_HOST_NOT_EXIST]:"},{"line_number":897,"context_line":"                    raise exception.CinderException("},{"line_number":898,"context_line":"                        _(\u0027delete host from group fail.\u0027))"},{"line_number":899,"context_line":""},{"line_number":900,"context_line":"                ret \u003d self._call_method("},{"line_number":901,"context_line":"                    \u0027GetHost\u0027, {\"cHostAlias\": initiator_name})"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_0362b13d","line":898,"updated":"2016-05-17 18:13:57.000000000","message":"Should be a VolumeDriverException rather than CinderException.","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"7c23f3010688e6607ad30963385c589e833b87cc","unresolved":false,"context_lines":[{"line_number":895,"context_line":"                if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_SUCCESS,"},{"line_number":896,"context_line":"                                             zte_pub.ZTE_ERR_HOST_NOT_EXIST]:"},{"line_number":897,"context_line":"                    raise exception.CinderException("},{"line_number":898,"context_line":"                        _(\u0027delete host from group fail.\u0027))"},{"line_number":899,"context_line":""},{"line_number":900,"context_line":"                ret \u003d self._call_method("},{"line_number":901,"context_line":"                    \u0027GetHost\u0027, {\"cHostAlias\": initiator_name})"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_63136167","line":898,"in_reply_to":"dab17558_0362b13d","updated":"2016-05-19 08:39:34.000000000","message":"Done","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":12736,"name":"Xuepeng Ji","email":"ji.xuepeng@zte.com.cn","username":"jixuepeng"},"change_message_id":"68266ec2be57bb48ddd3de45d3f1ac87836dafdd","unresolved":false,"context_lines":[{"line_number":419,"context_line":"        \"\"\"clone a volume\"\"\""},{"line_number":420,"context_line":"        bvol_name \u003d self._translate_volume_name(src_vref[\u0027name\u0027])"},{"line_number":421,"context_line":"        cvol_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":422,"context_line":"        if int(volume[\u0027size\u0027]) \u003c src_vref[\u0027size\u0027]:"},{"line_number":423,"context_line":"            err_msg \u003d (_(\u0027:cloned volume size invalid.\u0027"},{"line_number":424,"context_line":"                         \u0027clone siez:%(cloned_size)s src volume size:\u0027"},{"line_number":425,"context_line":"                         \u0027 %(volume_size)s.\u0027),"}],"source_content_type":"text/x-python","patch_set":14,"id":"bab6814e_4c7bac8c","line":422,"range":{"start_line":422,"start_character":0,"end_line":422,"end_character":50},"updated":"2016-05-20 08:06:36.000000000","message":"The type of two operands may not be consistent, \u0027int\u0027 should be removed here.","commit_id":"17caf2648781d236197f6ef23bb317512d1a2216"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"18dfc5f86821b19274d407f55ecc83c4fdc02614","unresolved":false,"context_lines":[{"line_number":419,"context_line":"        \"\"\"clone a volume\"\"\""},{"line_number":420,"context_line":"        bvol_name \u003d self._translate_volume_name(src_vref[\u0027name\u0027])"},{"line_number":421,"context_line":"        cvol_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":422,"context_line":"        if int(volume[\u0027size\u0027]) \u003c src_vref[\u0027size\u0027]:"},{"line_number":423,"context_line":"            err_msg \u003d (_(\u0027:cloned volume size invalid.\u0027"},{"line_number":424,"context_line":"                         \u0027clone siez:%(cloned_size)s src volume size:\u0027"},{"line_number":425,"context_line":"                         \u0027 %(volume_size)s.\u0027),"}],"source_content_type":"text/x-python","patch_set":14,"id":"bab6814e_69f7548b","line":422,"range":{"start_line":422,"start_character":0,"end_line":422,"end_character":50},"in_reply_to":"bab6814e_4c7bac8c","updated":"2016-05-21 02:49:01.000000000","message":"Done","commit_id":"17caf2648781d236197f6ef23bb317512d1a2216"},{"author":{"_account_id":12736,"name":"Xuepeng Ji","email":"ji.xuepeng@zte.com.cn","username":"jixuepeng"},"change_message_id":"68266ec2be57bb48ddd3de45d3f1ac87836dafdd","unresolved":false,"context_lines":[{"line_number":450,"context_line":"        \"\"\"create  volume from  snapshot \"\"\""},{"line_number":451,"context_line":"        bvol_name \u003d self._translate_volume_name(snapshot[\u0027name\u0027])"},{"line_number":452,"context_line":"        cvol_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":453,"context_line":"        if int(volume[\u0027size\u0027]) \u003c snapshot[\u0027volume_size\u0027]:"},{"line_number":454,"context_line":"            err_msg \u003d ("},{"line_number":455,"context_line":"                _(\u0027:cloned volume size invalid.\u0027"},{"line_number":456,"context_line":"                  \u0027clone siez:%(cloned_size)s src volume size: \u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"bab6814e_cc1f9c06","line":453,"range":{"start_line":453,"start_character":0,"end_line":453,"end_character":57},"updated":"2016-05-20 08:06:36.000000000","message":"The type of two operands may not be consistent, \u0027int\u0027 should be removed here.","commit_id":"17caf2648781d236197f6ef23bb317512d1a2216"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"18dfc5f86821b19274d407f55ecc83c4fdc02614","unresolved":false,"context_lines":[{"line_number":450,"context_line":"        \"\"\"create  volume from  snapshot \"\"\""},{"line_number":451,"context_line":"        bvol_name \u003d self._translate_volume_name(snapshot[\u0027name\u0027])"},{"line_number":452,"context_line":"        cvol_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":453,"context_line":"        if int(volume[\u0027size\u0027]) \u003c snapshot[\u0027volume_size\u0027]:"},{"line_number":454,"context_line":"            err_msg \u003d ("},{"line_number":455,"context_line":"                _(\u0027:cloned volume size invalid.\u0027"},{"line_number":456,"context_line":"                  \u0027clone siez:%(cloned_size)s src volume size: \u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"bab6814e_49fc1072","line":453,"range":{"start_line":453,"start_character":0,"end_line":453,"end_character":57},"in_reply_to":"bab6814e_cc1f9c06","updated":"2016-05-21 02:49:01.000000000","message":"Done","commit_id":"17caf2648781d236197f6ef23bb317512d1a2216"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"3b7c2e6cfdcb8a5cac34144a9cfc7702eaf67a5d","unresolved":false,"context_lines":[{"line_number":41,"context_line":"              help\u003d\u0027slave controller IP.\u0027),"},{"line_number":42,"context_line":"    cfg.IPOpt(\u0027zteLocalIP\u0027, default\u003d\u00270.0.0.0\u0027, help\u003d\u0027Local IP.\u0027),"},{"line_number":43,"context_line":"    cfg.StrOpt(\u0027zteUserName\u0027, default\u003d\u0027\u0027, help\u003d\u0027User name.\u0027),"},{"line_number":44,"context_line":"    cfg.StrOpt(\u0027zteUserPassword\u0027, default\u003d\u0027\u0027, help\u003d\u0027User password.\u0027),"},{"line_number":45,"context_line":"    cfg.IntOpt(\u0027zteChunkSize\u0027, default\u003d4, help\u003d\u0027Virtual block size of pool .\u0027),"},{"line_number":46,"context_line":"    cfg.IntOpt(\u0027zteAheadReadSize\u0027, default\u003d8, help\u003d\u0027Cache readahead size.\u0027),"},{"line_number":47,"context_line":"    cfg.IntOpt(\u0027zteCachePolicy\u0027, default\u003d1, help\u003d\u0027Cache policy.\u0027),"}],"source_content_type":"text/x-python","patch_set":17,"id":"bab6814e_f471d778","line":44,"updated":"2016-05-24 18:28:18.000000000","message":"Should add the secret\u003dTrue parameter to this StrOpt since it\u0027s a password.\n\nhttp://docs.openstack.org/developer/oslo.config/cfg.html#special-handling-instructions","commit_id":"e245f045d721ee50b0be0d057b41971c9dab526c"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"755218c094b404b2f16439ae5fd485c1b47e2c45","unresolved":false,"context_lines":[{"line_number":41,"context_line":"              help\u003d\u0027slave controller IP.\u0027),"},{"line_number":42,"context_line":"    cfg.IPOpt(\u0027zteLocalIP\u0027, default\u003d\u00270.0.0.0\u0027, help\u003d\u0027Local IP.\u0027),"},{"line_number":43,"context_line":"    cfg.StrOpt(\u0027zteUserName\u0027, default\u003d\u0027\u0027, help\u003d\u0027User name.\u0027),"},{"line_number":44,"context_line":"    cfg.StrOpt(\u0027zteUserPassword\u0027, default\u003d\u0027\u0027, help\u003d\u0027User password.\u0027),"},{"line_number":45,"context_line":"    cfg.IntOpt(\u0027zteChunkSize\u0027, default\u003d4, help\u003d\u0027Virtual block size of pool .\u0027),"},{"line_number":46,"context_line":"    cfg.IntOpt(\u0027zteAheadReadSize\u0027, default\u003d8, help\u003d\u0027Cache readahead size.\u0027),"},{"line_number":47,"context_line":"    cfg.IntOpt(\u0027zteCachePolicy\u0027, default\u003d1, help\u003d\u0027Cache policy.\u0027),"}],"source_content_type":"text/x-python","patch_set":17,"id":"bab6814e_85cacd4d","line":44,"in_reply_to":"bab6814e_f471d778","updated":"2016-05-25 01:33:02.000000000","message":"Done","commit_id":"e245f045d721ee50b0be0d057b41971c9dab526c"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    cfg.IPOpt(\u0027zteControllerIP0\u0027, default\u003dNone,"},{"line_number":39,"context_line":"              help\u003d\u0027Main controller IP.\u0027),"},{"line_number":40,"context_line":"    cfg.IPOpt(\u0027zteControllerIP1\u0027, default\u003d\u00270.0.0.0\u0027,"},{"line_number":41,"context_line":"              help\u003d\u0027slave controller IP.\u0027),"},{"line_number":42,"context_line":"    cfg.IPOpt(\u0027zteLocalIP\u0027, default\u003d\u00270.0.0.0\u0027, help\u003d\u0027Local IP.\u0027),"},{"line_number":43,"context_line":"    cfg.StrOpt(\u0027zteUserName\u0027, default\u003d\u0027\u0027, help\u003d\u0027User name.\u0027),"},{"line_number":44,"context_line":"    cfg.StrOpt(\u0027zteUserPassword\u0027, default\u003d\u0027\u0027, secret\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_0238853c","line":41,"range":{"start_line":41,"start_character":20,"end_line":41,"end_character":21},"updated":"2016-06-03 13:50:14.000000000","message":"nit: Start uppercase to be consistent with the rest of the help text.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    cfg.IPOpt(\u0027zteControllerIP0\u0027, default\u003dNone,"},{"line_number":39,"context_line":"              help\u003d\u0027Main controller IP.\u0027),"},{"line_number":40,"context_line":"    cfg.IPOpt(\u0027zteControllerIP1\u0027, default\u003d\u00270.0.0.0\u0027,"},{"line_number":41,"context_line":"              help\u003d\u0027slave controller IP.\u0027),"},{"line_number":42,"context_line":"    cfg.IPOpt(\u0027zteLocalIP\u0027, default\u003d\u00270.0.0.0\u0027, help\u003d\u0027Local IP.\u0027),"},{"line_number":43,"context_line":"    cfg.StrOpt(\u0027zteUserName\u0027, default\u003d\u0027\u0027, help\u003d\u0027User name.\u0027),"},{"line_number":44,"context_line":"    cfg.StrOpt(\u0027zteUserPassword\u0027, default\u003d\u0027\u0027, secret\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_b6201af9","line":41,"range":{"start_line":41,"start_character":20,"end_line":41,"end_character":21},"in_reply_to":"9abb7d3a_0238853c","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"79aaad8ac229dc4e05d1c4b369172cb0d45dc26a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    cfg.IPOpt(\u0027zteControllerIP0\u0027, default\u003dNone,"},{"line_number":39,"context_line":"              help\u003d\u0027Main controller IP.\u0027),"},{"line_number":40,"context_line":"    cfg.IPOpt(\u0027zteControllerIP1\u0027, default\u003d\u00270.0.0.0\u0027,"},{"line_number":41,"context_line":"              help\u003d\u0027slave controller IP.\u0027),"},{"line_number":42,"context_line":"    cfg.IPOpt(\u0027zteLocalIP\u0027, default\u003d\u00270.0.0.0\u0027, help\u003d\u0027Local IP.\u0027),"},{"line_number":43,"context_line":"    cfg.StrOpt(\u0027zteUserName\u0027, default\u003d\u0027\u0027, help\u003d\u0027User name.\u0027),"},{"line_number":44,"context_line":"    cfg.StrOpt(\u0027zteUserPassword\u0027, default\u003d\u0027\u0027, secret\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_52dc0e12","line":41,"range":{"start_line":41,"start_character":20,"end_line":41,"end_character":21},"in_reply_to":"9abb7d3a_0238853c","updated":"2016-06-03 16:10:41.000000000","message":"Is 0.0.0.0 a reasonable default here?  Isn\u0027t this a machine you\u0027re connecting to?\n\n(i.e. isn\u0027t 0.0.0.0 guaranteed to never be correct for this?)","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    cfg.IPOpt(\u0027zteControllerIP0\u0027, default\u003dNone,"},{"line_number":39,"context_line":"              help\u003d\u0027Main controller IP.\u0027),"},{"line_number":40,"context_line":"    cfg.IPOpt(\u0027zteControllerIP1\u0027, default\u003d\u00270.0.0.0\u0027,"},{"line_number":41,"context_line":"              help\u003d\u0027slave controller IP.\u0027),"},{"line_number":42,"context_line":"    cfg.IPOpt(\u0027zteLocalIP\u0027, default\u003d\u00270.0.0.0\u0027, help\u003d\u0027Local IP.\u0027),"},{"line_number":43,"context_line":"    cfg.StrOpt(\u0027zteUserName\u0027, default\u003d\u0027\u0027, help\u003d\u0027User name.\u0027),"},{"line_number":44,"context_line":"    cfg.StrOpt(\u0027zteUserPassword\u0027, default\u003d\u0027\u0027, secret\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_d67de6e8","line":41,"range":{"start_line":41,"start_character":20,"end_line":41,"end_character":21},"in_reply_to":"9abb7d3a_52dc0e12","updated":"2016-06-06 03:36:38.000000000","message":"We will set the default value to NONE.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    cfg.StrOpt(\u0027zteUserName\u0027, default\u003d\u0027\u0027, help\u003d\u0027User name.\u0027),"},{"line_number":44,"context_line":"    cfg.StrOpt(\u0027zteUserPassword\u0027, default\u003d\u0027\u0027, secret\u003dTrue,"},{"line_number":45,"context_line":"               help\u003d\u0027User password.\u0027),"},{"line_number":46,"context_line":"    cfg.IntOpt(\u0027zteChunkSize\u0027, default\u003d4, help\u003d\u0027Virtual block size of pool .\u0027),"},{"line_number":47,"context_line":"    cfg.IntOpt(\u0027zteAheadReadSize\u0027, default\u003d8, help\u003d\u0027Cache readahead size.\u0027),"},{"line_number":48,"context_line":"    cfg.IntOpt(\u0027zteCachePolicy\u0027, default\u003d1, help\u003d\u0027Cache policy.\u0027),"},{"line_number":49,"context_line":"    cfg.IntOpt(\u0027zteSSDCacheSwitch\u0027, default\u003d1, help\u003d\u0027SSD cache switch.\u0027),"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_e2a0e1a7","line":46,"range":{"start_line":46,"start_character":74,"end_line":46,"end_character":75},"updated":"2016-06-03 13:50:14.000000000","message":"Extra space before the period should be removed.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    cfg.StrOpt(\u0027zteUserName\u0027, default\u003d\u0027\u0027, help\u003d\u0027User name.\u0027),"},{"line_number":44,"context_line":"    cfg.StrOpt(\u0027zteUserPassword\u0027, default\u003d\u0027\u0027, secret\u003dTrue,"},{"line_number":45,"context_line":"               help\u003d\u0027User password.\u0027),"},{"line_number":46,"context_line":"    cfg.IntOpt(\u0027zteChunkSize\u0027, default\u003d4, help\u003d\u0027Virtual block size of pool .\u0027),"},{"line_number":47,"context_line":"    cfg.IntOpt(\u0027zteAheadReadSize\u0027, default\u003d8, help\u003d\u0027Cache readahead size.\u0027),"},{"line_number":48,"context_line":"    cfg.IntOpt(\u0027zteCachePolicy\u0027, default\u003d1, help\u003d\u0027Cache policy.\u0027),"},{"line_number":49,"context_line":"    cfg.IntOpt(\u0027zteSSDCacheSwitch\u0027, default\u003d1, help\u003d\u0027SSD cache switch.\u0027),"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_365a6a84","line":46,"range":{"start_line":46,"start_character":74,"end_line":46,"end_character":75},"in_reply_to":"9abb7d3a_e2a0e1a7","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"79aaad8ac229dc4e05d1c4b369172cb0d45dc26a","unresolved":false,"context_lines":[{"line_number":52,"context_line":"               help\u003d\u0027Pool volume alloc policy.\u0027),"},{"line_number":53,"context_line":"    cfg.IntOpt(\u0027ztePoolVolMovePolicy\u0027, default\u003d0,"},{"line_number":54,"context_line":"               help\u003d\u0027Pool volume move policy.\u0027),"},{"line_number":55,"context_line":"    cfg.IntOpt(\u0027ztePoolVolIsThin\u0027, default\u003d0,"},{"line_number":56,"context_line":"               help\u003d\u0027Whether it is a thin volume.\u0027),"},{"line_number":57,"context_line":"    cfg.IntOpt(\u0027ztePoolVolInitAllocedCapacity\u0027, default\u003d0,"},{"line_number":58,"context_line":"               help\u003d\u0027Pool volume init alloced Capacity.\u0027),"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_d25abe82","line":55,"updated":"2016-06-03 16:10:41.000000000","message":"Should be a BoolOpt.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":52,"context_line":"               help\u003d\u0027Pool volume alloc policy.\u0027),"},{"line_number":53,"context_line":"    cfg.IntOpt(\u0027ztePoolVolMovePolicy\u0027, default\u003d0,"},{"line_number":54,"context_line":"               help\u003d\u0027Pool volume move policy.\u0027),"},{"line_number":55,"context_line":"    cfg.IntOpt(\u0027ztePoolVolIsThin\u0027, default\u003d0,"},{"line_number":56,"context_line":"               help\u003d\u0027Whether it is a thin volume.\u0027),"},{"line_number":57,"context_line":"    cfg.IntOpt(\u0027ztePoolVolInitAllocedCapacity\u0027, default\u003d0,"},{"line_number":58,"context_line":"               help\u003d\u0027Pool volume init alloced Capacity.\u0027),"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_d6cb261d","line":55,"in_reply_to":"9abb7d3a_d25abe82","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":60,"context_line":"               help\u003d\u0027Pool volume alarm threshold.\u0027),"},{"line_number":61,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmStopAllocFlag\u0027, default\u003d0,"},{"line_number":62,"context_line":"               help\u003d\u0027Pool volume alarm stop alloc flag.\u0027),"},{"line_number":63,"context_line":"    cfg.ListOpt(\u0027zteInitiator\u0027, default\u003d[], help\u003d\u0027List of Initiators.\u0027)"},{"line_number":64,"context_line":"]"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_9876a23c","line":63,"updated":"2016-06-03 13:50:14.000000000","message":"I\u0027m a little confused what this is being used for. Is this actually needed?","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"f34015c170f3e35169b3f9735aeeec12d08880d1","unresolved":false,"context_lines":[{"line_number":60,"context_line":"               help\u003d\u0027Pool volume alarm threshold.\u0027),"},{"line_number":61,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmStopAllocFlag\u0027, default\u003d0,"},{"line_number":62,"context_line":"               help\u003d\u0027Pool volume alarm stop alloc flag.\u0027),"},{"line_number":63,"context_line":"    cfg.ListOpt(\u0027zteInitiator\u0027, default\u003d[], help\u003d\u0027List of Initiators.\u0027)"},{"line_number":64,"context_line":"]"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_4d3b1cec","line":63,"in_reply_to":"9abb7d3a_9876a23c","updated":"2016-06-06 08:09:37.000000000","message":"This option is not necessary. We\u0027ll remove it.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            params \u003d params or {}"},{"line_number":85,"context_line":"            data \u003d (\"sessionID\u003d\" + sessin_id + \"\u0026method\u003d\" +"},{"line_number":86,"context_line":"                    method + \"\u0026params\u003d\" + json.dumps(params))"},{"line_number":87,"context_line":"            LOG.debug(\u0027Req Data: method %(method)s %(data)s.\u0027 %"},{"line_number":88,"context_line":"                      {\u0027method\u0027: method, \u0027data\u0027: data})"},{"line_number":89,"context_line":"            headers \u003d {\"Connection\": \"keep-alive\","},{"line_number":90,"context_line":"                       \"Content-Type\": \"application/x-www-form-urlencoded\"}"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_c2f03d69","line":87,"range":{"start_line":87,"start_character":61,"end_line":87,"end_character":63},"updated":"2016-06-03 13:50:14.000000000","message":"Change % to ,","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            params \u003d params or {}"},{"line_number":85,"context_line":"            data \u003d (\"sessionID\u003d\" + sessin_id + \"\u0026method\u003d\" +"},{"line_number":86,"context_line":"                    method + \"\u0026params\u003d\" + json.dumps(params))"},{"line_number":87,"context_line":"            LOG.debug(\u0027Req Data: method %(method)s %(data)s.\u0027 %"},{"line_number":88,"context_line":"                      {\u0027method\u0027: method, \u0027data\u0027: data})"},{"line_number":89,"context_line":"            headers \u003d {\"Connection\": \"keep-alive\","},{"line_number":90,"context_line":"                       \"Content-Type\": \"application/x-www-form-urlencoded\"}"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_f6bbc273","line":87,"range":{"start_line":87,"start_character":61,"end_line":87,"end_character":63},"in_reply_to":"9abb7d3a_c2f03d69","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"79aaad8ac229dc4e05d1c4b369172cb0d45dc26a","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                      {\u0027method\u0027: method, \u0027data\u0027: data})"},{"line_number":89,"context_line":"            headers \u003d {\"Connection\": \"keep-alive\","},{"line_number":90,"context_line":"                       \"Content-Type\": \"application/x-www-form-urlencoded\"}"},{"line_number":91,"context_line":"            socket.setdefaulttimeout(zte_pub.ZTE_DEFAULT_TIMEOUT)"},{"line_number":92,"context_line":"            req \u003d urllib.request.Request(self.url, data, headers)"},{"line_number":93,"context_line":"            req.get_method \u003d lambda: \u0027POST\u0027"},{"line_number":94,"context_line":"            response \u003d urllib.request.urlopen(req).read()"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_9d5e87e7","line":91,"updated":"2016-06-03 16:10:41.000000000","message":"I don\u0027t think you should be doing this with \"socket\" here.  Just let urllib handle timeouts.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"f34015c170f3e35169b3f9735aeeec12d08880d1","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                      {\u0027method\u0027: method, \u0027data\u0027: data})"},{"line_number":89,"context_line":"            headers \u003d {\"Connection\": \"keep-alive\","},{"line_number":90,"context_line":"                       \"Content-Type\": \"application/x-www-form-urlencoded\"}"},{"line_number":91,"context_line":"            socket.setdefaulttimeout(zte_pub.ZTE_DEFAULT_TIMEOUT)"},{"line_number":92,"context_line":"            req \u003d urllib.request.Request(self.url, data, headers)"},{"line_number":93,"context_line":"            req.get_method \u003d lambda: \u0027POST\u0027"},{"line_number":94,"context_line":"            response \u003d urllib.request.urlopen(req).read()"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_e8d47648","line":91,"in_reply_to":"9abb7d3a_9d5e87e7","updated":"2016-06-06 08:09:37.000000000","message":"The default timeout time is too short in some cases.  So we change the timeout time.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":92,"context_line":"            req \u003d urllib.request.Request(self.url, data, headers)"},{"line_number":93,"context_line":"            req.get_method \u003d lambda: \u0027POST\u0027"},{"line_number":94,"context_line":"            response \u003d urllib.request.urlopen(req).read()"},{"line_number":95,"context_line":"            LOG.debug(\u0027Response Data: method %(method)s %(res)s.\u0027 %"},{"line_number":96,"context_line":"                      {\u0027method\u0027: method, \u0027res\u0027: response})"},{"line_number":97,"context_line":"        except Exception:"},{"line_number":98,"context_line":"            LOG.exception(_LE(\u0027Bad response from server.\u0027))"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_42d60dc4","line":95,"range":{"start_line":95,"start_character":65,"end_line":95,"end_character":67},"updated":"2016-06-03 13:50:14.000000000","message":"Change to , to pass formatting arguments as args to the logger.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":92,"context_line":"            req \u003d urllib.request.Request(self.url, data, headers)"},{"line_number":93,"context_line":"            req.get_method \u003d lambda: \u0027POST\u0027"},{"line_number":94,"context_line":"            response \u003d urllib.request.urlopen(req).read()"},{"line_number":95,"context_line":"            LOG.debug(\u0027Response Data: method %(method)s %(res)s.\u0027 %"},{"line_number":96,"context_line":"                      {\u0027method\u0027: method, \u0027res\u0027: response})"},{"line_number":97,"context_line":"        except Exception:"},{"line_number":98,"context_line":"            LOG.exception(_LE(\u0027Bad response from server.\u0027))"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_567456ce","line":95,"range":{"start_line":95,"start_character":65,"end_line":95,"end_character":67},"in_reply_to":"9abb7d3a_42d60dc4","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        controller_ip \u003d (self.login_info[\u0027ControllerIP0\u0027]"},{"line_number":105,"context_line":"                         or self.login_info[\u0027ControllerIP1\u0027] or \u0027\u0027)"},{"line_number":106,"context_line":"        self.url \u003d \u0027https://\u0027 + controller_ip + \u0027/phpclient/client.php\u0027"},{"line_number":107,"context_line":"        LOG.debug(\u0027Set zte server is %s.\u0027 % self.url)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def _change_server(self):"},{"line_number":110,"context_line":"        if (self.login_info[\u0027ControllerIP0\u0027]) and ("}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_6254f153","line":107,"range":{"start_line":107,"start_character":41,"end_line":107,"end_character":43},"updated":"2016-06-03 13:50:14.000000000","message":"Change to , to pass self.url as an arg to the logger.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        controller_ip \u003d (self.login_info[\u0027ControllerIP0\u0027]"},{"line_number":105,"context_line":"                         or self.login_info[\u0027ControllerIP1\u0027] or \u0027\u0027)"},{"line_number":106,"context_line":"        self.url \u003d \u0027https://\u0027 + controller_ip + \u0027/phpclient/client.php\u0027"},{"line_number":107,"context_line":"        LOG.debug(\u0027Set zte server is %s.\u0027 % self.url)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def _change_server(self):"},{"line_number":110,"context_line":"        if (self.login_info[\u0027ControllerIP0\u0027]) and ("}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_765eb246","line":107,"range":{"start_line":107,"start_character":41,"end_line":107,"end_character":43},"in_reply_to":"9abb7d3a_6254f153","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            return self.session_id"},{"line_number":129,"context_line":"        else:"},{"line_number":130,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":131,"context_line":"                _LE(\u0027Failed to login. Return code: %(ret)s.\u0027) % {"},{"line_number":132,"context_line":"                    \u0027ret\u0027: result[\u0027returncode\u0027]})"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def do_setup(self, context):"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_828e35ce","line":131,"range":{"start_line":131,"start_character":15,"end_line":131,"end_character":19},"updated":"2016-06-03 13:50:14.000000000","message":"Exception text should use the _() translation marker.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            return self.session_id"},{"line_number":129,"context_line":"        else:"},{"line_number":130,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":131,"context_line":"                _LE(\u0027Failed to login. Return code: %(ret)s.\u0027) % {"},{"line_number":132,"context_line":"                    \u0027ret\u0027: result[\u0027returncode\u0027]})"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def do_setup(self, context):"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_96551e1f","line":131,"range":{"start_line":131,"start_character":15,"end_line":131,"end_character":19},"in_reply_to":"9abb7d3a_828e35ce","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                             \u0027 %(ret)s.\u0027),"},{"line_number":167,"context_line":"                         {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":168,"context_line":"        except Exception:"},{"line_number":169,"context_line":"            LOG.exception(_LE(\u0027_get_sessionid error.\u0027))"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        self._change_server()"},{"line_number":172,"context_line":"        return self._user_login()"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_e2490190","line":169,"range":{"start_line":169,"start_character":26,"end_line":169,"end_character":29},"updated":"2016-06-03 13:50:14.000000000","message":"_()","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5cc458a0d061974349bdaaa04e02fbbef0aa4143","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                             \u0027 %(ret)s.\u0027),"},{"line_number":167,"context_line":"                         {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":168,"context_line":"        except Exception:"},{"line_number":169,"context_line":"            LOG.exception(_LE(\u0027_get_sessionid error.\u0027))"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        self._change_server()"},{"line_number":172,"context_line":"        return self._user_login()"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_4882dc53","line":169,"range":{"start_line":169,"start_character":26,"end_line":169,"end_character":29},"in_reply_to":"7aa08908_48b4aaf1","updated":"2016-06-06 11:52:34.000000000","message":"Yes, sorry, you are correct here.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"f34015c170f3e35169b3f9735aeeec12d08880d1","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                             \u0027 %(ret)s.\u0027),"},{"line_number":167,"context_line":"                         {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":168,"context_line":"        except Exception:"},{"line_number":169,"context_line":"            LOG.exception(_LE(\u0027_get_sessionid error.\u0027))"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        self._change_server()"},{"line_number":172,"context_line":"        return self._user_login()"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_48b4aaf1","line":169,"range":{"start_line":169,"start_character":26,"end_line":169,"end_character":29},"in_reply_to":"9abb7d3a_e2490190","updated":"2016-06-06 08:09:37.000000000","message":"_LE \u003d _translators.log_error.  Maybe we are right.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":224,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":225,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":226,"context_line":"                _(\u0027Create volume fail. Volume name:%(name)s. \u0027"},{"line_number":227,"context_line":"                  \u0027Return code: %(ret)s.\u0027),"},{"line_number":228,"context_line":"                {\u0027name\u0027: volume_name,"},{"line_number":229,"context_line":"                 \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":230,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_c21afd7b","line":227,"range":{"start_line":227,"start_character":42,"end_line":227,"end_character":43},"updated":"2016-06-03 13:50:14.000000000","message":"Here you are passing a string message into the exception constructor, so in this case you do need to use % instead of , so the string formatting happens first and the final formatted string is what gets passed in. Otherwise you end up passing in a tuple.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":224,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":225,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":226,"context_line":"                _(\u0027Create volume fail. Volume name:%(name)s. \u0027"},{"line_number":227,"context_line":"                  \u0027Return code: %(ret)s.\u0027),"},{"line_number":228,"context_line":"                {\u0027name\u0027: volume_name,"},{"line_number":229,"context_line":"                 \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":230,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_5110e04e","line":227,"range":{"start_line":227,"start_character":42,"end_line":227,"end_character":43},"in_reply_to":"9abb7d3a_c21afd7b","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_ERR_CLONE_OR_SNAP_NOT_EXIST,"},{"line_number":254,"context_line":"                                     zte_pub.ZTE_ERR_VAS_OBJECT_NOT_EXIST,"},{"line_number":255,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":256,"context_line":"            err_msg \u003d (_(\u0027Delete volume failed. Clone name:%(name)s.\u0027"},{"line_number":257,"context_line":"                         \u0027Return code: %(ret)s.\u0027) %"},{"line_number":258,"context_line":"                       {\u0027name\u0027: cloned_name,"},{"line_number":259,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_e5258bae","line":256,"updated":"2016-06-03 13:50:14.000000000","message":"Need space at the end so it doesn\u0027t end up running together with the next line.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_ERR_CLONE_OR_SNAP_NOT_EXIST,"},{"line_number":254,"context_line":"                                     zte_pub.ZTE_ERR_VAS_OBJECT_NOT_EXIST,"},{"line_number":255,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":256,"context_line":"            err_msg \u003d (_(\u0027Delete volume failed. Clone name:%(name)s.\u0027"},{"line_number":257,"context_line":"                         \u0027Return code: %(ret)s.\u0027) %"},{"line_number":258,"context_line":"                       {\u0027name\u0027: cloned_name,"},{"line_number":259,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_713a3ccf","line":256,"in_reply_to":"9abb7d3a_e5258bae","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":283,"context_line":"    def delete_volume(self, volume):"},{"line_number":284,"context_line":"        \"\"\"Delete a volume.\"\"\""},{"line_number":285,"context_line":"        volume_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":286,"context_line":"        LOG.debug(\u0027delete_volume: volume name: %s.\u0027 % volume_name)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        self._delete_clone_relation_by_volname(volume_name, False)"},{"line_number":289,"context_line":"        self._remove_volume_from_group(volume_name)"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_c54fa768","line":286,"range":{"start_line":286,"start_character":51,"end_line":286,"end_character":53},"updated":"2016-06-03 13:50:14.000000000","message":"% \u003e ,","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":283,"context_line":"    def delete_volume(self, volume):"},{"line_number":284,"context_line":"        \"\"\"Delete a volume.\"\"\""},{"line_number":285,"context_line":"        volume_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":286,"context_line":"        LOG.debug(\u0027delete_volume: volume name: %s.\u0027 % volume_name)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        self._delete_clone_relation_by_volname(volume_name, False)"},{"line_number":289,"context_line":"        self._remove_volume_from_group(volume_name)"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_91b6c83b","line":286,"range":{"start_line":286,"start_character":51,"end_line":286,"end_character":53},"in_reply_to":"9abb7d3a_c54fa768","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_ERR_CLONE_OR_SNAP_NOT_EXIST,"},{"line_number":296,"context_line":"                                     zte_pub.ZTE_ERR_VAS_OBJECT_NOT_EXIST,"},{"line_number":297,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":298,"context_line":"            err_msg \u003d (_(\u0027_delete_clone_volume:Failed to clone vol.\u0027"},{"line_number":299,"context_line":"                         \u0027cloned  name:%(name)s with Return code: \u0027"},{"line_number":300,"context_line":"                         \u0027%(ret)s.\u0027),"},{"line_number":301,"context_line":"                       {\u0027name\u0027: cloned_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_0571afa8","line":298,"updated":"2016-06-03 13:50:14.000000000","message":"Needs space at the end.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_ERR_CLONE_OR_SNAP_NOT_EXIST,"},{"line_number":296,"context_line":"                                     zte_pub.ZTE_ERR_VAS_OBJECT_NOT_EXIST,"},{"line_number":297,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":298,"context_line":"            err_msg \u003d (_(\u0027_delete_clone_volume:Failed to clone vol.\u0027"},{"line_number":299,"context_line":"                         \u0027cloned  name:%(name)s with Return code: \u0027"},{"line_number":300,"context_line":"                         \u0027%(ret)s.\u0027),"},{"line_number":301,"context_line":"                       {\u0027name\u0027: cloned_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_f1810c4f","line":298,"in_reply_to":"9abb7d3a_0571afa8","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":296,"context_line":"                                     zte_pub.ZTE_ERR_VAS_OBJECT_NOT_EXIST,"},{"line_number":297,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":298,"context_line":"            err_msg \u003d (_(\u0027_delete_clone_volume:Failed to clone vol.\u0027"},{"line_number":299,"context_line":"                         \u0027cloned  name:%(name)s with Return code: \u0027"},{"line_number":300,"context_line":"                         \u0027%(ret)s.\u0027),"},{"line_number":301,"context_line":"                       {\u0027name\u0027: cloned_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":302,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_VOLUME_TASK_NOT_FINISHED:"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_c59de7bc","line":299,"range":{"start_line":299,"start_character":32,"end_line":299,"end_character":34},"updated":"2016-06-03 13:50:14.000000000","message":"nit: extra space here.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":296,"context_line":"                                     zte_pub.ZTE_ERR_VAS_OBJECT_NOT_EXIST,"},{"line_number":297,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":298,"context_line":"            err_msg \u003d (_(\u0027_delete_clone_volume:Failed to clone vol.\u0027"},{"line_number":299,"context_line":"                         \u0027cloned  name:%(name)s with Return code: \u0027"},{"line_number":300,"context_line":"                         \u0027%(ret)s.\u0027),"},{"line_number":301,"context_line":"                       {\u0027name\u0027: cloned_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":302,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_VOLUME_TASK_NOT_FINISHED:"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_317c3472","line":299,"range":{"start_line":299,"start_character":32,"end_line":299,"end_character":34},"in_reply_to":"9abb7d3a_c59de7bc","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":297,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":298,"context_line":"            err_msg \u003d (_(\u0027_delete_clone_volume:Failed to clone vol.\u0027"},{"line_number":299,"context_line":"                         \u0027cloned  name:%(name)s with Return code: \u0027"},{"line_number":300,"context_line":"                         \u0027%(ret)s.\u0027),"},{"line_number":301,"context_line":"                       {\u0027name\u0027: cloned_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":302,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_VOLUME_TASK_NOT_FINISHED:"},{"line_number":303,"context_line":"                if issnapshot:"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_6596bb95","line":300,"range":{"start_line":300,"start_character":36,"end_line":300,"end_character":37},"updated":"2016-06-03 13:50:14.000000000","message":"Need to actually format the string here, so change , to %","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":297,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":298,"context_line":"            err_msg \u003d (_(\u0027_delete_clone_volume:Failed to clone vol.\u0027"},{"line_number":299,"context_line":"                         \u0027cloned  name:%(name)s with Return code: \u0027"},{"line_number":300,"context_line":"                         \u0027%(ret)s.\u0027),"},{"line_number":301,"context_line":"                       {\u0027name\u0027: cloned_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":302,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_VOLUME_TASK_NOT_FINISHED:"},{"line_number":303,"context_line":"                if issnapshot:"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_7196bc95","line":300,"range":{"start_line":300,"start_character":36,"end_line":300,"end_character":37},"in_reply_to":"9abb7d3a_6596bb95","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":310,"context_line":""},{"line_number":311,"context_line":"    def _delete_clone_relation_by_volname(self, volname, issnapshot):"},{"line_number":312,"context_line":"        svol_name \u003d {\u0027scVolName\u0027: volname}"},{"line_number":313,"context_line":"        LOG.debug(\u0027GetCvolNamesOnVol: volume name: %s.\u0027 % volname)"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"        ret \u003d self._call_method(\u0027GetCvolNamesOnVol\u0027, svol_name)"},{"line_number":316,"context_line":"        data_info \u003d ret[\u0027data\u0027]"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_85e2bf2d","line":313,"range":{"start_line":313,"start_character":55,"end_line":313,"end_character":57},"updated":"2016-06-03 13:50:14.000000000","message":"% \u003e ,","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":310,"context_line":""},{"line_number":311,"context_line":"    def _delete_clone_relation_by_volname(self, volname, issnapshot):"},{"line_number":312,"context_line":"        svol_name \u003d {\u0027scVolName\u0027: volname}"},{"line_number":313,"context_line":"        LOG.debug(\u0027GetCvolNamesOnVol: volume name: %s.\u0027 % volname)"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"        ret \u003d self._call_method(\u0027GetCvolNamesOnVol\u0027, svol_name)"},{"line_number":316,"context_line":"        data_info \u003d ret[\u0027data\u0027]"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_b1902497","line":313,"range":{"start_line":313,"start_character":55,"end_line":313,"end_character":57},"in_reply_to":"9abb7d3a_85e2bf2d","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":346,"context_line":"        ret \u003d self._call_method(\u0027CreateSvol\u0027, svol_paras)"},{"line_number":347,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":348,"context_line":"            err_msg \u003d (_(\u0027Failed to create snap.snap name:%(snapname)s,\u0027"},{"line_number":349,"context_line":"                         \u0027srvol name :%(srv)s with Return code: %(ret)s.\u0027),"},{"line_number":350,"context_line":"                       {\u0027snapname\u0027: snapshot_name,"},{"line_number":351,"context_line":"                        \u0027srv\u0027: src_vol,"},{"line_number":352,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_a55543c7","line":349,"range":{"start_line":349,"start_character":74,"end_line":349,"end_character":75},"updated":"2016-06-03 13:50:14.000000000","message":", \u003e %","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":346,"context_line":"        ret \u003d self._call_method(\u0027CreateSvol\u0027, svol_paras)"},{"line_number":347,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":348,"context_line":"            err_msg \u003d (_(\u0027Failed to create snap.snap name:%(snapname)s,\u0027"},{"line_number":349,"context_line":"                         \u0027srvol name :%(srv)s with Return code: %(ret)s.\u0027),"},{"line_number":350,"context_line":"                       {\u0027snapname\u0027: snapshot_name,"},{"line_number":351,"context_line":"                        \u0027srv\u0027: src_vol,"},{"line_number":352,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_f1874c10","line":349,"range":{"start_line":349,"start_character":74,"end_line":349,"end_character":75},"in_reply_to":"9abb7d3a_a55543c7","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":368,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":369,"context_line":"            err_msg \u003d (_(\u0027_delete_snapshot:Failed to delete snap.\u0027"},{"line_number":370,"context_line":"                         \u0027snap name:%(snapname)s with Return code: \u0027"},{"line_number":371,"context_line":"                         \u0027%(ret)s.\u0027),"},{"line_number":372,"context_line":"                       {\u0027snapname\u0027: snapshot_name,"},{"line_number":373,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":374,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_ERR_SNAP_EXIST_CLONE:"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_85675fb6","line":371,"range":{"start_line":371,"start_character":36,"end_line":371,"end_character":37},"updated":"2016-06-03 13:50:14.000000000","message":", \u003e %","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":368,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":369,"context_line":"            err_msg \u003d (_(\u0027_delete_snapshot:Failed to delete snap.\u0027"},{"line_number":370,"context_line":"                         \u0027snap name:%(snapname)s with Return code: \u0027"},{"line_number":371,"context_line":"                         \u0027%(ret)s.\u0027),"},{"line_number":372,"context_line":"                       {\u0027snapname\u0027: snapshot_name,"},{"line_number":373,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":374,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_ERR_SNAP_EXIST_CLONE:"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_513c602f","line":371,"range":{"start_line":371,"start_character":36,"end_line":371,"end_character":37},"in_reply_to":"9abb7d3a_85675fb6","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":390,"context_line":"        ret \u003d self._call_method(\u0027ExpandVolOnPool\u0027, ext_vol_paras)"},{"line_number":391,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":392,"context_line":"            err_msg \u003d (_(\u0027_extend_volume:Failed to extend vol.vol name:\u0027"},{"line_number":393,"context_line":"                         \u0027%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":394,"context_line":"                       {\u0027name\u0027: volume_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":395,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":396,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_c5d5e71b","line":393,"range":{"start_line":393,"start_character":63,"end_line":393,"end_character":64},"updated":"2016-06-03 13:50:14.000000000","message":", \u003e %","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":390,"context_line":"        ret \u003d self._call_method(\u0027ExpandVolOnPool\u0027, ext_vol_paras)"},{"line_number":391,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":392,"context_line":"            err_msg \u003d (_(\u0027_extend_volume:Failed to extend vol.vol name:\u0027"},{"line_number":393,"context_line":"                         \u0027%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":394,"context_line":"                       {\u0027name\u0027: volume_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":395,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":396,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_b14944d3","line":393,"range":{"start_line":393,"start_character":63,"end_line":393,"end_character":64},"in_reply_to":"9abb7d3a_c5d5e71b","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":417,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":418,"context_line":"            self._delete_volume(cloned_name)"},{"line_number":419,"context_line":"            err_msg \u003d (_(\u0027_cloned_volume:Failed to clone vol.\u0027"},{"line_number":420,"context_line":"                         \u0027vol name:%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":421,"context_line":"                       {\u0027name\u0027: src_name,"},{"line_number":422,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":423,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_a59f035e","line":420,"range":{"start_line":420,"start_character":72,"end_line":420,"end_character":73},"updated":"2016-06-03 13:50:14.000000000","message":", \u003e %","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":417,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":418,"context_line":"            self._delete_volume(cloned_name)"},{"line_number":419,"context_line":"            err_msg \u003d (_(\u0027_cloned_volume:Failed to clone vol.\u0027"},{"line_number":420,"context_line":"                         \u0027vol name:%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":421,"context_line":"                       {\u0027name\u0027: src_name,"},{"line_number":422,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":423,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_111138ad","line":420,"range":{"start_line":420,"start_character":72,"end_line":420,"end_character":73},"in_reply_to":"9abb7d3a_a59f035e","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":428,"context_line":"        cvol_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":429,"context_line":"        if volume[\u0027size\u0027] \u003c src_vref[\u0027size\u0027]:"},{"line_number":430,"context_line":"            err_msg \u003d (_(\u0027:cloned volume size invalid.\u0027"},{"line_number":431,"context_line":"                         \u0027clone siez:%(cloned_size)s src volume size:\u0027"},{"line_number":432,"context_line":"                         \u0027 %(volume_size)s.\u0027),"},{"line_number":433,"context_line":"                       {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":434,"context_line":"                        \u0027volume_size\u0027: int(src_vref[\u0027size\u0027])})"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_65a35b9f","line":431,"range":{"start_line":431,"start_character":32,"end_line":431,"end_character":36},"updated":"2016-06-03 13:50:14.000000000","message":"siez/size as well as spacing issues.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":428,"context_line":"        cvol_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":429,"context_line":"        if volume[\u0027size\u0027] \u003c src_vref[\u0027size\u0027]:"},{"line_number":430,"context_line":"            err_msg \u003d (_(\u0027:cloned volume size invalid.\u0027"},{"line_number":431,"context_line":"                         \u0027clone siez:%(cloned_size)s src volume size:\u0027"},{"line_number":432,"context_line":"                         \u0027 %(volume_size)s.\u0027),"},{"line_number":433,"context_line":"                       {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":434,"context_line":"                        \u0027volume_size\u0027: int(src_vref[\u0027size\u0027])})"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_91f9a850","line":431,"range":{"start_line":431,"start_character":32,"end_line":431,"end_character":36},"in_reply_to":"9abb7d3a_65a35b9f","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":429,"context_line":"        if volume[\u0027size\u0027] \u003c src_vref[\u0027size\u0027]:"},{"line_number":430,"context_line":"            err_msg \u003d (_(\u0027:cloned volume size invalid.\u0027"},{"line_number":431,"context_line":"                         \u0027clone siez:%(cloned_size)s src volume size:\u0027"},{"line_number":432,"context_line":"                         \u0027 %(volume_size)s.\u0027),"},{"line_number":433,"context_line":"                       {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":434,"context_line":"                        \u0027volume_size\u0027: int(src_vref[\u0027size\u0027])})"},{"line_number":435,"context_line":"            raise exception.VolumeDriverException(err_msg)"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_c5b847ca","line":432,"range":{"start_line":432,"start_character":45,"end_line":432,"end_character":46},"updated":"2016-06-03 13:50:14.000000000","message":", \u003e %","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":429,"context_line":"        if volume[\u0027size\u0027] \u003c src_vref[\u0027size\u0027]:"},{"line_number":430,"context_line":"            err_msg \u003d (_(\u0027:cloned volume size invalid.\u0027"},{"line_number":431,"context_line":"                         \u0027clone siez:%(cloned_size)s src volume size:\u0027"},{"line_number":432,"context_line":"                         \u0027 %(volume_size)s.\u0027),"},{"line_number":433,"context_line":"                       {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":434,"context_line":"                        \u0027volume_size\u0027: int(src_vref[\u0027size\u0027])})"},{"line_number":435,"context_line":"            raise exception.VolumeDriverException(err_msg)"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_f1946ce9","line":432,"range":{"start_line":432,"start_character":45,"end_line":432,"end_character":46},"in_reply_to":"9abb7d3a_c5b847ca","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":460,"context_line":"        if volume[\u0027size\u0027] \u003c snapshot[\u0027volume_size\u0027]:"},{"line_number":461,"context_line":"            err_msg \u003d ("},{"line_number":462,"context_line":"                _(\u0027:cloned volume size invalid.\u0027"},{"line_number":463,"context_line":"                  \u0027clone siez:%(cloned_size)s src volume size: \u0027"},{"line_number":464,"context_line":"                  \u0027%(volume_size)s.\u0027),"},{"line_number":465,"context_line":"                {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":466,"context_line":"                 \u0027volume_size\u0027: int(snapshot[\u0027volume_size\u0027])})"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_85d63fef","line":463,"updated":"2016-06-03 13:50:14.000000000","message":"Same comments as above.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":460,"context_line":"        if volume[\u0027size\u0027] \u003c snapshot[\u0027volume_size\u0027]:"},{"line_number":461,"context_line":"            err_msg \u003d ("},{"line_number":462,"context_line":"                _(\u0027:cloned volume size invalid.\u0027"},{"line_number":463,"context_line":"                  \u0027clone siez:%(cloned_size)s src volume size: \u0027"},{"line_number":464,"context_line":"                  \u0027%(volume_size)s.\u0027),"},{"line_number":465,"context_line":"                {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":466,"context_line":"                 \u0027volume_size\u0027: int(snapshot[\u0027volume_size\u0027])})"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_518620ba","line":463,"in_reply_to":"9abb7d3a_85d63fef","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"79aaad8ac229dc4e05d1c4b369172cb0d45dc26a","unresolved":false,"context_lines":[{"line_number":505,"context_line":"        return self._stats"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"    def _translate_host_name(self, host_name):"},{"line_number":508,"context_line":"        new_name \u003d \u0027host_\u0027 + six.text_type(hash(host_name))"},{"line_number":509,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":510,"context_line":"        LOG.debug(\u0027_translate_host_name:Name in cinder: %(old)s, \u0027"},{"line_number":511,"context_line":"                  \u0027new name in storage system: %(new)s.\u0027 %"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_5df25fd3","line":508,"updated":"2016-06-03 16:10:41.000000000","message":"hash() is not the correct way to do this.  You need to use something like an md5 if you just need a stable identifier from the string.\n\n(Also maybe add a comment about what this is is, why and how it works.)","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8e429ff40d0ac23a7b6ae46c67d55e398217081d","unresolved":false,"context_lines":[{"line_number":505,"context_line":"        return self._stats"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"    def _translate_host_name(self, host_name):"},{"line_number":508,"context_line":"        new_name \u003d \u0027host_\u0027 + six.text_type(hash(host_name))"},{"line_number":509,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":510,"context_line":"        LOG.debug(\u0027_translate_host_name:Name in cinder: %(old)s, \u0027"},{"line_number":511,"context_line":"                  \u0027new name in storage system: %(new)s.\u0027 %"}],"source_content_type":"text/x-python","patch_set":18,"id":"5a9d85d2_d4b66089","line":508,"in_reply_to":"7aa08908_91dcc513","updated":"2016-06-20 20:29:24.000000000","message":"hash() will not work for this.  It is not a stable string hash function.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"49e403ee43dc8e1d7137a3a0db5e53ef5d50cfae","unresolved":false,"context_lines":[{"line_number":505,"context_line":"        return self._stats"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"    def _translate_host_name(self, host_name):"},{"line_number":508,"context_line":"        new_name \u003d \u0027host_\u0027 + six.text_type(hash(host_name))"},{"line_number":509,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":510,"context_line":"        LOG.debug(\u0027_translate_host_name:Name in cinder: %(old)s, \u0027"},{"line_number":511,"context_line":"                  \u0027new name in storage system: %(new)s.\u0027 %"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_91dcc513","line":508,"in_reply_to":"9abb7d3a_5df25fd3","updated":"2016-06-07 03:43:29.000000000","message":"We want to get a suffix from the host name.Because the name length is limited in the system, we have chosen Hash().","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":508,"context_line":"        new_name \u003d \u0027host_\u0027 + six.text_type(hash(host_name))"},{"line_number":509,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":510,"context_line":"        LOG.debug(\u0027_translate_host_name:Name in cinder: %(old)s, \u0027"},{"line_number":511,"context_line":"                  \u0027new name in storage system: %(new)s.\u0027 %"},{"line_number":512,"context_line":"                  {\u0027old\u0027: host_name, \u0027new\u0027: new_name})"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"        return new_name"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_a520a3f8","line":511,"range":{"start_line":511,"start_character":56,"end_line":511,"end_character":58},"updated":"2016-06-03 13:50:14.000000000","message":"% \u003e ,","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"5cee9da9e91dfe7921dced8eb2a1d6724c3fc576","unresolved":false,"context_lines":[{"line_number":508,"context_line":"        new_name \u003d \u0027host_\u0027 + six.text_type(hash(host_name))"},{"line_number":509,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":510,"context_line":"        LOG.debug(\u0027_translate_host_name:Name in cinder: %(old)s, \u0027"},{"line_number":511,"context_line":"                  \u0027new name in storage system: %(new)s.\u0027 %"},{"line_number":512,"context_line":"                  {\u0027old\u0027: host_name, \u0027new\u0027: new_name})"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"        return new_name"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_66fefd6c","line":511,"range":{"start_line":511,"start_character":56,"end_line":511,"end_character":58},"in_reply_to":"9abb7d3a_a520a3f8","updated":"2016-06-06 03:55:06.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":519,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"        LOG.debug(\u0027_translate_volume_name:Name in cinder: %(old)s, \u0027"},{"line_number":522,"context_line":"                  \u0027new name in storage system: %(new)s.\u0027 %"},{"line_number":523,"context_line":"                  {\u0027old\u0027: vol_name, \u0027new\u0027: new_name})"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"        return new_name"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_0586cfda","line":522,"range":{"start_line":522,"start_character":56,"end_line":522,"end_character":58},"updated":"2016-06-03 13:50:14.000000000","message":"% \u003e ,","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"5cee9da9e91dfe7921dced8eb2a1d6724c3fc576","unresolved":false,"context_lines":[{"line_number":519,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"        LOG.debug(\u0027_translate_volume_name:Name in cinder: %(old)s, \u0027"},{"line_number":522,"context_line":"                  \u0027new name in storage system: %(new)s.\u0027 %"},{"line_number":523,"context_line":"                  {\u0027old\u0027: vol_name, \u0027new\u0027: new_name})"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"        return new_name"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_e6f2ed99","line":522,"range":{"start_line":522,"start_character":56,"end_line":522,"end_character":58},"in_reply_to":"9abb7d3a_0586cfda","updated":"2016-06-06 03:55:06.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":539,"context_line":"        else:"},{"line_number":540,"context_line":"            err_msg \u003d (_(\u0027_get_lunid_from_vol:Get lunid from vol fail.\u0027"},{"line_number":541,"context_line":"                         \u0027Group name:%(name)s vol:%(vol)s \u0027"},{"line_number":542,"context_line":"                         \u0027with Return code: %(ret)s.\u0027),"},{"line_number":543,"context_line":"                       {\u0027name\u0027: map_group_name,"},{"line_number":544,"context_line":"                        \u0027vol\u0027: volume_name,"},{"line_number":545,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_a5770301","line":542,"range":{"start_line":542,"start_character":54,"end_line":542,"end_character":55},"updated":"2016-06-03 13:50:14.000000000","message":", \u003e %","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"5cee9da9e91dfe7921dced8eb2a1d6724c3fc576","unresolved":false,"context_lines":[{"line_number":539,"context_line":"        else:"},{"line_number":540,"context_line":"            err_msg \u003d (_(\u0027_get_lunid_from_vol:Get lunid from vol fail.\u0027"},{"line_number":541,"context_line":"                         \u0027Group name:%(name)s vol:%(vol)s \u0027"},{"line_number":542,"context_line":"                         \u0027with Return code: %(ret)s.\u0027),"},{"line_number":543,"context_line":"                       {\u0027name\u0027: map_group_name,"},{"line_number":544,"context_line":"                        \u0027vol\u0027: volume_name,"},{"line_number":545,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_e6202dfa","line":542,"range":{"start_line":542,"start_character":54,"end_line":542,"end_character":55},"in_reply_to":"9abb7d3a_a5770301","updated":"2016-06-06 03:55:06.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":554,"context_line":"        elif ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_ERR_GROUP_NOT_EXIST:"},{"line_number":555,"context_line":"            return -1"},{"line_number":556,"context_line":"        else:"},{"line_number":557,"context_line":"            err_msg \u003d (_(\u0027_map_lun:Get group info fail.\u0027"},{"line_number":558,"context_line":"                         \u0027Group name:%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":559,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":560,"context_line":"            raise exception.VolumeDriverException(err_msg)"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_c5c96727","line":557,"updated":"2016-06-03 13:50:14.000000000","message":"Needs space at the end.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":554,"context_line":"        elif ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_ERR_GROUP_NOT_EXIST:"},{"line_number":555,"context_line":"            return -1"},{"line_number":556,"context_line":"        else:"},{"line_number":557,"context_line":"            err_msg \u003d (_(\u0027_map_lun:Get group info fail.\u0027"},{"line_number":558,"context_line":"                         \u0027Group name:%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":559,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":560,"context_line":"            raise exception.VolumeDriverException(err_msg)"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_912c08ad","line":557,"in_reply_to":"9abb7d3a_c5c96727","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":555,"context_line":"            return -1"},{"line_number":556,"context_line":"        else:"},{"line_number":557,"context_line":"            err_msg \u003d (_(\u0027_map_lun:Get group info fail.\u0027"},{"line_number":558,"context_line":"                         \u0027Group name:%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":559,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":560,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":561,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_25d153ce","line":558,"range":{"start_line":558,"start_character":74,"end_line":558,"end_character":75},"updated":"2016-06-03 13:50:14.000000000","message":", \u003e %","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"5cee9da9e91dfe7921dced8eb2a1d6724c3fc576","unresolved":false,"context_lines":[{"line_number":555,"context_line":"            return -1"},{"line_number":556,"context_line":"        else:"},{"line_number":557,"context_line":"            err_msg \u003d (_(\u0027_map_lun:Get group info fail.\u0027"},{"line_number":558,"context_line":"                         \u0027Group name:%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":559,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":560,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":561,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_267995fd","line":558,"range":{"start_line":558,"start_character":74,"end_line":558,"end_character":75},"in_reply_to":"9abb7d3a_25d153ce","updated":"2016-06-06 03:55:06.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":567,"context_line":"        ret \u003d self._call_method(\u0027DelMapGrp\u0027, map_grp_info)"},{"line_number":568,"context_line":"        if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_SUCCESS,"},{"line_number":569,"context_line":"                                     zte_pub.ZTE_ERR_GROUP_NOT_EXIST]:"},{"line_number":570,"context_line":"            err_msg \u003d (_(\u0027_delete_group:Del group fail.\u0027"},{"line_number":571,"context_line":"                         \u0027Group name:%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":572,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":573,"context_line":"            raise exception.VolumeDriverException(err_msg)"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_e5ed8b8f","line":570,"updated":"2016-06-03 13:50:14.000000000","message":"Needs space at the end.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"5cee9da9e91dfe7921dced8eb2a1d6724c3fc576","unresolved":false,"context_lines":[{"line_number":567,"context_line":"        ret \u003d self._call_method(\u0027DelMapGrp\u0027, map_grp_info)"},{"line_number":568,"context_line":"        if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_SUCCESS,"},{"line_number":569,"context_line":"                                     zte_pub.ZTE_ERR_GROUP_NOT_EXIST]:"},{"line_number":570,"context_line":"            err_msg \u003d (_(\u0027_delete_group:Del group fail.\u0027"},{"line_number":571,"context_line":"                         \u0027Group name:%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":572,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":573,"context_line":"            raise exception.VolumeDriverException(err_msg)"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_468821e8","line":570,"in_reply_to":"9abb7d3a_e5ed8b8f","updated":"2016-06-06 03:55:06.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":568,"context_line":"        if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_SUCCESS,"},{"line_number":569,"context_line":"                                     zte_pub.ZTE_ERR_GROUP_NOT_EXIST]:"},{"line_number":570,"context_line":"            err_msg \u003d (_(\u0027_delete_group:Del group fail.\u0027"},{"line_number":571,"context_line":"                         \u0027Group name:%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":572,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":573,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":574,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_25e8337c","line":571,"range":{"start_line":571,"start_character":74,"end_line":571,"end_character":75},"updated":"2016-06-03 13:50:14.000000000","message":", \u003e %","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"5cee9da9e91dfe7921dced8eb2a1d6724c3fc576","unresolved":false,"context_lines":[{"line_number":568,"context_line":"        if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_SUCCESS,"},{"line_number":569,"context_line":"                                     zte_pub.ZTE_ERR_GROUP_NOT_EXIST]:"},{"line_number":570,"context_line":"            err_msg \u003d (_(\u0027_delete_group:Del group fail.\u0027"},{"line_number":571,"context_line":"                         \u0027Group name:%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":572,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":573,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":574,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_665a7d85","line":571,"range":{"start_line":571,"start_character":74,"end_line":571,"end_character":75},"in_reply_to":"9abb7d3a_25e8337c","updated":"2016-06-06 03:55:06.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":637,"context_line":""},{"line_number":638,"context_line":"        self._stats \u003d data"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"    def _create_group(self, initiator_name, map_group_name):"},{"line_number":641,"context_line":"        pass"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"    def _map_delete_host(self, map_group_name):"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_a59383f9","line":640,"updated":"2016-06-03 13:50:14.000000000","message":"Do these need to be implemented yet? If they are not used they should be removed.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"49e403ee43dc8e1d7137a3a0db5e53ef5d50cfae","unresolved":false,"context_lines":[{"line_number":637,"context_line":""},{"line_number":638,"context_line":"        self._stats \u003d data"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"    def _create_group(self, initiator_name, map_group_name):"},{"line_number":641,"context_line":"        pass"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"    def _map_delete_host(self, map_group_name):"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_7ec4885e","line":640,"in_reply_to":"9abb7d3a_a59383f9","updated":"2016-06-07 03:43:29.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":653,"context_line":"    def _get_net_cfg_ips(self):"},{"line_number":654,"context_line":"        ret \u003d self._call_method(\u0027GetSystemNetCfg\u0027)"},{"line_number":655,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":656,"context_line":"            err_msg \u003d (_(\u0027get_Net_Cfg fail.with Return code: %(ret)s.\u0027),"},{"line_number":657,"context_line":"                       {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":658,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":659,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_c565e71d","line":656,"range":{"start_line":656,"start_character":71,"end_line":656,"end_character":72},"updated":"2016-06-03 13:50:14.000000000","message":", \u003e %","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"5cee9da9e91dfe7921dced8eb2a1d6724c3fc576","unresolved":false,"context_lines":[{"line_number":653,"context_line":"    def _get_net_cfg_ips(self):"},{"line_number":654,"context_line":"        ret \u003d self._call_method(\u0027GetSystemNetCfg\u0027)"},{"line_number":655,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":656,"context_line":"            err_msg \u003d (_(\u0027get_Net_Cfg fail.with Return code: %(ret)s.\u0027),"},{"line_number":657,"context_line":"                       {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":658,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":659,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_86516965","line":656,"range":{"start_line":656,"start_character":71,"end_line":656,"end_character":72},"in_reply_to":"9abb7d3a_c565e71d","updated":"2016-06-06 03:55:06.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":671,"context_line":"        initiator_name \u003d connector[\u0027initiator\u0027]"},{"line_number":672,"context_line":"        volume_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"        LOG.debug(\u0027initialize_connection: Volume name: %(volume)s.\u0027"},{"line_number":675,"context_line":"                  \u0027Initiator name: %(ini)s.\u0027 %"},{"line_number":676,"context_line":"                  {\u0027volume\u0027: volume_name,"},{"line_number":677,"context_line":"                   \u0027ini\u0027: initiator_name})"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_857c7fb6","line":674,"updated":"2016-06-03 13:50:14.000000000","message":"Needs space at the end.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"5cee9da9e91dfe7921dced8eb2a1d6724c3fc576","unresolved":false,"context_lines":[{"line_number":671,"context_line":"        initiator_name \u003d connector[\u0027initiator\u0027]"},{"line_number":672,"context_line":"        volume_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"        LOG.debug(\u0027initialize_connection: Volume name: %(volume)s.\u0027"},{"line_number":675,"context_line":"                  \u0027Initiator name: %(ini)s.\u0027 %"},{"line_number":676,"context_line":"                  {\u0027volume\u0027: volume_name,"},{"line_number":677,"context_line":"                   \u0027ini\u0027: initiator_name})"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_86d849f1","line":674,"in_reply_to":"9abb7d3a_857c7fb6","updated":"2016-06-06 03:55:06.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":672,"context_line":"        volume_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"        LOG.debug(\u0027initialize_connection: Volume name: %(volume)s.\u0027"},{"line_number":675,"context_line":"                  \u0027Initiator name: %(ini)s.\u0027 %"},{"line_number":676,"context_line":"                  {\u0027volume\u0027: volume_name,"},{"line_number":677,"context_line":"                   \u0027ini\u0027: initiator_name})"},{"line_number":678,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_2544b372","line":675,"range":{"start_line":675,"start_character":44,"end_line":675,"end_character":46},"updated":"2016-06-03 13:50:14.000000000","message":", \u003e %","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"5cee9da9e91dfe7921dced8eb2a1d6724c3fc576","unresolved":false,"context_lines":[{"line_number":672,"context_line":"        volume_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"        LOG.debug(\u0027initialize_connection: Volume name: %(volume)s.\u0027"},{"line_number":675,"context_line":"                  \u0027Initiator name: %(ini)s.\u0027 %"},{"line_number":676,"context_line":"                  {\u0027volume\u0027: volume_name,"},{"line_number":677,"context_line":"                   \u0027ini\u0027: initiator_name})"},{"line_number":678,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_26eeb58b","line":675,"range":{"start_line":675,"start_character":44,"end_line":675,"end_character":46},"in_reply_to":"9abb7d3a_2544b372","updated":"2016-06-06 03:55:06.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":691,"context_line":"                    target_portals[iqn].append(\u0027%s:%s\u0027 % (ip, \u00273260\u0027))"},{"line_number":692,"context_line":"        if not target_iqns:"},{"line_number":693,"context_line":"            msg \u003d (_(\u0027Failed to get target ip or iqn \u0027"},{"line_number":694,"context_line":"                     \u0027for initiator %(ini)s, please check config file.\u0027),"},{"line_number":695,"context_line":"                   {\u0027ini\u0027: initiator_name})"},{"line_number":696,"context_line":"            raise exception.VolumeDriverException(reason\u003dmsg)"},{"line_number":697,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_053ecfd9","line":694,"range":{"start_line":694,"start_character":72,"end_line":694,"end_character":73},"updated":"2016-06-03 13:50:14.000000000","message":", \u003e %","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"5cee9da9e91dfe7921dced8eb2a1d6724c3fc576","unresolved":false,"context_lines":[{"line_number":691,"context_line":"                    target_portals[iqn].append(\u0027%s:%s\u0027 % (ip, \u00273260\u0027))"},{"line_number":692,"context_line":"        if not target_iqns:"},{"line_number":693,"context_line":"            msg \u003d (_(\u0027Failed to get target ip or iqn \u0027"},{"line_number":694,"context_line":"                     \u0027for initiator %(ini)s, please check config file.\u0027),"},{"line_number":695,"context_line":"                   {\u0027ini\u0027: initiator_name})"},{"line_number":696,"context_line":"            raise exception.VolumeDriverException(reason\u003dmsg)"},{"line_number":697,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_269515e4","line":694,"range":{"start_line":694,"start_character":72,"end_line":694,"end_character":73},"in_reply_to":"9abb7d3a_053ecfd9","updated":"2016-06-06 03:55:06.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":718,"context_line":"        \"\"\"Delete map between a volume and a host.\"\"\""},{"line_number":719,"context_line":"        initiator_name \u003d connector[\u0027initiator\u0027]"},{"line_number":720,"context_line":"        volume_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":721,"context_line":"        LOG.debug(\u0027volume name: %(volume)s, initiator name: %(ini)s.\u0027 %"},{"line_number":722,"context_line":"                  {\u0027volume\u0027: volume_name,"},{"line_number":723,"context_line":"                   \u0027ini\u0027: initiator_name})"},{"line_number":724,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_65251bc1","line":721,"range":{"start_line":721,"start_character":69,"end_line":721,"end_character":71},"updated":"2016-06-03 13:50:14.000000000","message":"% \u003e ,","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":718,"context_line":"        \"\"\"Delete map between a volume and a host.\"\"\""},{"line_number":719,"context_line":"        initiator_name \u003d connector[\u0027initiator\u0027]"},{"line_number":720,"context_line":"        volume_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":721,"context_line":"        LOG.debug(\u0027volume name: %(volume)s, initiator name: %(ini)s.\u0027 %"},{"line_number":722,"context_line":"                  {\u0027volume\u0027: volume_name,"},{"line_number":723,"context_line":"                   \u0027ini\u0027: initiator_name})"},{"line_number":724,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_26ba35e2","line":721,"range":{"start_line":721,"start_character":69,"end_line":721,"end_character":71},"in_reply_to":"9abb7d3a_65251bc1","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":750,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":751,"context_line":""},{"line_number":752,"context_line":"        LOG.debug(\u0027_translate_grp_name:Name in cinder: %(old)s, \u0027"},{"line_number":753,"context_line":"                  \u0027new name in storage system: %(new)s.\u0027 %"},{"line_number":754,"context_line":"                  {\u0027old\u0027: grp_name,"},{"line_number":755,"context_line":"                   \u0027new\u0027: new_name})"},{"line_number":756,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_b8b8c6c8","line":753,"range":{"start_line":753,"start_character":56,"end_line":753,"end_character":58},"updated":"2016-06-03 13:50:14.000000000","message":"% \u003e ,","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":750,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":751,"context_line":""},{"line_number":752,"context_line":"        LOG.debug(\u0027_translate_grp_name:Name in cinder: %(old)s, \u0027"},{"line_number":753,"context_line":"                  \u0027new name in storage system: %(new)s.\u0027 %"},{"line_number":754,"context_line":"                  {\u0027old\u0027: grp_name,"},{"line_number":755,"context_line":"                   \u0027new\u0027: new_name})"},{"line_number":756,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_462b0131","line":753,"range":{"start_line":753,"start_character":56,"end_line":753,"end_character":58},"in_reply_to":"9abb7d3a_b8b8c6c8","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":757,"context_line":"        return new_name"},{"line_number":758,"context_line":""},{"line_number":759,"context_line":"    def _get_target_ip_ctrl(self, target_ip):"},{"line_number":760,"context_line":"        LOG.debug(\u0027_get_target_ip_ctrl:target IP is %s.\u0027 % target_ip)"},{"line_number":761,"context_line":"        ret \u003d self._call_method(\u0027GetSystemNetCfg\u0027)"},{"line_number":762,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":763,"context_line":"            err_msg \u003d (_(\u0027_get_target_ip_ctrl:get iscsi port list fail. \u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_98c4e240","line":760,"range":{"start_line":760,"start_character":57,"end_line":760,"end_character":58},"updated":"2016-06-03 13:50:14.000000000","message":"% \u003e ,","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":757,"context_line":"        return new_name"},{"line_number":758,"context_line":""},{"line_number":759,"context_line":"    def _get_target_ip_ctrl(self, target_ip):"},{"line_number":760,"context_line":"        LOG.debug(\u0027_get_target_ip_ctrl:target IP is %s.\u0027 % target_ip)"},{"line_number":761,"context_line":"        ret \u003d self._call_method(\u0027GetSystemNetCfg\u0027)"},{"line_number":762,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":763,"context_line":"            err_msg \u003d (_(\u0027_get_target_ip_ctrl:get iscsi port list fail. \u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_86f689d5","line":760,"range":{"start_line":760,"start_character":57,"end_line":760,"end_character":58},"in_reply_to":"9abb7d3a_98c4e240","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":761,"context_line":"        ret \u003d self._call_method(\u0027GetSystemNetCfg\u0027)"},{"line_number":762,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":763,"context_line":"            err_msg \u003d (_(\u0027_get_target_ip_ctrl:get iscsi port list fail. \u0027"},{"line_number":764,"context_line":"                         \u0027with Return code: %(ret)s.\u0027),"},{"line_number":765,"context_line":"                       {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":766,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":767,"context_line":"        count \u003d ret[\u0027data\u0027][\u0027sdwDeviceNum\u0027]"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_18e752e5","line":764,"range":{"start_line":764,"start_character":54,"end_line":764,"end_character":55},"updated":"2016-06-03 13:50:14.000000000","message":", \u003e %","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":761,"context_line":"        ret \u003d self._call_method(\u0027GetSystemNetCfg\u0027)"},{"line_number":762,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":763,"context_line":"            err_msg \u003d (_(\u0027_get_target_ip_ctrl:get iscsi port list fail. \u0027"},{"line_number":764,"context_line":"                         \u0027with Return code: %(ret)s.\u0027),"},{"line_number":765,"context_line":"                       {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":766,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":767,"context_line":"        count \u003d ret[\u0027data\u0027][\u0027sdwDeviceNum\u0027]"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_83231b05","line":764,"range":{"start_line":764,"start_character":54,"end_line":764,"end_character":55},"in_reply_to":"9abb7d3a_18e752e5","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"79aaad8ac229dc4e05d1c4b369172cb0d45dc26a","unresolved":false,"context_lines":[{"line_number":769,"context_line":"            systemnetcfg \u003d ret[\u0027data\u0027][\u0027tSystemNetCfg\u0027][index]"},{"line_number":770,"context_line":"            if target_ip \u003d\u003d systemnetcfg[\u0027cIpAddr\u0027]:"},{"line_number":771,"context_line":"                return systemnetcfg[\u0027udwCtrlId\u0027]"},{"line_number":772,"context_line":"        return -1"},{"line_number":773,"context_line":""},{"line_number":774,"context_line":"    def _get_tgt_iqn(self, iscsiip):"},{"line_number":775,"context_line":"        # as the given iscsiip,we need to find it\u0027s ctrl number"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_7d77639f","line":772,"updated":"2016-06-03 16:10:41.000000000","message":"This should raise an exception rather than returning -1.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"49e403ee43dc8e1d7137a3a0db5e53ef5d50cfae","unresolved":false,"context_lines":[{"line_number":769,"context_line":"            systemnetcfg \u003d ret[\u0027data\u0027][\u0027tSystemNetCfg\u0027][index]"},{"line_number":770,"context_line":"            if target_ip \u003d\u003d systemnetcfg[\u0027cIpAddr\u0027]:"},{"line_number":771,"context_line":"                return systemnetcfg[\u0027udwCtrlId\u0027]"},{"line_number":772,"context_line":"        return -1"},{"line_number":773,"context_line":""},{"line_number":774,"context_line":"    def _get_tgt_iqn(self, iscsiip):"},{"line_number":775,"context_line":"        # as the given iscsiip,we need to find it\u0027s ctrl number"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_fbeb6a76","line":772,"in_reply_to":"9abb7d3a_7d77639f","updated":"2016-06-07 03:43:29.000000000","message":"If we do not find here, it doesn\u0027t matter. We\u0027ll try the others.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":776,"context_line":"        ip_ctrl \u003d self._get_target_ip_ctrl(iscsiip)"},{"line_number":777,"context_line":""},{"line_number":778,"context_line":"        if -1 \u003d\u003d ip_ctrl:"},{"line_number":779,"context_line":"            LOG.exception(_LE(\u0027_get_tgt_iqn:get iscsi ip ctrl fail,\u0027"},{"line_number":780,"context_line":"                              \u0027IP is %s.\u0027), iscsiip)"},{"line_number":781,"context_line":"            return None"},{"line_number":782,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_38f336a1","line":779,"updated":"2016-06-03 13:50:14.000000000","message":"Need space at end.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":776,"context_line":"        ip_ctrl \u003d self._get_target_ip_ctrl(iscsiip)"},{"line_number":777,"context_line":""},{"line_number":778,"context_line":"        if -1 \u003d\u003d ip_ctrl:"},{"line_number":779,"context_line":"            LOG.exception(_LE(\u0027_get_tgt_iqn:get iscsi ip ctrl fail,\u0027"},{"line_number":780,"context_line":"                              \u0027IP is %s.\u0027), iscsiip)"},{"line_number":781,"context_line":"            return None"},{"line_number":782,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_c346c3be","line":779,"in_reply_to":"9abb7d3a_38f336a1","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":20146,"name":"yuyafei","email":"yu.yafei@foxmail.com","username":"yuyafei"},"change_message_id":"57cb105e453d42ee4e67aa95ce84857f61a70140","unresolved":false,"context_lines":[{"line_number":792,"context_line":"                return target_info[index][\u0027cTgtName\u0027]"},{"line_number":793,"context_line":"        return None"},{"line_number":794,"context_line":""},{"line_number":795,"context_line":"    def _create_group(self, initiator_name, map_group_name):"},{"line_number":796,"context_line":""},{"line_number":797,"context_line":"        map_grp_info \u003d {\u0027cMapGrpName\u0027: map_group_name}"},{"line_number":798,"context_line":"        ret \u003d self._call_method(\u0027CreateMapGrp\u0027, map_grp_info)"}],"source_content_type":"text/x-python","patch_set":18,"id":"bab6814e_1f8cecd8","line":795,"range":{"start_line":795,"start_character":8,"end_line":795,"end_character":21},"updated":"2016-05-27 01:57:08.000000000","message":"I think we need debug info in this function.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"f0032af680ffe94098dd507ad4b78bd95b341899","unresolved":false,"context_lines":[{"line_number":792,"context_line":"                return target_info[index][\u0027cTgtName\u0027]"},{"line_number":793,"context_line":"        return None"},{"line_number":794,"context_line":""},{"line_number":795,"context_line":"    def _create_group(self, initiator_name, map_group_name):"},{"line_number":796,"context_line":""},{"line_number":797,"context_line":"        map_grp_info \u003d {\u0027cMapGrpName\u0027: map_group_name}"},{"line_number":798,"context_line":"        ret \u003d self._call_method(\u0027CreateMapGrp\u0027, map_grp_info)"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_4f520ddf","line":795,"range":{"start_line":795,"start_character":8,"end_line":795,"end_character":21},"in_reply_to":"bab6814e_1f8cecd8","updated":"2016-05-27 03:26:18.000000000","message":"We will consider this in the next version. Thank you.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":804,"context_line":"                         \u0027cPortName\u0027: initiator_name,"},{"line_number":805,"context_line":"                         \u0027sdwMultiPathMode\u0027: 1, \u0027cMulChapPass\u0027: \u0027\u0027}"},{"line_number":806,"context_line":""},{"line_number":807,"context_line":"            \u0027\u0027\u0027 create host \u0027\u0027\u0027"},{"line_number":808,"context_line":"            ret \u003d self._call_method(\u0027CreateHost\u0027, host_info)"},{"line_number":809,"context_line":"            if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_SUCCESS,"},{"line_number":810,"context_line":"                                         zte_pub.ZTE_ERR_HOSTNAME_EXIST,"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_38685621","line":807,"range":{"start_line":807,"start_character":12,"end_line":807,"end_character":15},"updated":"2016-06-03 13:50:14.000000000","message":"Just use normal line comments inline, not this docstring like comment format.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":804,"context_line":"                         \u0027cPortName\u0027: initiator_name,"},{"line_number":805,"context_line":"                         \u0027sdwMultiPathMode\u0027: 1, \u0027cMulChapPass\u0027: \u0027\u0027}"},{"line_number":806,"context_line":""},{"line_number":807,"context_line":"            \u0027\u0027\u0027 create host \u0027\u0027\u0027"},{"line_number":808,"context_line":"            ret \u003d self._call_method(\u0027CreateHost\u0027, host_info)"},{"line_number":809,"context_line":"            if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_SUCCESS,"},{"line_number":810,"context_line":"                                         zte_pub.ZTE_ERR_HOSTNAME_EXIST,"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_63354f45","line":807,"range":{"start_line":807,"start_character":12,"end_line":807,"end_character":15},"in_reply_to":"9abb7d3a_38685621","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":812,"context_line":"                                         zte_pub.ZTE_ERR_PORT_EXIST_OLD]:"},{"line_number":813,"context_line":"                err_msg \u003d ("},{"line_number":814,"context_line":"                    _(\u0027create host fail.host name:%(name)s \u0027"},{"line_number":815,"context_line":"                      \u0027with Return code: %(ret)s.\u0027),"},{"line_number":816,"context_line":"                    {\u0027name\u0027: host_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":817,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":818,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_b862863b","line":815,"range":{"start_line":815,"start_character":51,"end_line":815,"end_character":52},"updated":"2016-06-03 13:50:14.000000000","message":", \u003e %","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":812,"context_line":"                                         zte_pub.ZTE_ERR_PORT_EXIST_OLD]:"},{"line_number":813,"context_line":"                err_msg \u003d ("},{"line_number":814,"context_line":"                    _(\u0027create host fail.host name:%(name)s \u0027"},{"line_number":815,"context_line":"                      \u0027with Return code: %(ret)s.\u0027),"},{"line_number":816,"context_line":"                    {\u0027name\u0027: host_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":817,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":818,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_c3efe3ae","line":815,"range":{"start_line":815,"start_character":51,"end_line":815,"end_character":52},"in_reply_to":"9abb7d3a_b862863b","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":828,"context_line":"                                         zte_pub.ZTE_ERR_PORT_EXIST,"},{"line_number":829,"context_line":"                                         zte_pub.ZTE_ERR_PORT_EXIST_OLD]:"},{"line_number":830,"context_line":"                err_msg \u003d (_(\u0027_create_group:add port fail.port name: \u0027"},{"line_number":831,"context_line":"                             \u0027%(name)s  with Return code: %(ret)s.\u0027),"},{"line_number":832,"context_line":"                           {\u0027name\u0027: initiator_name,"},{"line_number":833,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":834,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_f8d36ed3","line":831,"range":{"start_line":831,"start_character":68,"end_line":831,"end_character":69},"updated":"2016-06-03 13:50:14.000000000","message":", \u003e %","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":828,"context_line":"                                         zte_pub.ZTE_ERR_PORT_EXIST,"},{"line_number":829,"context_line":"                                         zte_pub.ZTE_ERR_PORT_EXIST_OLD]:"},{"line_number":830,"context_line":"                err_msg \u003d (_(\u0027_create_group:add port fail.port name: \u0027"},{"line_number":831,"context_line":"                             \u0027%(name)s  with Return code: %(ret)s.\u0027),"},{"line_number":832,"context_line":"                           {\u0027name\u0027: initiator_name,"},{"line_number":833,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":834,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_e3f2df99","line":831,"range":{"start_line":831,"start_character":68,"end_line":831,"end_character":69},"in_reply_to":"9abb7d3a_f8d36ed3","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":843,"context_line":"                self._delete_group(map_group_name)"},{"line_number":844,"context_line":"                err_msg \u003d (_(\u0027_create_group:add host to group fail. \u0027"},{"line_number":845,"context_line":"                             \u0027group name:%(name)s init name :%(init)s \u0027"},{"line_number":846,"context_line":"                             \u0027with Return code: %(ret)s.\u0027),"},{"line_number":847,"context_line":"                           {\u0027name\u0027: map_group_name,"},{"line_number":848,"context_line":"                            \u0027init\u0027: host_name,"},{"line_number":849,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_78e01e97","line":846,"range":{"start_line":846,"start_character":58,"end_line":846,"end_character":59},"updated":"2016-06-03 13:50:14.000000000","message":", \u003e %","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":843,"context_line":"                self._delete_group(map_group_name)"},{"line_number":844,"context_line":"                err_msg \u003d (_(\u0027_create_group:add host to group fail. \u0027"},{"line_number":845,"context_line":"                             \u0027group name:%(name)s init name :%(init)s \u0027"},{"line_number":846,"context_line":"                             \u0027with Return code: %(ret)s.\u0027),"},{"line_number":847,"context_line":"                           {\u0027name\u0027: map_group_name,"},{"line_number":848,"context_line":"                            \u0027init\u0027: host_name,"},{"line_number":849,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_2304e77c","line":846,"range":{"start_line":846,"start_character":58,"end_line":846,"end_character":59},"in_reply_to":"9abb7d3a_78e01e97","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":850,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":851,"context_line":"        else:"},{"line_number":852,"context_line":"            err_msg \u003d (_(\u0027create group fail.group name:%(name)s \u0027"},{"line_number":853,"context_line":"                         \u0027with Return code: %(ret)s.\u0027),"},{"line_number":854,"context_line":"                       {\u0027name\u0027: map_group_name,"},{"line_number":855,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":856,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_d894aae9","line":853,"range":{"start_line":853,"start_character":54,"end_line":853,"end_character":55},"updated":"2016-06-03 13:50:14.000000000","message":", \u003e %","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":850,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":851,"context_line":"        else:"},{"line_number":852,"context_line":"            err_msg \u003d (_(\u0027create group fail.group name:%(name)s \u0027"},{"line_number":853,"context_line":"                         \u0027with Return code: %(ret)s.\u0027),"},{"line_number":854,"context_line":"                       {\u0027name\u0027: map_group_name,"},{"line_number":855,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":856,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_a3d1f7fd","line":853,"range":{"start_line":853,"start_character":54,"end_line":853,"end_character":55},"in_reply_to":"9abb7d3a_d894aae9","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":20146,"name":"yuyafei","email":"yu.yafei@foxmail.com","username":"yuyafei"},"change_message_id":"57cb105e453d42ee4e67aa95ce84857f61a70140","unresolved":false,"context_lines":[{"line_number":855,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":856,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":857,"context_line":""},{"line_number":858,"context_line":"    def _map_delete_lun(self, lunid, initiator_name):"},{"line_number":859,"context_line":"        map_group_name \u003d self._translate_grp_name(initiator_name)"},{"line_number":860,"context_line":""},{"line_number":861,"context_line":"        # lunid is -1,means lun not exist,no need to delete"}],"source_content_type":"text/x-python","patch_set":18,"id":"bab6814e_9fbe1c63","line":858,"range":{"start_line":858,"start_character":8,"end_line":858,"end_character":23},"updated":"2016-05-27 01:57:08.000000000","message":"I think we need debug info in this function.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"f0032af680ffe94098dd507ad4b78bd95b341899","unresolved":false,"context_lines":[{"line_number":855,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":856,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":857,"context_line":""},{"line_number":858,"context_line":"    def _map_delete_lun(self, lunid, initiator_name):"},{"line_number":859,"context_line":"        map_group_name \u003d self._translate_grp_name(initiator_name)"},{"line_number":860,"context_line":""},{"line_number":861,"context_line":"        # lunid is -1,means lun not exist,no need to delete"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_6f5551c5","line":858,"range":{"start_line":858,"start_character":8,"end_line":858,"end_character":23},"in_reply_to":"bab6814e_9fbe1c63","updated":"2016-05-27 03:26:18.000000000","message":"We will consider this in the next version. Thank you.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":867,"context_line":"            if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":868,"context_line":"                err_msg \u003d (_(\u0027_map_lun:delete lunid from group fail. \u0027"},{"line_number":869,"context_line":"                             \u0027group name:%(name)s lunid : %(lun)s \u0027"},{"line_number":870,"context_line":"                             \u0027with Return code: %(ret)s.\u0027),"},{"line_number":871,"context_line":"                           {\u0027name\u0027: map_group_name, \u0027lun\u0027: lunid,"},{"line_number":872,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":873,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_d8bb0a74","line":870,"range":{"start_line":870,"start_character":58,"end_line":870,"end_character":59},"updated":"2016-06-03 13:50:14.000000000","message":", \u003e %","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":867,"context_line":"            if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":868,"context_line":"                err_msg \u003d (_(\u0027_map_lun:delete lunid from group fail. \u0027"},{"line_number":869,"context_line":"                             \u0027group name:%(name)s lunid : %(lun)s \u0027"},{"line_number":870,"context_line":"                             \u0027with Return code: %(ret)s.\u0027),"},{"line_number":871,"context_line":"                           {\u0027name\u0027: map_group_name, \u0027lun\u0027: lunid,"},{"line_number":872,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":873,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_03bbabc5","line":870,"range":{"start_line":870,"start_character":58,"end_line":870,"end_character":59},"in_reply_to":"9abb7d3a_d8bb0a74","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":20146,"name":"yuyafei","email":"yu.yafei@foxmail.com","username":"yuyafei"},"change_message_id":"57cb105e453d42ee4e67aa95ce84857f61a70140","unresolved":false,"context_lines":[{"line_number":877,"context_line":"        if lun_num \u003d\u003d 0:"},{"line_number":878,"context_line":"            self._delete_group(map_group_name)"},{"line_number":879,"context_line":""},{"line_number":880,"context_line":"    def _map_delete_host(self, map_group_name):"},{"line_number":881,"context_line":""},{"line_number":882,"context_line":"        map_grp_info \u003d {\u0027cMapGrpName\u0027: map_group_name}"},{"line_number":883,"context_line":"        ret \u003d self._call_method(\u0027GetMapGrpInfo\u0027, map_grp_info)"}],"source_content_type":"text/x-python","patch_set":18,"id":"bab6814e_7fc1b8e3","line":880,"range":{"start_line":880,"start_character":8,"end_line":880,"end_character":24},"updated":"2016-05-27 01:57:08.000000000","message":"I think we need debug info in this function.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"f0032af680ffe94098dd507ad4b78bd95b341899","unresolved":false,"context_lines":[{"line_number":877,"context_line":"        if lun_num \u003d\u003d 0:"},{"line_number":878,"context_line":"            self._delete_group(map_group_name)"},{"line_number":879,"context_line":""},{"line_number":880,"context_line":"    def _map_delete_host(self, map_group_name):"},{"line_number":881,"context_line":""},{"line_number":882,"context_line":"        map_grp_info \u003d {\u0027cMapGrpName\u0027: map_group_name}"},{"line_number":883,"context_line":"        ret \u003d self._call_method(\u0027GetMapGrpInfo\u0027, map_grp_info)"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_0f48052d","line":880,"range":{"start_line":880,"start_character":8,"end_line":880,"end_character":24},"in_reply_to":"bab6814e_7fc1b8e3","updated":"2016-05-27 03:26:18.000000000","message":"We will consider this in the next version. Thank you.","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":883,"context_line":"        ret \u003d self._call_method(\u0027GetMapGrpInfo\u0027, map_grp_info)"},{"line_number":884,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":885,"context_line":"            err_msg \u003d (_(\u0027_map_delete_host:get map group info fail. \u0027"},{"line_number":886,"context_line":"                         \u0027group name:%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":887,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":888,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":889,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_98aa2218","line":886,"range":{"start_line":886,"start_character":74,"end_line":886,"end_character":75},"updated":"2016-06-03 13:50:14.000000000","message":", \u003e %","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":883,"context_line":"        ret \u003d self._call_method(\u0027GetMapGrpInfo\u0027, map_grp_info)"},{"line_number":884,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":885,"context_line":"            err_msg \u003d (_(\u0027_map_delete_host:get map group info fail. \u0027"},{"line_number":886,"context_line":"                         \u0027group name:%(name)s with Return code: %(ret)s.\u0027),"},{"line_number":887,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":888,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":889,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_e3adbf89","line":886,"range":{"start_line":886,"start_character":74,"end_line":886,"end_character":75},"in_reply_to":"9abb7d3a_98aa2218","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":909,"context_line":"                if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":910,"context_line":"                    err_msg \u003d (_(\u0027_map_delete_host:get host info fail. \u0027"},{"line_number":911,"context_line":"                                 \u0027host name:%(name)s with Return code: \u0027"},{"line_number":912,"context_line":"                                 \u0027%(ret)s.\u0027),"},{"line_number":913,"context_line":"                               {\u0027name\u0027: initiator_name,"},{"line_number":914,"context_line":"                                \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":915,"context_line":"                    raise exception.VolumeBackendAPIException(err_msg)"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_787c9eb5","line":912,"range":{"start_line":912,"start_character":44,"end_line":912,"end_character":45},"updated":"2016-06-03 13:50:14.000000000","message":", \u003e %","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":909,"context_line":"                if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":910,"context_line":"                    err_msg \u003d (_(\u0027_map_delete_host:get host info fail. \u0027"},{"line_number":911,"context_line":"                                 \u0027host name:%(name)s with Return code: \u0027"},{"line_number":912,"context_line":"                                 \u0027%(ret)s.\u0027),"},{"line_number":913,"context_line":"                               {\u0027name\u0027: initiator_name,"},{"line_number":914,"context_line":"                                \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":915,"context_line":"                    raise exception.VolumeBackendAPIException(err_msg)"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_a3a3b79d","line":912,"range":{"start_line":912,"start_character":44,"end_line":912,"end_character":45},"in_reply_to":"9abb7d3a_787c9eb5","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4af28a75261dacbc5b7190084a793e5e8c8163c0","unresolved":false,"context_lines":[{"line_number":927,"context_line":"                    if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":928,"context_line":"                        err_msg \u003d (_(\u0027delete port from host fail. \u0027"},{"line_number":929,"context_line":"                                     \u0027host name:%(name)s, port name:%(port)s \u0027"},{"line_number":930,"context_line":"                                     \u0027with Return code: %(ret)s.\u0027),"},{"line_number":931,"context_line":"                                   {\u0027name\u0027: initiator_name,"},{"line_number":932,"context_line":"                                    \u0027port\u0027: port_name,"},{"line_number":933,"context_line":"                                    \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":18,"id":"9abb7d3a_3859765c","line":930,"range":{"start_line":930,"start_character":66,"end_line":930,"end_character":67},"updated":"2016-06-03 13:50:14.000000000","message":", \u003e %","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"85344d3e87f0801af249f6fb69766e3f529d9317","unresolved":false,"context_lines":[{"line_number":927,"context_line":"                    if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":928,"context_line":"                        err_msg \u003d (_(\u0027delete port from host fail. \u0027"},{"line_number":929,"context_line":"                                     \u0027host name:%(name)s, port name:%(port)s \u0027"},{"line_number":930,"context_line":"                                     \u0027with Return code: %(ret)s.\u0027),"},{"line_number":931,"context_line":"                                   {\u0027name\u0027: initiator_name,"},{"line_number":932,"context_line":"                                    \u0027port\u0027: port_name,"},{"line_number":933,"context_line":"                                    \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":18,"id":"7aa08908_e3765f3d","line":930,"range":{"start_line":930,"start_character":66,"end_line":930,"end_character":67},"in_reply_to":"9abb7d3a_3859765c","updated":"2016-06-06 03:36:38.000000000","message":"Done","commit_id":"a296a93e6fa6422ab1832932c6c4940ccc606ab0"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"84fedbb7f6301b36a8014fc558b02499aeaa0551","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        return self._call(sid, method, params)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def _call(self, sessin_id\u003d\u0027\u0027, method\u003d\u0027\u0027, params\u003dNone):"},{"line_number":82,"context_line":"        try:"},{"line_number":83,"context_line":"            params \u003d params or {}"},{"line_number":84,"context_line":"            data \u003d (\"sessionID\u003d\" + sessin_id + \"\u0026method\u003d\" +"},{"line_number":85,"context_line":"                    method + \"\u0026params\u003d\" + json.dumps(params))"}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_c6497fd2","line":82,"range":{"start_line":82,"start_character":10,"end_line":82,"end_character":11},"updated":"2016-06-10 12:50:23.000000000","message":"IMO, url should be passed to this method as param. Why is it a class attribute?","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"e42d22aff2df48d0d12d14e52f00a43f01af6e54","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        return self._call(sid, method, params)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def _call(self, sessin_id\u003d\u0027\u0027, method\u003d\u0027\u0027, params\u003dNone):"},{"line_number":82,"context_line":"        try:"},{"line_number":83,"context_line":"            params \u003d params or {}"},{"line_number":84,"context_line":"            data \u003d (\"sessionID\u003d\" + sessin_id + \"\u0026method\u003d\" +"},{"line_number":85,"context_line":"                    method + \"\u0026params\u003d\" + json.dumps(params))"}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_eebee2fd","line":82,"range":{"start_line":82,"start_character":10,"end_line":82,"end_character":11},"in_reply_to":"7aa08908_c6497fd2","updated":"2016-06-12 08:21:26.000000000","message":"Once the controller ip is known, the url is fixed.  So we choose to let it be a class attribute.","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"84fedbb7f6301b36a8014fc558b02499aeaa0551","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            socket.setdefaulttimeout(zte_pub.ZTE_DEFAULT_TIMEOUT)"},{"line_number":91,"context_line":"            req \u003d urllib.request.Request(self.url, data, headers)"},{"line_number":92,"context_line":"            req.get_method \u003d lambda: \u0027POST\u0027"},{"line_number":93,"context_line":"            response \u003d urllib.request.urlopen(req).read()"},{"line_number":94,"context_line":"            LOG.debug(\u0027Response Data: method %(method)s %(res)s.\u0027,"},{"line_number":95,"context_line":"                      {\u0027method\u0027: method, \u0027res\u0027: response})"},{"line_number":96,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_e6f0fb68","line":93,"range":{"start_line":93,"start_character":37,"end_line":93,"end_character":38},"updated":"2016-06-10 12:50:23.000000000","message":"Why do we need change socket default timeout? Can we use just\nurllib.request.urlopen(req, timeout\u003dzte_pub.ZTE_DEFAULT_TIMEOUT)\n?","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"d7c5c11f6c3304960b84f76add508968b8a6e427","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            socket.setdefaulttimeout(zte_pub.ZTE_DEFAULT_TIMEOUT)"},{"line_number":91,"context_line":"            req \u003d urllib.request.Request(self.url, data, headers)"},{"line_number":92,"context_line":"            req.get_method \u003d lambda: \u0027POST\u0027"},{"line_number":93,"context_line":"            response \u003d urllib.request.urlopen(req).read()"},{"line_number":94,"context_line":"            LOG.debug(\u0027Response Data: method %(method)s %(res)s.\u0027,"},{"line_number":95,"context_line":"                      {\u0027method\u0027: method, \u0027res\u0027: response})"},{"line_number":96,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_ef552e50","line":93,"range":{"start_line":93,"start_character":37,"end_line":93,"end_character":38},"in_reply_to":"7aa08908_e6f0fb68","updated":"2016-06-13 08:17:04.000000000","message":"Done","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"84fedbb7f6301b36a8014fc558b02499aeaa0551","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        controller_ip \u003d (self.login_info[\u0027ControllerIP0\u0027]"},{"line_number":104,"context_line":"                         or self.login_info[\u0027ControllerIP1\u0027] or \u0027\u0027)"},{"line_number":105,"context_line":"        self.url \u003d \u0027https://\u0027 + controller_ip + \u0027/phpclient/client.php\u0027"},{"line_number":106,"context_line":"        LOG.debug(\u0027Set zte server is %s.\u0027, self.url)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def _change_server(self):"},{"line_number":109,"context_line":"        if (self.login_info[\u0027ControllerIP0\u0027]) and ("}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_a62a738e","line":106,"updated":"2016-06-10 12:50:23.000000000","message":"zte\u003d\u003eZTE","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"f071171a6b98404127c07d72037224abb2e4b920","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        controller_ip \u003d (self.login_info[\u0027ControllerIP0\u0027]"},{"line_number":104,"context_line":"                         or self.login_info[\u0027ControllerIP1\u0027] or \u0027\u0027)"},{"line_number":105,"context_line":"        self.url \u003d \u0027https://\u0027 + controller_ip + \u0027/phpclient/client.php\u0027"},{"line_number":106,"context_line":"        LOG.debug(\u0027Set zte server is %s.\u0027, self.url)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def _change_server(self):"},{"line_number":109,"context_line":"        if (self.login_info[\u0027ControllerIP0\u0027]) and ("}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_5feb6a78","line":106,"in_reply_to":"7aa08908_a62a738e","updated":"2016-06-12 07:02:50.000000000","message":"Done","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"84fedbb7f6301b36a8014fc558b02499aeaa0551","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        self._get_server()"},{"line_number":142,"context_line":"        try:"},{"line_number":143,"context_line":"            self.session_id \u003d self._user_login()"},{"line_number":144,"context_line":"        except exception.CinderException:"},{"line_number":145,"context_line":"            self._change_server()"},{"line_number":146,"context_line":"            self.session_id \u003d self._user_login()"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_21266dba","line":144,"updated":"2016-06-10 12:50:23.000000000","message":"Please, catch more specific exception here. E.g.: VolumeBackendAPIException","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"f071171a6b98404127c07d72037224abb2e4b920","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        self._get_server()"},{"line_number":142,"context_line":"        try:"},{"line_number":143,"context_line":"            self.session_id \u003d self._user_login()"},{"line_number":144,"context_line":"        except exception.CinderException:"},{"line_number":145,"context_line":"            self._change_server()"},{"line_number":146,"context_line":"            self.session_id \u003d self._user_login()"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_13d39960","line":144,"in_reply_to":"7aa08908_21266dba","updated":"2016-06-12 07:02:50.000000000","message":"Done","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"84fedbb7f6301b36a8014fc558b02499aeaa0551","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def check_for_setup_error(self):"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        # Below is retrieved from /etc/cinder/cinder.conf"},{"line_number":151,"context_line":"        zteControllerIP0 \u003d self.configuration.zteControllerIP0"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        if zteControllerIP0 is None:"}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_4123b9a7","line":150,"updated":"2016-06-10 12:50:23.000000000","message":"We can remove this comment","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"f071171a6b98404127c07d72037224abb2e4b920","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def check_for_setup_error(self):"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        # Below is retrieved from /etc/cinder/cinder.conf"},{"line_number":151,"context_line":"        zteControllerIP0 \u003d self.configuration.zteControllerIP0"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        if zteControllerIP0 is None:"}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_133a7998","line":150,"in_reply_to":"7aa08908_4123b9a7","updated":"2016-06-12 07:02:50.000000000","message":"Done","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"84fedbb7f6301b36a8014fc558b02499aeaa0551","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                LOG.info(_LI(\u0027heartbeat failed.San. Return code:\u0027"},{"line_number":165,"context_line":"                             \u0027 %(ret)s.\u0027),"},{"line_number":166,"context_line":"                         {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":167,"context_line":"        except Exception:"},{"line_number":168,"context_line":"            LOG.exception(_LE(\u0027_get_sessionid error.\u0027))"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        self._change_server()"}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_c12fa986","line":167,"range":{"start_line":167,"start_character":24,"end_line":167,"end_character":25},"updated":"2016-06-10 12:50:23.000000000","message":"Can we catch more specific exception here?","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"e42d22aff2df48d0d12d14e52f00a43f01af6e54","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                LOG.info(_LI(\u0027heartbeat failed.San. Return code:\u0027"},{"line_number":165,"context_line":"                             \u0027 %(ret)s.\u0027),"},{"line_number":166,"context_line":"                         {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":167,"context_line":"        except Exception:"},{"line_number":168,"context_line":"            LOG.exception(_LE(\u0027_get_sessionid error.\u0027))"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        self._change_server()"}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_2edd8a14","line":167,"range":{"start_line":167,"start_character":24,"end_line":167,"end_character":25},"in_reply_to":"7aa08908_c12fa986","updated":"2016-06-12 08:21:26.000000000","message":"The method _call may raise any Exception.","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"84fedbb7f6301b36a8014fc558b02499aeaa0551","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        pool \u003d max(pool_list, key\u003dlambda arg: arg[\u0027free\u0027])"},{"line_number":198,"context_line":"        return pool[\u0027name\u0027]"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    def _create_volume_from_pool(self, volume_name, volume_size, pool_name):"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        vol \u003d {"},{"line_number":203,"context_line":"            \u0027scPoolName\u0027: pool_name,"}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_e162a5d7","line":200,"updated":"2016-06-10 12:50:23.000000000","message":"Is it  _create_volume_from_pool or _create_volume_in_pool?","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"f071171a6b98404127c07d72037224abb2e4b920","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        pool \u003d max(pool_list, key\u003dlambda arg: arg[\u0027free\u0027])"},{"line_number":198,"context_line":"        return pool[\u0027name\u0027]"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    def _create_volume_from_pool(self, volume_name, volume_size, pool_name):"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        vol \u003d {"},{"line_number":203,"context_line":"            \u0027scPoolName\u0027: pool_name,"}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_335e95e9","line":200,"in_reply_to":"7aa08908_e162a5d7","updated":"2016-06-12 07:02:50.000000000","message":"Done","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"84fedbb7f6301b36a8014fc558b02499aeaa0551","unresolved":false,"context_lines":[{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        volume_size \u003d float("},{"line_number":242,"context_line":"            volume[\u0027size\u0027] *"},{"line_number":243,"context_line":"            zte_pub.ZTE_SIZE *"},{"line_number":244,"context_line":"            zte_pub.ZTE_SIZE)"},{"line_number":245,"context_line":"        self._create_volume(volume_name, volume_size)"},{"line_number":246,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_c1b4c936","line":243,"updated":"2016-06-10 12:50:23.000000000","message":"Please, re-use constants from oslo.utils","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"f071171a6b98404127c07d72037224abb2e4b920","unresolved":false,"context_lines":[{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        volume_size \u003d float("},{"line_number":242,"context_line":"            volume[\u0027size\u0027] *"},{"line_number":243,"context_line":"            zte_pub.ZTE_SIZE *"},{"line_number":244,"context_line":"            zte_pub.ZTE_SIZE)"},{"line_number":245,"context_line":"        self._create_volume(volume_name, volume_size)"},{"line_number":246,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_33d3353a","line":243,"in_reply_to":"7aa08908_c1b4c936","updated":"2016-06-12 07:02:50.000000000","message":"Done","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"84fedbb7f6301b36a8014fc558b02499aeaa0551","unresolved":false,"context_lines":[{"line_number":336,"context_line":"            \u0027swRepoOverflowPolicy\u0027: 0,"},{"line_number":337,"context_line":"            \u0027sqwRepoCapacity\u0027: float("},{"line_number":338,"context_line":"                src_vol_size *"},{"line_number":339,"context_line":"                zte_pub.ZTE_SIZE *"},{"line_number":340,"context_line":"                zte_pub.ZTE_SIZE),"},{"line_number":341,"context_line":"            \u0027ucIsAgent\u0027: 0,"},{"line_number":342,"context_line":"            \u0027ucSnapMode\u0027: snapshot_mode,"}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_01ec1128","line":339,"updated":"2016-06-10 12:50:23.000000000","message":"The same as abowe","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"f071171a6b98404127c07d72037224abb2e4b920","unresolved":false,"context_lines":[{"line_number":336,"context_line":"            \u0027swRepoOverflowPolicy\u0027: 0,"},{"line_number":337,"context_line":"            \u0027sqwRepoCapacity\u0027: float("},{"line_number":338,"context_line":"                src_vol_size *"},{"line_number":339,"context_line":"                zte_pub.ZTE_SIZE *"},{"line_number":340,"context_line":"                zte_pub.ZTE_SIZE),"},{"line_number":341,"context_line":"            \u0027ucIsAgent\u0027: 0,"},{"line_number":342,"context_line":"            \u0027ucSnapMode\u0027: snapshot_mode,"}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_73ddbd41","line":339,"in_reply_to":"7aa08908_01ec1128","updated":"2016-06-12 07:02:50.000000000","message":"Done","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"84fedbb7f6301b36a8014fc558b02499aeaa0551","unresolved":false,"context_lines":[{"line_number":484,"context_line":"                volume_size,"},{"line_number":485,"context_line":"                zte_pub.ZTE_SNAPSHOT)"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"    def create_export(self, context, volume, connector):"},{"line_number":488,"context_line":"        \"\"\"Exports the volume \"\"\""},{"line_number":489,"context_line":"        pass"},{"line_number":490,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_a1725d7a","line":487,"updated":"2016-06-10 12:50:23.000000000","message":"Please, do not copy-paste methods from the parent class","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"d7c5c11f6c3304960b84f76add508968b8a6e427","unresolved":false,"context_lines":[{"line_number":484,"context_line":"                volume_size,"},{"line_number":485,"context_line":"                zte_pub.ZTE_SNAPSHOT)"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"    def create_export(self, context, volume, connector):"},{"line_number":488,"context_line":"        \"\"\"Exports the volume \"\"\""},{"line_number":489,"context_line":"        pass"},{"line_number":490,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_af8046c0","line":487,"in_reply_to":"7aa08908_a1725d7a","updated":"2016-06-13 08:17:04.000000000","message":"Done","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"3fba4bf24702567a7d4a7c419dfe66c59b275bb0","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            params \u003d params or {}"},{"line_number":84,"context_line":"            data \u003d (\"sessionID\u003d\" + sessin_id + \"\u0026method\u003d\" +"},{"line_number":85,"context_line":"                    method + \"\u0026params\u003d\" + json.dumps(params))"},{"line_number":86,"context_line":"            LOG.debug(\u0027Req Data: method %(method)s %(data)s.\u0027,"},{"line_number":87,"context_line":"                      {\u0027method\u0027: method, \u0027data\u0027: data})"},{"line_number":88,"context_line":"            headers \u003d {\"Connection\": \"keep-alive\","},{"line_number":89,"context_line":"                       \"Content-Type\": \"application/x-www-form-urlencoded\"}"}],"source_content_type":"text/x-python","patch_set":22,"id":"7aa08908_3ac06f2a","line":86,"range":{"start_line":86,"start_character":50,"end_line":86,"end_character":51},"updated":"2016-06-16 03:55:15.000000000","message":"Maybe should add \"data\"?","commit_id":"2ecfea5f5c7249e08fb97c9922352c9d1633de72"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"9e6379f412ba2bc2be8294547af2eda38233b51b","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            params \u003d params or {}"},{"line_number":84,"context_line":"            data \u003d (\"sessionID\u003d\" + sessin_id + \"\u0026method\u003d\" +"},{"line_number":85,"context_line":"                    method + \"\u0026params\u003d\" + json.dumps(params))"},{"line_number":86,"context_line":"            LOG.debug(\u0027Req Data: method %(method)s %(data)s.\u0027,"},{"line_number":87,"context_line":"                      {\u0027method\u0027: method, \u0027data\u0027: data})"},{"line_number":88,"context_line":"            headers \u003d {\"Connection\": \"keep-alive\","},{"line_number":89,"context_line":"                       \"Content-Type\": \"application/x-www-form-urlencoded\"}"}],"source_content_type":"text/x-python","patch_set":22,"id":"7aa08908_0ce34cd9","line":86,"range":{"start_line":86,"start_character":50,"end_line":86,"end_character":51},"in_reply_to":"7aa08908_3ac06f2a","updated":"2016-06-18 02:14:39.000000000","message":"Done","commit_id":"2ecfea5f5c7249e08fb97c9922352c9d1633de72"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"9db3601a935f6e8fc5bac1676fc7923ad7e2cdd1","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            headers \u003d {\"Connection\": \"keep-alive\","},{"line_number":89,"context_line":"                       \"Content-Type\": \"application/x-www-form-urlencoded\"}"},{"line_number":90,"context_line":"            req \u003d urllib.request.Request(self.url, data, headers)"},{"line_number":91,"context_line":"            req.get_method \u003d lambda: \u0027POST\u0027"},{"line_number":92,"context_line":"            response \u003d urllib.request.urlopen(req,"},{"line_number":93,"context_line":"                                              timeout\u003d"},{"line_number":94,"context_line":"                                              zte_pub.ZTE_DEFAULT_TIMEOUT"}],"source_content_type":"text/x-python","patch_set":22,"id":"7aa08908_d23736fc","line":91,"updated":"2016-06-17 15:03:44.000000000","message":"It looks like a hack. Can we implement it in an other way?","commit_id":"2ecfea5f5c7249e08fb97c9922352c9d1633de72"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"7373b8ba47c5ae2a5e7bff29e3671a859fe2364d","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            headers \u003d {\"Connection\": \"keep-alive\","},{"line_number":89,"context_line":"                       \"Content-Type\": \"application/x-www-form-urlencoded\"}"},{"line_number":90,"context_line":"            req \u003d urllib.request.Request(self.url, data, headers)"},{"line_number":91,"context_line":"            req.get_method \u003d lambda: \u0027POST\u0027"},{"line_number":92,"context_line":"            response \u003d urllib.request.urlopen(req,"},{"line_number":93,"context_line":"                                              timeout\u003d"},{"line_number":94,"context_line":"                                              zte_pub.ZTE_DEFAULT_TIMEOUT"}],"source_content_type":"text/x-python","patch_set":22,"id":"5a9d85d2_e5cf91b1","line":91,"in_reply_to":"7aa08908_d23736fc","updated":"2016-06-20 02:31:22.000000000","message":"Thanks for your  review.  At present, this \"Post\" implement is the best way we can find.","commit_id":"2ecfea5f5c7249e08fb97c9922352c9d1633de72"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"3fba4bf24702567a7d4a7c419dfe66c59b275bb0","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                                              timeout\u003d"},{"line_number":94,"context_line":"                                              zte_pub.ZTE_DEFAULT_TIMEOUT"},{"line_number":95,"context_line":"                                              ).read()"},{"line_number":96,"context_line":"            LOG.debug(\u0027Response Data: method %(method)s %(res)s.\u0027,"},{"line_number":97,"context_line":"                      {\u0027method\u0027: method, \u0027res\u0027: response})"},{"line_number":98,"context_line":"        except Exception:"},{"line_number":99,"context_line":"            LOG.exception(_LE(\u0027Bad response from server.\u0027))"}],"source_content_type":"text/x-python","patch_set":22,"id":"7aa08908_dae5ebdc","line":96,"range":{"start_line":96,"start_character":55,"end_line":96,"end_character":56},"updated":"2016-06-16 03:55:15.000000000","message":"same","commit_id":"2ecfea5f5c7249e08fb97c9922352c9d1633de72"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"9e6379f412ba2bc2be8294547af2eda38233b51b","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                                              timeout\u003d"},{"line_number":94,"context_line":"                                              zte_pub.ZTE_DEFAULT_TIMEOUT"},{"line_number":95,"context_line":"                                              ).read()"},{"line_number":96,"context_line":"            LOG.debug(\u0027Response Data: method %(method)s %(res)s.\u0027,"},{"line_number":97,"context_line":"                      {\u0027method\u0027: method, \u0027res\u0027: response})"},{"line_number":98,"context_line":"        except Exception:"},{"line_number":99,"context_line":"            LOG.exception(_LE(\u0027Bad response from server.\u0027))"}],"source_content_type":"text/x-python","patch_set":22,"id":"7aa08908_6cd490e8","line":96,"range":{"start_line":96,"start_character":55,"end_line":96,"end_character":56},"in_reply_to":"7aa08908_dae5ebdc","updated":"2016-06-18 02:14:39.000000000","message":"Done","commit_id":"2ecfea5f5c7249e08fb97c9922352c9d1633de72"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"3fba4bf24702567a7d4a7c419dfe66c59b275bb0","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        LOG.debug(\u0027Set ZTE server is %s.\u0027, self.url)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def _change_server(self):"},{"line_number":111,"context_line":"        if (self.login_info[\u0027ControllerIP0\u0027]) and ("},{"line_number":112,"context_line":"                self.login_info[\u0027ControllerIP1\u0027]):"},{"line_number":113,"context_line":"            controller_ip \u003d (self.login_info[\u0027ControllerIP1\u0027]"},{"line_number":114,"context_line":"                             if self.login_info[\u0027ControllerIP0\u0027] in self.url"}],"source_content_type":"text/x-python","patch_set":22,"id":"7aa08908_1af7738d","line":111,"range":{"start_line":111,"start_character":44,"end_line":111,"end_character":45},"updated":"2016-06-16 03:55:15.000000000","message":"() is unnecessary","commit_id":"2ecfea5f5c7249e08fb97c9922352c9d1633de72"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"9e6379f412ba2bc2be8294547af2eda38233b51b","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        LOG.debug(\u0027Set ZTE server is %s.\u0027, self.url)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def _change_server(self):"},{"line_number":111,"context_line":"        if (self.login_info[\u0027ControllerIP0\u0027]) and ("},{"line_number":112,"context_line":"                self.login_info[\u0027ControllerIP1\u0027]):"},{"line_number":113,"context_line":"            controller_ip \u003d (self.login_info[\u0027ControllerIP1\u0027]"},{"line_number":114,"context_line":"                             if self.login_info[\u0027ControllerIP0\u0027] in self.url"}],"source_content_type":"text/x-python","patch_set":22,"id":"7aa08908_ac083892","line":111,"range":{"start_line":111,"start_character":44,"end_line":111,"end_character":45},"in_reply_to":"7aa08908_1af7738d","updated":"2016-06-18 02:14:39.000000000","message":"Done","commit_id":"2ecfea5f5c7249e08fb97c9922352c9d1633de72"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"3fba4bf24702567a7d4a7c419dfe66c59b275bb0","unresolved":false,"context_lines":[{"line_number":271,"context_line":"        if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_ERR_VOLUME_NOT_EXIST,"},{"line_number":272,"context_line":"                                     zte_pub.ZTE_ERR_LUNDEV_NOT_EXIST,"},{"line_number":273,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":274,"context_line":"            err_msg \u003d (_(\u0027Delete volume fail. Volume name:%(name)s.\u0027"},{"line_number":275,"context_line":"                         \u0027Return code: %(ret)s.\u0027) %"},{"line_number":276,"context_line":"                       {\u0027name\u0027: volume_name,"},{"line_number":277,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":22,"id":"7aa08908_ba5d7f7b","line":274,"range":{"start_line":274,"start_character":57,"end_line":274,"end_character":58},"updated":"2016-06-16 03:55:15.000000000","message":"Missing blank space.","commit_id":"2ecfea5f5c7249e08fb97c9922352c9d1633de72"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"9e6379f412ba2bc2be8294547af2eda38233b51b","unresolved":false,"context_lines":[{"line_number":271,"context_line":"        if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_ERR_VOLUME_NOT_EXIST,"},{"line_number":272,"context_line":"                                     zte_pub.ZTE_ERR_LUNDEV_NOT_EXIST,"},{"line_number":273,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":274,"context_line":"            err_msg \u003d (_(\u0027Delete volume fail. Volume name:%(name)s.\u0027"},{"line_number":275,"context_line":"                         \u0027Return code: %(ret)s.\u0027) %"},{"line_number":276,"context_line":"                       {\u0027name\u0027: volume_name,"},{"line_number":277,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":22,"id":"7aa08908_2cf56882","line":274,"range":{"start_line":274,"start_character":57,"end_line":274,"end_character":58},"in_reply_to":"7aa08908_ba5d7f7b","updated":"2016-06-18 02:14:39.000000000","message":"Done","commit_id":"2ecfea5f5c7249e08fb97c9922352c9d1633de72"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"3fba4bf24702567a7d4a7c419dfe66c59b275bb0","unresolved":false,"context_lines":[{"line_number":293,"context_line":"                                     zte_pub.ZTE_ERR_VAS_OBJECT_NOT_EXIST,"},{"line_number":294,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":295,"context_line":"            err_msg \u003d (_(\u0027_delete_clone_volume:Failed to clone vol. \u0027"},{"line_number":296,"context_line":"                         \u0027cloned name:%(name)s with Return code: \u0027"},{"line_number":297,"context_line":"                         \u0027%(ret)s.\u0027) %"},{"line_number":298,"context_line":"                       {\u0027name\u0027: cloned_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":299,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_VOLUME_TASK_NOT_FINISHED:"}],"source_content_type":"text/x-python","patch_set":22,"id":"7aa08908_5a4d7bc3","line":296,"range":{"start_line":296,"start_character":36,"end_line":296,"end_character":39},"updated":"2016-06-16 03:55:15.000000000","message":"Same","commit_id":"2ecfea5f5c7249e08fb97c9922352c9d1633de72"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"9e6379f412ba2bc2be8294547af2eda38233b51b","unresolved":false,"context_lines":[{"line_number":293,"context_line":"                                     zte_pub.ZTE_ERR_VAS_OBJECT_NOT_EXIST,"},{"line_number":294,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":295,"context_line":"            err_msg \u003d (_(\u0027_delete_clone_volume:Failed to clone vol. \u0027"},{"line_number":296,"context_line":"                         \u0027cloned name:%(name)s with Return code: \u0027"},{"line_number":297,"context_line":"                         \u0027%(ret)s.\u0027) %"},{"line_number":298,"context_line":"                       {\u0027name\u0027: cloned_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":299,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_VOLUME_TASK_NOT_FINISHED:"}],"source_content_type":"text/x-python","patch_set":22,"id":"7aa08908_8cee1cb3","line":296,"range":{"start_line":296,"start_character":36,"end_line":296,"end_character":39},"in_reply_to":"7aa08908_5a4d7bc3","updated":"2016-06-18 02:14:39.000000000","message":"Done","commit_id":"2ecfea5f5c7249e08fb97c9922352c9d1633de72"},{"author":{"_account_id":11676,"name":"wuyuting","email":"wytdahu@gmail.com","username":"wuyuting"},"change_message_id":"d26588997aaf4c168442a053174372d40d18bc91","unresolved":false,"context_lines":[{"line_number":420,"context_line":"        \"\"\"clone a volume\"\"\""},{"line_number":421,"context_line":"        bvol_name \u003d self._translate_volume_name(src_vref[\u0027name\u0027])"},{"line_number":422,"context_line":"        cvol_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":423,"context_line":"        if volume[\u0027size\u0027] \u003c src_vref[\u0027size\u0027]:"},{"line_number":424,"context_line":"            err_msg \u003d (_(\u0027Cloned volume size invalid. \u0027"},{"line_number":425,"context_line":"                         \u0027Clone size: %(cloned_size)s. \u0027"},{"line_number":426,"context_line":"                         \u0027Src volume size: %(volume_size)s.\u0027) %"}],"source_content_type":"text/x-python","patch_set":22,"id":"7aa08908_426b661e","line":423,"range":{"start_line":423,"start_character":11,"end_line":423,"end_character":45},"updated":"2016-06-13 14:51:40.000000000","message":"There is no necessary to check size here, because cinder-api have checked this.","commit_id":"2ecfea5f5c7249e08fb97c9922352c9d1633de72"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"f39d09b53abd301ca34afb8286fddf73800fd7fa","unresolved":false,"context_lines":[{"line_number":420,"context_line":"        \"\"\"clone a volume\"\"\""},{"line_number":421,"context_line":"        bvol_name \u003d self._translate_volume_name(src_vref[\u0027name\u0027])"},{"line_number":422,"context_line":"        cvol_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":423,"context_line":"        if volume[\u0027size\u0027] \u003c src_vref[\u0027size\u0027]:"},{"line_number":424,"context_line":"            err_msg \u003d (_(\u0027Cloned volume size invalid. \u0027"},{"line_number":425,"context_line":"                         \u0027Clone size: %(cloned_size)s. \u0027"},{"line_number":426,"context_line":"                         \u0027Src volume size: %(volume_size)s.\u0027) %"}],"source_content_type":"text/x-python","patch_set":22,"id":"7aa08908_85c26283","line":423,"range":{"start_line":423,"start_character":11,"end_line":423,"end_character":45},"in_reply_to":"7aa08908_426b661e","updated":"2016-06-14 01:00:00.000000000","message":"I think it\u0027s ok to check here, even if cinder-api has checked before. Could you be so kind to offer some documents which explain how  cinder-api  checks? I tried to find some, but  I failed.","commit_id":"2ecfea5f5c7249e08fb97c9922352c9d1633de72"},{"author":{"_account_id":11676,"name":"wuyuting","email":"wytdahu@gmail.com","username":"wuyuting"},"change_message_id":"cabd54eeb645cf0ccf756aae25c83a13e6aaebd2","unresolved":false,"context_lines":[{"line_number":420,"context_line":"        \"\"\"clone a volume\"\"\""},{"line_number":421,"context_line":"        bvol_name \u003d self._translate_volume_name(src_vref[\u0027name\u0027])"},{"line_number":422,"context_line":"        cvol_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":423,"context_line":"        if volume[\u0027size\u0027] \u003c src_vref[\u0027size\u0027]:"},{"line_number":424,"context_line":"            err_msg \u003d (_(\u0027Cloned volume size invalid. \u0027"},{"line_number":425,"context_line":"                         \u0027Clone size: %(cloned_size)s. \u0027"},{"line_number":426,"context_line":"                         \u0027Src volume size: %(volume_size)s.\u0027) %"}],"source_content_type":"text/x-python","patch_set":22,"id":"7aa08908_f5d8b881","line":423,"range":{"start_line":423,"start_character":11,"end_line":423,"end_character":45},"in_reply_to":"7aa08908_85c26283","updated":"2016-06-16 04:12:28.000000000","message":"cinder.volume.flows.api.create_volume.ExtractVolumeRequestTask._extract_size   will check source and dest volume size.","commit_id":"2ecfea5f5c7249e08fb97c9922352c9d1633de72"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"b0ede1b26b7454c01c78e6de23b9de6473563af2","unresolved":false,"context_lines":[{"line_number":420,"context_line":"        \"\"\"clone a volume\"\"\""},{"line_number":421,"context_line":"        bvol_name \u003d self._translate_volume_name(src_vref[\u0027name\u0027])"},{"line_number":422,"context_line":"        cvol_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":423,"context_line":"        if volume[\u0027size\u0027] \u003c src_vref[\u0027size\u0027]:"},{"line_number":424,"context_line":"            err_msg \u003d (_(\u0027Cloned volume size invalid. \u0027"},{"line_number":425,"context_line":"                         \u0027Clone size: %(cloned_size)s. \u0027"},{"line_number":426,"context_line":"                         \u0027Src volume size: %(volume_size)s.\u0027) %"}],"source_content_type":"text/x-python","patch_set":22,"id":"7aa08908_ca0a3679","line":423,"range":{"start_line":423,"start_character":11,"end_line":423,"end_character":45},"in_reply_to":"7aa08908_f5d8b881","updated":"2016-06-16 06:14:21.000000000","message":"Thanks for your review. Checking on input parameters  makes programs more reliable.","commit_id":"2ecfea5f5c7249e08fb97c9922352c9d1633de72"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"82805485120a6a53be112e8eb0d7a3428eeaef22","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_ERR_OBJECT_EXIST,"},{"line_number":226,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":227,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":228,"context_line":"                _(\u0027Create volume fail. Volume name:%(name)s. \u0027"},{"line_number":229,"context_line":"                  \u0027Return code: %(ret)s.\u0027) %"},{"line_number":230,"context_line":"                {\u0027name\u0027: volume_name,"},{"line_number":231,"context_line":"                 \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_0d7572f8","line":228,"range":{"start_line":228,"start_character":46,"end_line":228,"end_character":59},"updated":"2016-06-21 01:20:10.000000000","message":"Missing a blank space before \"%(name)s\".","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"2d880ab545df797293269c7d64344eb884f94304","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_ERR_OBJECT_EXIST,"},{"line_number":226,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":227,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":228,"context_line":"                _(\u0027Create volume fail. Volume name:%(name)s. \u0027"},{"line_number":229,"context_line":"                  \u0027Return code: %(ret)s.\u0027) %"},{"line_number":230,"context_line":"                {\u0027name\u0027: volume_name,"},{"line_number":231,"context_line":"                 \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_25acc69f","line":228,"range":{"start_line":228,"start_character":46,"end_line":228,"end_character":59},"in_reply_to":"5a9d85d2_0d7572f8","updated":"2016-06-21 03:45:01.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"82805485120a6a53be112e8eb0d7a3428eeaef22","unresolved":false,"context_lines":[{"line_number":252,"context_line":"        if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_ERR_CLONE_OR_SNAP_NOT_EXIST,"},{"line_number":253,"context_line":"                                     zte_pub.ZTE_ERR_VAS_OBJECT_NOT_EXIST,"},{"line_number":254,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":255,"context_line":"            err_msg \u003d (_(\u0027Delete volume failed. Clone name:%(name)s. \u0027"},{"line_number":256,"context_line":"                         \u0027Return code: %(ret)s.\u0027) %"},{"line_number":257,"context_line":"                       {\u0027name\u0027: cloned_name,"},{"line_number":258,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_ad5a5e81","line":255,"range":{"start_line":255,"start_character":54,"end_line":255,"end_character":67},"updated":"2016-06-21 01:20:10.000000000","message":"Same.","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"2d880ab545df797293269c7d64344eb884f94304","unresolved":false,"context_lines":[{"line_number":252,"context_line":"        if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_ERR_CLONE_OR_SNAP_NOT_EXIST,"},{"line_number":253,"context_line":"                                     zte_pub.ZTE_ERR_VAS_OBJECT_NOT_EXIST,"},{"line_number":254,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":255,"context_line":"            err_msg \u003d (_(\u0027Delete volume failed. Clone name:%(name)s. \u0027"},{"line_number":256,"context_line":"                         \u0027Return code: %(ret)s.\u0027) %"},{"line_number":257,"context_line":"                       {\u0027name\u0027: cloned_name,"},{"line_number":258,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_45911252","line":255,"range":{"start_line":255,"start_character":54,"end_line":255,"end_character":67},"in_reply_to":"5a9d85d2_ad5a5e81","updated":"2016-06-21 03:45:01.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"82805485120a6a53be112e8eb0d7a3428eeaef22","unresolved":false,"context_lines":[{"line_number":294,"context_line":"        if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_ERR_CLONE_OR_SNAP_NOT_EXIST,"},{"line_number":295,"context_line":"                                     zte_pub.ZTE_ERR_VAS_OBJECT_NOT_EXIST,"},{"line_number":296,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":297,"context_line":"            err_msg \u003d (_(\u0027_delete_clone_volume:Failed to clone vol. \u0027"},{"line_number":298,"context_line":"                         \u0027cloned name: %(name)s with Return code: \u0027"},{"line_number":299,"context_line":"                         \u0027%(ret)s.\u0027) %"},{"line_number":300,"context_line":"                       {\u0027name\u0027: cloned_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_4dcc9a35","line":297,"range":{"start_line":297,"start_character":47,"end_line":297,"end_character":66},"updated":"2016-06-21 01:20:10.000000000","message":"Failed to \"delete\" clone vol?","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"2d880ab545df797293269c7d64344eb884f94304","unresolved":false,"context_lines":[{"line_number":294,"context_line":"        if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_ERR_CLONE_OR_SNAP_NOT_EXIST,"},{"line_number":295,"context_line":"                                     zte_pub.ZTE_ERR_VAS_OBJECT_NOT_EXIST,"},{"line_number":296,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":297,"context_line":"            err_msg \u003d (_(\u0027_delete_clone_volume:Failed to clone vol. \u0027"},{"line_number":298,"context_line":"                         \u0027cloned name: %(name)s with Return code: \u0027"},{"line_number":299,"context_line":"                         \u0027%(ret)s.\u0027) %"},{"line_number":300,"context_line":"                       {\u0027name\u0027: cloned_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_8572da47","line":297,"range":{"start_line":297,"start_character":47,"end_line":297,"end_character":66},"in_reply_to":"5a9d85d2_4dcc9a35","updated":"2016-06-21 03:45:01.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"82805485120a6a53be112e8eb0d7a3428eeaef22","unresolved":false,"context_lines":[{"line_number":341,"context_line":"            \u0027ucIsAuto\u0027: 0}"},{"line_number":342,"context_line":"        ret \u003d self._call_method(\u0027CreateSvol\u0027, svol_paras)"},{"line_number":343,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":344,"context_line":"            err_msg \u003d (_(\u0027Failed to create snap.snap name:%(snapname)s,\u0027"},{"line_number":345,"context_line":"                         \u0027srvol name :%(srv)s with Return code: %(ret)s.\u0027) %"},{"line_number":346,"context_line":"                       {\u0027snapname\u0027: snapshot_name,"},{"line_number":347,"context_line":"                        \u0027srv\u0027: src_vol,"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_4df3fa73","line":344,"range":{"start_line":344,"start_character":53,"end_line":344,"end_character":70},"updated":"2016-06-21 01:20:10.000000000","message":"Same.","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"2d880ab545df797293269c7d64344eb884f94304","unresolved":false,"context_lines":[{"line_number":341,"context_line":"            \u0027ucIsAuto\u0027: 0}"},{"line_number":342,"context_line":"        ret \u003d self._call_method(\u0027CreateSvol\u0027, svol_paras)"},{"line_number":343,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":344,"context_line":"            err_msg \u003d (_(\u0027Failed to create snap.snap name:%(snapname)s,\u0027"},{"line_number":345,"context_line":"                         \u0027srvol name :%(srv)s with Return code: %(ret)s.\u0027) %"},{"line_number":346,"context_line":"                       {\u0027snapname\u0027: snapshot_name,"},{"line_number":347,"context_line":"                        \u0027srv\u0027: src_vol,"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_259a0664","line":344,"range":{"start_line":344,"start_character":53,"end_line":344,"end_character":70},"in_reply_to":"5a9d85d2_4df3fa73","updated":"2016-06-21 03:45:01.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"82805485120a6a53be112e8eb0d7a3428eeaef22","unresolved":false,"context_lines":[{"line_number":363,"context_line":"                                     zte_pub.ZTE_ERR_VAS_OBJECT_NOT_EXIST,"},{"line_number":364,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":365,"context_line":"            err_msg \u003d (_(\u0027_delete_snapshot:Failed to delete snap.\u0027"},{"line_number":366,"context_line":"                         \u0027snap name:%(snapname)s with Return code: \u0027"},{"line_number":367,"context_line":"                         \u0027%(ret)s.\u0027) %"},{"line_number":368,"context_line":"                       {\u0027snapname\u0027: snapshot_name,"},{"line_number":369,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_0de3b2a4","line":366,"range":{"start_line":366,"start_character":26,"end_line":366,"end_character":48},"updated":"2016-06-21 01:20:10.000000000","message":"Same.","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"2d880ab545df797293269c7d64344eb884f94304","unresolved":false,"context_lines":[{"line_number":363,"context_line":"                                     zte_pub.ZTE_ERR_VAS_OBJECT_NOT_EXIST,"},{"line_number":364,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":365,"context_line":"            err_msg \u003d (_(\u0027_delete_snapshot:Failed to delete snap.\u0027"},{"line_number":366,"context_line":"                         \u0027snap name:%(snapname)s with Return code: \u0027"},{"line_number":367,"context_line":"                         \u0027%(ret)s.\u0027) %"},{"line_number":368,"context_line":"                       {\u0027snapname\u0027: snapshot_name,"},{"line_number":369,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_45691225","line":366,"range":{"start_line":366,"start_character":26,"end_line":366,"end_character":48},"in_reply_to":"5a9d85d2_0de3b2a4","updated":"2016-06-21 03:45:01.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"82805485120a6a53be112e8eb0d7a3428eeaef22","unresolved":false,"context_lines":[{"line_number":412,"context_line":"        ret \u003d self._call_method(\u0027CreateCvol\u0027, cvol_paras)"},{"line_number":413,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":414,"context_line":"            self._delete_volume(cloned_name)"},{"line_number":415,"context_line":"            err_msg \u003d (_(\u0027_cloned_volume:Failed to clone vol.\u0027"},{"line_number":416,"context_line":"                         \u0027vol name:%(name)s with Return code: %(ret)s.\u0027) %"},{"line_number":417,"context_line":"                       {\u0027name\u0027: src_name,"},{"line_number":418,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_0dfa9242","line":415,"range":{"start_line":415,"start_character":57,"end_line":415,"end_character":61},"updated":"2016-06-21 01:20:10.000000000","message":"Missing a blank space EOL.","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"2d880ab545df797293269c7d64344eb884f94304","unresolved":false,"context_lines":[{"line_number":412,"context_line":"        ret \u003d self._call_method(\u0027CreateCvol\u0027, cvol_paras)"},{"line_number":413,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":414,"context_line":"            self._delete_volume(cloned_name)"},{"line_number":415,"context_line":"            err_msg \u003d (_(\u0027_cloned_volume:Failed to clone vol.\u0027"},{"line_number":416,"context_line":"                         \u0027vol name:%(name)s with Return code: %(ret)s.\u0027) %"},{"line_number":417,"context_line":"                       {\u0027name\u0027: src_name,"},{"line_number":418,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_c5b982cd","line":415,"range":{"start_line":415,"start_character":57,"end_line":415,"end_character":61},"in_reply_to":"5a9d85d2_0dfa9242","updated":"2016-06-21 03:45:01.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8fd7afe6b0792e00b961566823c673eba6214f9f","unresolved":false,"context_lines":[{"line_number":426,"context_line":"            err_msg \u003d (_(\u0027Cloned volume size invalid. \u0027"},{"line_number":427,"context_line":"                         \u0027Clone size: %(cloned_size)s. \u0027"},{"line_number":428,"context_line":"                         \u0027Src volume size: %(volume_size)s.\u0027) %"},{"line_number":429,"context_line":"                       {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":430,"context_line":"                        \u0027volume_size\u0027: int(src_vref[\u0027size\u0027])})"},{"line_number":431,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":432,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_b49e3454","line":429,"updated":"2016-06-20 20:30:56.000000000","message":"volume[\u0027size\u0027] is already an integer here, no need for an int() cast.","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"cd8c4a46a4fbcf83ff48eb207f481a5273192055","unresolved":false,"context_lines":[{"line_number":426,"context_line":"            err_msg \u003d (_(\u0027Cloned volume size invalid. \u0027"},{"line_number":427,"context_line":"                         \u0027Clone size: %(cloned_size)s. \u0027"},{"line_number":428,"context_line":"                         \u0027Src volume size: %(volume_size)s.\u0027) %"},{"line_number":429,"context_line":"                       {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":430,"context_line":"                        \u0027volume_size\u0027: int(src_vref[\u0027size\u0027])})"},{"line_number":431,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":432,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_adb6de87","line":429,"in_reply_to":"5a9d85d2_b49e3454","updated":"2016-06-21 01:16:07.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8fd7afe6b0792e00b961566823c673eba6214f9f","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                         \u0027Clone size: %(cloned_size)s. \u0027"},{"line_number":428,"context_line":"                         \u0027Src volume size: %(volume_size)s.\u0027) %"},{"line_number":429,"context_line":"                       {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":430,"context_line":"                        \u0027volume_size\u0027: int(src_vref[\u0027size\u0027])})"},{"line_number":431,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":432,"context_line":"        else:"},{"line_number":433,"context_line":"            volume_size \u003d float("}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_54aef085","line":430,"updated":"2016-06-20 20:30:56.000000000","message":"Same as above.","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"cd8c4a46a4fbcf83ff48eb207f481a5273192055","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                         \u0027Clone size: %(cloned_size)s. \u0027"},{"line_number":428,"context_line":"                         \u0027Src volume size: %(volume_size)s.\u0027) %"},{"line_number":429,"context_line":"                       {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":430,"context_line":"                        \u0027volume_size\u0027: int(src_vref[\u0027size\u0027])})"},{"line_number":431,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":432,"context_line":"        else:"},{"line_number":433,"context_line":"            volume_size \u003d float("}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_8dbb2272","line":430,"in_reply_to":"5a9d85d2_54aef085","updated":"2016-06-21 01:16:07.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"82805485120a6a53be112e8eb0d7a3428eeaef22","unresolved":false,"context_lines":[{"line_number":448,"context_line":"                zte_pub.ZTE_VOLUME)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":451,"context_line":"        \"\"\"create  volume from  snapshot \"\"\""},{"line_number":452,"context_line":"        bvol_name \u003d self._translate_volume_name(snapshot[\u0027name\u0027])"},{"line_number":453,"context_line":"        cvol_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":454,"context_line":"        if volume[\u0027size\u0027] \u003c snapshot[\u0027volume_size\u0027]:"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_0d91f2f0","line":451,"range":{"start_line":451,"start_character":17,"end_line":451,"end_character":19},"updated":"2016-06-21 01:20:10.000000000","message":"Multiple blank spaces?","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"82805485120a6a53be112e8eb0d7a3428eeaef22","unresolved":false,"context_lines":[{"line_number":448,"context_line":"                zte_pub.ZTE_VOLUME)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":451,"context_line":"        \"\"\"create  volume from  snapshot \"\"\""},{"line_number":452,"context_line":"        bvol_name \u003d self._translate_volume_name(snapshot[\u0027name\u0027])"},{"line_number":453,"context_line":"        cvol_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":454,"context_line":"        if volume[\u0027size\u0027] \u003c snapshot[\u0027volume_size\u0027]:"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_4dc13ae4","line":451,"range":{"start_line":451,"start_character":30,"end_line":451,"end_character":32},"updated":"2016-06-21 01:20:10.000000000","message":"Same.","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"82805485120a6a53be112e8eb0d7a3428eeaef22","unresolved":false,"context_lines":[{"line_number":448,"context_line":"                zte_pub.ZTE_VOLUME)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":451,"context_line":"        \"\"\"create  volume from  snapshot \"\"\""},{"line_number":452,"context_line":"        bvol_name \u003d self._translate_volume_name(snapshot[\u0027name\u0027])"},{"line_number":453,"context_line":"        cvol_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":454,"context_line":"        if volume[\u0027size\u0027] \u003c snapshot[\u0027volume_size\u0027]:"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_edb0e68d","line":451,"range":{"start_line":451,"start_character":11,"end_line":451,"end_character":17},"updated":"2016-06-21 01:20:10.000000000","message":"s/create/Create","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"2d880ab545df797293269c7d64344eb884f94304","unresolved":false,"context_lines":[{"line_number":448,"context_line":"                zte_pub.ZTE_VOLUME)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":451,"context_line":"        \"\"\"create  volume from  snapshot \"\"\""},{"line_number":452,"context_line":"        bvol_name \u003d self._translate_volume_name(snapshot[\u0027name\u0027])"},{"line_number":453,"context_line":"        cvol_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":454,"context_line":"        if volume[\u0027size\u0027] \u003c snapshot[\u0027volume_size\u0027]:"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_e5dd9e15","line":451,"range":{"start_line":451,"start_character":17,"end_line":451,"end_character":19},"in_reply_to":"5a9d85d2_0d91f2f0","updated":"2016-06-21 03:45:01.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"2d880ab545df797293269c7d64344eb884f94304","unresolved":false,"context_lines":[{"line_number":448,"context_line":"                zte_pub.ZTE_VOLUME)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":451,"context_line":"        \"\"\"create  volume from  snapshot \"\"\""},{"line_number":452,"context_line":"        bvol_name \u003d self._translate_volume_name(snapshot[\u0027name\u0027])"},{"line_number":453,"context_line":"        cvol_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":454,"context_line":"        if volume[\u0027size\u0027] \u003c snapshot[\u0027volume_size\u0027]:"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_c5e062cf","line":451,"range":{"start_line":451,"start_character":30,"end_line":451,"end_character":32},"in_reply_to":"5a9d85d2_4dc13ae4","updated":"2016-06-21 03:45:01.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"2d880ab545df797293269c7d64344eb884f94304","unresolved":false,"context_lines":[{"line_number":448,"context_line":"                zte_pub.ZTE_VOLUME)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":451,"context_line":"        \"\"\"create  volume from  snapshot \"\"\""},{"line_number":452,"context_line":"        bvol_name \u003d self._translate_volume_name(snapshot[\u0027name\u0027])"},{"line_number":453,"context_line":"        cvol_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":454,"context_line":"        if volume[\u0027size\u0027] \u003c snapshot[\u0027volume_size\u0027]:"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_05eb8ab1","line":451,"range":{"start_line":451,"start_character":11,"end_line":451,"end_character":17},"in_reply_to":"5a9d85d2_edb0e68d","updated":"2016-06-21 03:45:01.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8fd7afe6b0792e00b961566823c673eba6214f9f","unresolved":false,"context_lines":[{"line_number":456,"context_line":"                _(\u0027Cloned volume size invalid. \u0027"},{"line_number":457,"context_line":"                  \u0027Clone size: %(cloned_size)s. \u0027"},{"line_number":458,"context_line":"                  \u0027Src volume size: %(volume_size)s.\u0027) %"},{"line_number":459,"context_line":"                {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":460,"context_line":"                 \u0027volume_size\u0027: int(snapshot[\u0027volume_size\u0027])})"},{"line_number":461,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":462,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_b4b594ce","line":459,"updated":"2016-06-20 20:30:56.000000000","message":"Same as above.","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"cd8c4a46a4fbcf83ff48eb207f481a5273192055","unresolved":false,"context_lines":[{"line_number":456,"context_line":"                _(\u0027Cloned volume size invalid. \u0027"},{"line_number":457,"context_line":"                  \u0027Clone size: %(cloned_size)s. \u0027"},{"line_number":458,"context_line":"                  \u0027Src volume size: %(volume_size)s.\u0027) %"},{"line_number":459,"context_line":"                {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":460,"context_line":"                 \u0027volume_size\u0027: int(snapshot[\u0027volume_size\u0027])})"},{"line_number":461,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":462,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_cdad2a33","line":459,"in_reply_to":"5a9d85d2_b4b594ce","updated":"2016-06-21 01:16:07.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8fd7afe6b0792e00b961566823c673eba6214f9f","unresolved":false,"context_lines":[{"line_number":457,"context_line":"                  \u0027Clone size: %(cloned_size)s. \u0027"},{"line_number":458,"context_line":"                  \u0027Src volume size: %(volume_size)s.\u0027) %"},{"line_number":459,"context_line":"                {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":460,"context_line":"                 \u0027volume_size\u0027: int(snapshot[\u0027volume_size\u0027])})"},{"line_number":461,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":462,"context_line":"        else:"},{"line_number":463,"context_line":"            volume_size \u003d float("}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_f4c71c43","line":460,"updated":"2016-06-20 20:30:56.000000000","message":"Same as above.","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"cd8c4a46a4fbcf83ff48eb207f481a5273192055","unresolved":false,"context_lines":[{"line_number":457,"context_line":"                  \u0027Clone size: %(cloned_size)s. \u0027"},{"line_number":458,"context_line":"                  \u0027Src volume size: %(volume_size)s.\u0027) %"},{"line_number":459,"context_line":"                {\u0027cloned_size\u0027: int(volume[\u0027size\u0027]),"},{"line_number":460,"context_line":"                 \u0027volume_size\u0027: int(snapshot[\u0027volume_size\u0027])})"},{"line_number":461,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":462,"context_line":"        else:"},{"line_number":463,"context_line":"            volume_size \u003d float("}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_2dab0e1f","line":460,"in_reply_to":"5a9d85d2_f4c71c43","updated":"2016-06-21 01:16:07.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8fd7afe6b0792e00b961566823c673eba6214f9f","unresolved":false,"context_lines":[{"line_number":485,"context_line":"        return self._stats"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"    def _translate_host_name(self, host_name):"},{"line_number":488,"context_line":"        new_name \u003d \u0027host_\u0027 + six.text_type(hash(host_name))"},{"line_number":489,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":490,"context_line":"        LOG.debug(\u0027_translate_host_name:Name in cinder: %(old)s, \u0027"},{"line_number":491,"context_line":"                  \u0027new name in storage system: %(new)s.\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_54827095","line":488,"updated":"2016-06-20 20:30:56.000000000","message":"As noted in previous patch sets, you can\u0027t use hash() here.  It will break over time because it isn\u0027t a stable string hash function.","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"3b6b54d685894fdc7fe1c8a38d7ac329cc8f926d","unresolved":false,"context_lines":[{"line_number":485,"context_line":"        return self._stats"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"    def _translate_host_name(self, host_name):"},{"line_number":488,"context_line":"        new_name \u003d \u0027host_\u0027 + six.text_type(hash(host_name))"},{"line_number":489,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":490,"context_line":"        LOG.debug(\u0027_translate_host_name:Name in cinder: %(old)s, \u0027"},{"line_number":491,"context_line":"                  \u0027new name in storage system: %(new)s.\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_eeec562b","line":488,"in_reply_to":"5a9d85d2_54827095","updated":"2016-06-21 06:38:12.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8fd7afe6b0792e00b961566823c673eba6214f9f","unresolved":false,"context_lines":[{"line_number":495,"context_line":""},{"line_number":496,"context_line":"    def _translate_volume_name(self, vol_name):"},{"line_number":497,"context_line":"        new_name \u003d zte_pub.ZTE_VOL__NAME_PREFIX_NEW + six.text_type("},{"line_number":498,"context_line":"            hash(vol_name))"},{"line_number":499,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"        LOG.debug(\u0027_translate_volume_name:Name in cinder: %(old)s, \u0027"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_944a1882","line":498,"updated":"2016-06-20 20:30:56.000000000","message":"Same re: hash.","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"3b6b54d685894fdc7fe1c8a38d7ac329cc8f926d","unresolved":false,"context_lines":[{"line_number":495,"context_line":""},{"line_number":496,"context_line":"    def _translate_volume_name(self, vol_name):"},{"line_number":497,"context_line":"        new_name \u003d zte_pub.ZTE_VOL__NAME_PREFIX_NEW + six.text_type("},{"line_number":498,"context_line":"            hash(vol_name))"},{"line_number":499,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"        LOG.debug(\u0027_translate_volume_name:Name in cinder: %(old)s, \u0027"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_4ef48af1","line":498,"in_reply_to":"5a9d85d2_944a1882","updated":"2016-06-21 06:38:12.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8fd7afe6b0792e00b961566823c673eba6214f9f","unresolved":false,"context_lines":[{"line_number":643,"context_line":"                targetips.append(net_cfg_info[item][\u0027cIpAddr\u0027])"},{"line_number":644,"context_line":"        return targetips"},{"line_number":645,"context_line":""},{"line_number":646,"context_line":"    @utils.synchronized(\u0027locked_initialize_connection\u0027)"},{"line_number":647,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":648,"context_line":"        \"\"\"Map a volume to a host and return target iSCSI information.\"\"\""},{"line_number":649,"context_line":"        initiator_name \u003d connector[\u0027initiator\u0027]"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_14f90881","line":646,"updated":"2016-06-20 20:30:56.000000000","message":"Please use \u0027zte_locked_initialized_connection\u0027.\n\n(So that someone debugging locking issues can tell where this came from easily.)","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"cd8c4a46a4fbcf83ff48eb207f481a5273192055","unresolved":false,"context_lines":[{"line_number":643,"context_line":"                targetips.append(net_cfg_info[item][\u0027cIpAddr\u0027])"},{"line_number":644,"context_line":"        return targetips"},{"line_number":645,"context_line":""},{"line_number":646,"context_line":"    @utils.synchronized(\u0027locked_initialize_connection\u0027)"},{"line_number":647,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":648,"context_line":"        \"\"\"Map a volume to a host and return target iSCSI information.\"\"\""},{"line_number":649,"context_line":"        initiator_name \u003d connector[\u0027initiator\u0027]"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_4d681af6","line":646,"in_reply_to":"5a9d85d2_14f90881","updated":"2016-06-21 01:16:07.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8fd7afe6b0792e00b961566823c673eba6214f9f","unresolved":false,"context_lines":[{"line_number":691,"context_line":""},{"line_number":692,"context_line":"        return {\u0027driver_volume_type\u0027: \u0027iscsi\u0027, \u0027data\u0027: properties}"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"    @utils.synchronized(\u0027locked_initialize_connection\u0027)"},{"line_number":695,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"},{"line_number":696,"context_line":"        \"\"\"Delete map between a volume and a host.\"\"\""},{"line_number":697,"context_line":"        initiator_name \u003d connector[\u0027initiator\u0027]"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_54f3909e","line":694,"updated":"2016-06-20 20:30:56.000000000","message":"Please use \u0027zte_locked_initialized_connection\u0027.","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"cd8c4a46a4fbcf83ff48eb207f481a5273192055","unresolved":false,"context_lines":[{"line_number":691,"context_line":""},{"line_number":692,"context_line":"        return {\u0027driver_volume_type\u0027: \u0027iscsi\u0027, \u0027data\u0027: properties}"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"    @utils.synchronized(\u0027locked_initialize_connection\u0027)"},{"line_number":695,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"},{"line_number":696,"context_line":"        \"\"\"Delete map between a volume and a host.\"\"\""},{"line_number":697,"context_line":"        initiator_name \u003d connector[\u0027initiator\u0027]"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_cd740ad1","line":694,"in_reply_to":"5a9d85d2_54f3909e","updated":"2016-06-21 01:16:07.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"82805485120a6a53be112e8eb0d7a3428eeaef22","unresolved":false,"context_lines":[{"line_number":709,"context_line":"        try:"},{"line_number":710,"context_line":"            iscsi_info[\u0027DefaultTargetIPs\u0027] \u003d self._get_net_cfg_ips()"},{"line_number":711,"context_line":"            if not iscsi_info[\u0027DefaultTargetIPs\u0027]:"},{"line_number":712,"context_line":"                err_msg \u003d _(\u0027can not get target ip address\u0027)"},{"line_number":713,"context_line":"                raise exception.InvalidInput(reason\u003derr_msg)"},{"line_number":714,"context_line":"            initiator_list \u003d []"},{"line_number":715,"context_line":"            iscsi_info[\u0027Initiator\u0027] \u003d initiator_list"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_0d561229","line":712,"range":{"start_line":712,"start_character":51,"end_line":712,"end_character":58},"updated":"2016-06-21 01:20:10.000000000","message":"Missing . after address.","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"82805485120a6a53be112e8eb0d7a3428eeaef22","unresolved":false,"context_lines":[{"line_number":709,"context_line":"        try:"},{"line_number":710,"context_line":"            iscsi_info[\u0027DefaultTargetIPs\u0027] \u003d self._get_net_cfg_ips()"},{"line_number":711,"context_line":"            if not iscsi_info[\u0027DefaultTargetIPs\u0027]:"},{"line_number":712,"context_line":"                err_msg \u003d _(\u0027can not get target ip address\u0027)"},{"line_number":713,"context_line":"                raise exception.InvalidInput(reason\u003derr_msg)"},{"line_number":714,"context_line":"            initiator_list \u003d []"},{"line_number":715,"context_line":"            iscsi_info[\u0027Initiator\u0027] \u003d initiator_list"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_4d4f7a92","line":712,"range":{"start_line":712,"start_character":29,"end_line":712,"end_character":32},"updated":"2016-06-21 01:20:10.000000000","message":"s/can/Can","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"2d880ab545df797293269c7d64344eb884f94304","unresolved":false,"context_lines":[{"line_number":709,"context_line":"        try:"},{"line_number":710,"context_line":"            iscsi_info[\u0027DefaultTargetIPs\u0027] \u003d self._get_net_cfg_ips()"},{"line_number":711,"context_line":"            if not iscsi_info[\u0027DefaultTargetIPs\u0027]:"},{"line_number":712,"context_line":"                err_msg \u003d _(\u0027can not get target ip address\u0027)"},{"line_number":713,"context_line":"                raise exception.InvalidInput(reason\u003derr_msg)"},{"line_number":714,"context_line":"            initiator_list \u003d []"},{"line_number":715,"context_line":"            iscsi_info[\u0027Initiator\u0027] \u003d initiator_list"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_e5047e7f","line":712,"range":{"start_line":712,"start_character":51,"end_line":712,"end_character":58},"in_reply_to":"5a9d85d2_0d561229","updated":"2016-06-21 03:45:01.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"2d880ab545df797293269c7d64344eb884f94304","unresolved":false,"context_lines":[{"line_number":709,"context_line":"        try:"},{"line_number":710,"context_line":"            iscsi_info[\u0027DefaultTargetIPs\u0027] \u003d self._get_net_cfg_ips()"},{"line_number":711,"context_line":"            if not iscsi_info[\u0027DefaultTargetIPs\u0027]:"},{"line_number":712,"context_line":"                err_msg \u003d _(\u0027can not get target ip address\u0027)"},{"line_number":713,"context_line":"                raise exception.InvalidInput(reason\u003derr_msg)"},{"line_number":714,"context_line":"            initiator_list \u003d []"},{"line_number":715,"context_line":"            iscsi_info[\u0027Initiator\u0027] \u003d initiator_list"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_05026a6f","line":712,"range":{"start_line":712,"start_character":29,"end_line":712,"end_character":32},"in_reply_to":"5a9d85d2_4d4f7a92","updated":"2016-06-21 03:45:01.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8fd7afe6b0792e00b961566823c673eba6214f9f","unresolved":false,"context_lines":[{"line_number":722,"context_line":""},{"line_number":723,"context_line":"    def _translate_grp_name(self, grp_name):"},{"line_number":724,"context_line":"        new_name \u003d zte_pub.ZTE_HOST_GROUP_NAME_PREFIX + six.text_type("},{"line_number":725,"context_line":"            hash(grp_name))"},{"line_number":726,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":727,"context_line":""},{"line_number":728,"context_line":"        LOG.debug(\u0027_translate_grp_name:Name in cinder: %(old)s, \u0027"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_744fac92","line":725,"updated":"2016-06-20 20:30:56.000000000","message":"Same re: hash.","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"3b6b54d685894fdc7fe1c8a38d7ac329cc8f926d","unresolved":false,"context_lines":[{"line_number":722,"context_line":""},{"line_number":723,"context_line":"    def _translate_grp_name(self, grp_name):"},{"line_number":724,"context_line":"        new_name \u003d zte_pub.ZTE_HOST_GROUP_NAME_PREFIX + six.text_type("},{"line_number":725,"context_line":"            hash(grp_name))"},{"line_number":726,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":727,"context_line":""},{"line_number":728,"context_line":"        LOG.debug(\u0027_translate_grp_name:Name in cinder: %(old)s, \u0027"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_6ed98683","line":725,"in_reply_to":"5a9d85d2_744fac92","updated":"2016-06-21 06:38:12.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"080d35c961fd33c59cc062fa1e6a928a1c46e4e4","unresolved":false,"context_lines":[{"line_number":835,"context_line":"        map_group_name \u003d self._translate_grp_name(initiator_name)"},{"line_number":836,"context_line":""},{"line_number":837,"context_line":"        # lunid is -1,means lun not exist,no need to delete"},{"line_number":838,"context_line":"        if lunid !\u003d -1:"},{"line_number":839,"context_line":"            del_vol_from_grp \u003d {"},{"line_number":840,"context_line":"                \u0027cMapGrpName\u0027: map_group_name,"},{"line_number":841,"context_line":"                \u0027sdwLunId\u0027: lunid}"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_6596ce4d","line":838,"range":{"start_line":838,"start_character":20,"end_line":838,"end_character":21},"updated":"2016-06-21 01:40:36.000000000","message":"Why _get_lunid_from_vol return -1 if not get lun_id, i think return None is better, here can write like \u0027if not lun_id\u0027, also don\u0027t use magic number, you can define there numbers as constants.","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"2d880ab545df797293269c7d64344eb884f94304","unresolved":false,"context_lines":[{"line_number":835,"context_line":"        map_group_name \u003d self._translate_grp_name(initiator_name)"},{"line_number":836,"context_line":""},{"line_number":837,"context_line":"        # lunid is -1,means lun not exist,no need to delete"},{"line_number":838,"context_line":"        if lunid !\u003d -1:"},{"line_number":839,"context_line":"            del_vol_from_grp \u003d {"},{"line_number":840,"context_line":"                \u0027cMapGrpName\u0027: map_group_name,"},{"line_number":841,"context_line":"                \u0027sdwLunId\u0027: lunid}"}],"source_content_type":"text/x-python","patch_set":23,"id":"5a9d85d2_ae21b3fd","line":838,"range":{"start_line":838,"start_character":20,"end_line":838,"end_character":21},"in_reply_to":"5a9d85d2_6596ce4d","updated":"2016-06-21 03:45:01.000000000","message":"Done","commit_id":"6396a80760d263bc2a498d093a4f0b9cc7ee8a07"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"c41e2d5c01e9e5f9c42a0381e95d6f39dadf76ff","unresolved":false,"context_lines":[{"line_number":540,"context_line":"            lun_num \u003d ret[\u0027data\u0027][\u0027sdwLunNum\u0027]"},{"line_number":541,"context_line":"            return int(lun_num)"},{"line_number":542,"context_line":"        elif ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_ERR_GROUP_NOT_EXIST:"},{"line_number":543,"context_line":"            return -1"},{"line_number":544,"context_line":"        else:"},{"line_number":545,"context_line":"            err_msg \u003d (_(\u0027_get_group_lunnum:Get group info fail. \u0027"},{"line_number":546,"context_line":"                         \u0027Group name:%(name)s with Return code: %(ret)s.\u0027) %"}],"source_content_type":"text/x-python","patch_set":25,"id":"5a9d85d2_4458eb32","line":543,"range":{"start_line":543,"start_character":20,"end_line":543,"end_character":21},"updated":"2016-06-21 07:39:39.000000000","message":"Same, why return -1, if there have any special meaning?","commit_id":"9c2f524122943d7d0457e9fd1cd4f1973c60c997"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"2b9055c549debd89b96030ea0addddfa79167c8d","unresolved":false,"context_lines":[{"line_number":540,"context_line":"            lun_num \u003d ret[\u0027data\u0027][\u0027sdwLunNum\u0027]"},{"line_number":541,"context_line":"            return int(lun_num)"},{"line_number":542,"context_line":"        elif ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_ERR_GROUP_NOT_EXIST:"},{"line_number":543,"context_line":"            return -1"},{"line_number":544,"context_line":"        else:"},{"line_number":545,"context_line":"            err_msg \u003d (_(\u0027_get_group_lunnum:Get group info fail. \u0027"},{"line_number":546,"context_line":"                         \u0027Group name:%(name)s with Return code: %(ret)s.\u0027) %"}],"source_content_type":"text/x-python","patch_set":25,"id":"5a9d85d2_a7727147","line":543,"range":{"start_line":543,"start_character":20,"end_line":543,"end_character":21},"in_reply_to":"5a9d85d2_4458eb32","updated":"2016-06-21 08:04:01.000000000","message":"Here, we need to return a number which can be compared with \"0\" later.","commit_id":"9c2f524122943d7d0457e9fd1cd4f1973c60c997"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"fba8adfbe4028ff5e48772d001c7fb3e9662eb0c","unresolved":false,"context_lines":[{"line_number":540,"context_line":"            lun_num \u003d ret[\u0027data\u0027][\u0027sdwLunNum\u0027]"},{"line_number":541,"context_line":"            return int(lun_num)"},{"line_number":542,"context_line":"        elif ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_ERR_GROUP_NOT_EXIST:"},{"line_number":543,"context_line":"            return -1"},{"line_number":544,"context_line":"        else:"},{"line_number":545,"context_line":"            err_msg \u003d (_(\u0027_get_group_lunnum:Get group info fail. \u0027"},{"line_number":546,"context_line":"                         \u0027Group name:%(name)s with Return code: %(ret)s.\u0027) %"}],"source_content_type":"text/x-python","patch_set":25,"id":"3aaa91ec_7f49578b","line":543,"range":{"start_line":543,"start_character":20,"end_line":543,"end_character":21},"in_reply_to":"5a9d85d2_62b517ed","updated":"2016-06-22 07:20:41.000000000","message":"We try to get the lun number in the group in order to delete the group if there is no lun in the group.  If this attempt fails, it doesn\u0027t matter.","commit_id":"9c2f524122943d7d0457e9fd1cd4f1973c60c997"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"eb1c22a1c6ccb242cdddb9d0d022dedc9b702bf0","unresolved":false,"context_lines":[{"line_number":540,"context_line":"            lun_num \u003d ret[\u0027data\u0027][\u0027sdwLunNum\u0027]"},{"line_number":541,"context_line":"            return int(lun_num)"},{"line_number":542,"context_line":"        elif ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_ERR_GROUP_NOT_EXIST:"},{"line_number":543,"context_line":"            return -1"},{"line_number":544,"context_line":"        else:"},{"line_number":545,"context_line":"            err_msg \u003d (_(\u0027_get_group_lunnum:Get group info fail. \u0027"},{"line_number":546,"context_line":"                         \u0027Group name:%(name)s with Return code: %(ret)s.\u0027) %"}],"source_content_type":"text/x-python","patch_set":25,"id":"5a9d85d2_62b517ed","line":543,"range":{"start_line":543,"start_character":20,"end_line":543,"end_character":21},"in_reply_to":"5a9d85d2_a7727147","updated":"2016-06-21 08:20:38.000000000","message":"I\u0027m still confused. If group has lun it can return lun_num, if group doesn\u0027t exist, there should raise an exception.","commit_id":"9c2f524122943d7d0457e9fd1cd4f1973c60c997"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"c41e2d5c01e9e5f9c42a0381e95d6f39dadf76ff","unresolved":false,"context_lines":[{"line_number":843,"context_line":"        map_group_name \u003d self._translate_grp_name(initiator_name)"},{"line_number":844,"context_line":""},{"line_number":845,"context_line":"        # lun not exist, no need to delete"},{"line_number":846,"context_line":"        if (lunid !\u003d zte_pub.ZTE_LUNID_NULL"},{"line_number":847,"context_line":"                and lunid is not None):"},{"line_number":848,"context_line":"            del_vol_from_grp \u003d {"},{"line_number":849,"context_line":"                \u0027cMapGrpName\u0027: map_group_name,"}],"source_content_type":"text/x-python","patch_set":25,"id":"5a9d85d2_8497738f","line":846,"range":{"start_line":846,"start_character":29,"end_line":846,"end_character":43},"updated":"2016-06-21 07:39:39.000000000","message":"_get_lunid_from_vol return None if lun doesn\u0027t exist, so lunid !\u003d zte_pub.ZTE_LUNID_NULL is not needed, I think here is \u0027if lunid: \u0027 instead.","commit_id":"9c2f524122943d7d0457e9fd1cd4f1973c60c997"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"2b9055c549debd89b96030ea0addddfa79167c8d","unresolved":false,"context_lines":[{"line_number":843,"context_line":"        map_group_name \u003d self._translate_grp_name(initiator_name)"},{"line_number":844,"context_line":""},{"line_number":845,"context_line":"        # lun not exist, no need to delete"},{"line_number":846,"context_line":"        if (lunid !\u003d zte_pub.ZTE_LUNID_NULL"},{"line_number":847,"context_line":"                and lunid is not None):"},{"line_number":848,"context_line":"            del_vol_from_grp \u003d {"},{"line_number":849,"context_line":"                \u0027cMapGrpName\u0027: map_group_name,"}],"source_content_type":"text/x-python","patch_set":25,"id":"5a9d85d2_4742ad11","line":846,"range":{"start_line":846,"start_character":29,"end_line":846,"end_character":43},"in_reply_to":"5a9d85d2_8497738f","updated":"2016-06-21 08:04:01.000000000","message":"In the function _remove_volume_from_group, \"lunid\" is got　from　ZTE API　＂GetGrpNamesOfVol＂．　Its value　could be -1.","commit_id":"9c2f524122943d7d0457e9fd1cd4f1973c60c997"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0908717359c7405a574b18186e8bc2077ecb0de","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    cfg.StrOpt(\u0027zteUserName\u0027, default\u003d\u0027\u0027, help\u003d\u0027User name.\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt(\u0027zteUserPassword\u0027, default\u003d\u0027\u0027, secret\u003dTrue,"},{"line_number":47,"context_line":"               help\u003d\u0027User password.\u0027),"},{"line_number":48,"context_line":"    cfg.IntOpt(\u0027zteChunkSize\u0027, default\u003d4, help\u003d\u0027Virtual block size of pool.\u0027),"},{"line_number":49,"context_line":"    cfg.IntOpt(\u0027zteAheadReadSize\u0027, default\u003d8, help\u003d\u0027Cache readahead size.\u0027),"},{"line_number":50,"context_line":"    cfg.IntOpt(\u0027zteCachePolicy\u0027, default\u003d1, help\u003d\u0027Cache policy.\u0027),"},{"line_number":51,"context_line":"    cfg.IntOpt(\u0027zteSSDCacheSwitch\u0027, default\u003d1, help\u003d\u0027SSD cache switch.\u0027),"},{"line_number":52,"context_line":"    cfg.ListOpt(\u0027zteStoragePool\u0027, default\u003d[], help\u003d\u0027Pool name list.\u0027),"},{"line_number":53,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAllocPolicy\u0027, default\u003d0,"},{"line_number":54,"context_line":"               help\u003d\u0027Pool volume alloc policy.\u0027),"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_159f7651","line":51,"range":{"start_line":48,"start_character":0,"end_line":51,"end_character":73},"updated":"2016-06-27 15:12:15.000000000","message":"What are the expected values? Range?","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"cd51b9c0fb1d2b6addfd7b5422a8ecd73b269b3a","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    cfg.StrOpt(\u0027zteUserName\u0027, default\u003d\u0027\u0027, help\u003d\u0027User name.\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt(\u0027zteUserPassword\u0027, default\u003d\u0027\u0027, secret\u003dTrue,"},{"line_number":47,"context_line":"               help\u003d\u0027User password.\u0027),"},{"line_number":48,"context_line":"    cfg.IntOpt(\u0027zteChunkSize\u0027, default\u003d4, help\u003d\u0027Virtual block size of pool.\u0027),"},{"line_number":49,"context_line":"    cfg.IntOpt(\u0027zteAheadReadSize\u0027, default\u003d8, help\u003d\u0027Cache readahead size.\u0027),"},{"line_number":50,"context_line":"    cfg.IntOpt(\u0027zteCachePolicy\u0027, default\u003d1, help\u003d\u0027Cache policy.\u0027),"},{"line_number":51,"context_line":"    cfg.IntOpt(\u0027zteSSDCacheSwitch\u0027, default\u003d1, help\u003d\u0027SSD cache switch.\u0027),"},{"line_number":52,"context_line":"    cfg.ListOpt(\u0027zteStoragePool\u0027, default\u003d[], help\u003d\u0027Pool name list.\u0027),"},{"line_number":53,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAllocPolicy\u0027, default\u003d0,"},{"line_number":54,"context_line":"               help\u003d\u0027Pool volume alloc policy.\u0027),"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_f05451cb","line":51,"range":{"start_line":48,"start_character":0,"end_line":51,"end_character":73},"in_reply_to":"3aaa91ec_159f7651","updated":"2016-06-28 03:27:42.000000000","message":"Thanks for your review.There is no need to modify the default value generally. \t\t\nThe default values can be modified according to the user\u0027s manual.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"51b215a6bcc3ae2cfdcbaccaacfe70283ef94551","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    cfg.StrOpt(\u0027zteUserName\u0027, default\u003d\u0027\u0027, help\u003d\u0027User name.\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt(\u0027zteUserPassword\u0027, default\u003d\u0027\u0027, secret\u003dTrue,"},{"line_number":47,"context_line":"               help\u003d\u0027User password.\u0027),"},{"line_number":48,"context_line":"    cfg.IntOpt(\u0027zteChunkSize\u0027, default\u003d4, help\u003d\u0027Virtual block size of pool.\u0027),"},{"line_number":49,"context_line":"    cfg.IntOpt(\u0027zteAheadReadSize\u0027, default\u003d8, help\u003d\u0027Cache readahead size.\u0027),"},{"line_number":50,"context_line":"    cfg.IntOpt(\u0027zteCachePolicy\u0027, default\u003d1, help\u003d\u0027Cache policy.\u0027),"},{"line_number":51,"context_line":"    cfg.IntOpt(\u0027zteSSDCacheSwitch\u0027, default\u003d1, help\u003d\u0027SSD cache switch.\u0027),"},{"line_number":52,"context_line":"    cfg.ListOpt(\u0027zteStoragePool\u0027, default\u003d[], help\u003d\u0027Pool name list.\u0027),"},{"line_number":53,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAllocPolicy\u0027, default\u003d0,"},{"line_number":54,"context_line":"               help\u003d\u0027Pool volume alloc policy.\u0027),"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_3d731717","line":51,"range":{"start_line":48,"start_character":0,"end_line":51,"end_character":73},"in_reply_to":"3aaa91ec_c765081e","updated":"2016-06-29 02:40:03.000000000","message":"We will add more information here.These options are for expert users who should know these options\u0027s meanings.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"03577b3f4e828742a045c039b42b413e91ce1c44","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    cfg.StrOpt(\u0027zteUserName\u0027, default\u003d\u0027\u0027, help\u003d\u0027User name.\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt(\u0027zteUserPassword\u0027, default\u003d\u0027\u0027, secret\u003dTrue,"},{"line_number":47,"context_line":"               help\u003d\u0027User password.\u0027),"},{"line_number":48,"context_line":"    cfg.IntOpt(\u0027zteChunkSize\u0027, default\u003d4, help\u003d\u0027Virtual block size of pool.\u0027),"},{"line_number":49,"context_line":"    cfg.IntOpt(\u0027zteAheadReadSize\u0027, default\u003d8, help\u003d\u0027Cache readahead size.\u0027),"},{"line_number":50,"context_line":"    cfg.IntOpt(\u0027zteCachePolicy\u0027, default\u003d1, help\u003d\u0027Cache policy.\u0027),"},{"line_number":51,"context_line":"    cfg.IntOpt(\u0027zteSSDCacheSwitch\u0027, default\u003d1, help\u003d\u0027SSD cache switch.\u0027),"},{"line_number":52,"context_line":"    cfg.ListOpt(\u0027zteStoragePool\u0027, default\u003d[], help\u003d\u0027Pool name list.\u0027),"},{"line_number":53,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAllocPolicy\u0027, default\u003d0,"},{"line_number":54,"context_line":"               help\u003d\u0027Pool volume alloc policy.\u0027),"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_c765081e","line":51,"range":{"start_line":48,"start_character":0,"end_line":51,"end_character":73},"in_reply_to":"3aaa91ec_f05451cb","updated":"2016-06-28 12:21:51.000000000","message":"If there wasn\u0027t needed, they shouldn\u0027t be a parameter right? Its a good practice put the default values in the help string. This is the help string that will be imported in OpenStack Manuals, so you must put it here, otherwise it won\u0027t be in the config reference.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0908717359c7405a574b18186e8bc2077ecb0de","unresolved":false,"context_lines":[{"line_number":56,"context_line":"               help\u003d\u0027Pool volume move policy.\u0027),"},{"line_number":57,"context_line":"    cfg.IntOpt(\u0027ztePoolVolIsThin\u0027, default\u003dFalse,"},{"line_number":58,"context_line":"               help\u003d\u0027Whether it is a thin volume.\u0027),"},{"line_number":59,"context_line":"    cfg.IntOpt(\u0027ztePoolVolInitAllocedCapacity\u0027, default\u003d0,"},{"line_number":60,"context_line":"               help\u003d\u0027Pool volume init alloced Capacity.\u0027),"},{"line_number":61,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmThreshold\u0027, default\u003d0,"},{"line_number":62,"context_line":"               help\u003d\u0027Pool volume alarm threshold.\u0027),"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_b52942f5","line":59,"range":{"start_line":59,"start_character":30,"end_line":59,"end_character":37},"updated":"2016-06-27 15:12:15.000000000","message":"Allocated","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"cd51b9c0fb1d2b6addfd7b5422a8ecd73b269b3a","unresolved":false,"context_lines":[{"line_number":56,"context_line":"               help\u003d\u0027Pool volume move policy.\u0027),"},{"line_number":57,"context_line":"    cfg.IntOpt(\u0027ztePoolVolIsThin\u0027, default\u003dFalse,"},{"line_number":58,"context_line":"               help\u003d\u0027Whether it is a thin volume.\u0027),"},{"line_number":59,"context_line":"    cfg.IntOpt(\u0027ztePoolVolInitAllocedCapacity\u0027, default\u003d0,"},{"line_number":60,"context_line":"               help\u003d\u0027Pool volume init alloced Capacity.\u0027),"},{"line_number":61,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmThreshold\u0027, default\u003d0,"},{"line_number":62,"context_line":"               help\u003d\u0027Pool volume alarm threshold.\u0027),"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_70dce146","line":59,"range":{"start_line":59,"start_character":30,"end_line":59,"end_character":37},"in_reply_to":"3aaa91ec_b52942f5","updated":"2016-06-28 03:27:42.000000000","message":"Done","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0908717359c7405a574b18186e8bc2077ecb0de","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    cfg.IntOpt(\u0027ztePoolVolIsThin\u0027, default\u003dFalse,"},{"line_number":58,"context_line":"               help\u003d\u0027Whether it is a thin volume.\u0027),"},{"line_number":59,"context_line":"    cfg.IntOpt(\u0027ztePoolVolInitAllocedCapacity\u0027, default\u003d0,"},{"line_number":60,"context_line":"               help\u003d\u0027Pool volume init alloced Capacity.\u0027),"},{"line_number":61,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmThreshold\u0027, default\u003d0,"},{"line_number":62,"context_line":"               help\u003d\u0027Pool volume alarm threshold.\u0027),"},{"line_number":63,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmStopAllocFlag\u0027, default\u003d0,"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_35f7128e","line":60,"range":{"start_line":60,"start_character":38,"end_line":60,"end_character":45},"updated":"2016-06-27 15:12:15.000000000","message":"allocated","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"cd51b9c0fb1d2b6addfd7b5422a8ecd73b269b3a","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    cfg.IntOpt(\u0027ztePoolVolIsThin\u0027, default\u003dFalse,"},{"line_number":58,"context_line":"               help\u003d\u0027Whether it is a thin volume.\u0027),"},{"line_number":59,"context_line":"    cfg.IntOpt(\u0027ztePoolVolInitAllocedCapacity\u0027, default\u003d0,"},{"line_number":60,"context_line":"               help\u003d\u0027Pool volume init alloced Capacity.\u0027),"},{"line_number":61,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmThreshold\u0027, default\u003d0,"},{"line_number":62,"context_line":"               help\u003d\u0027Pool volume alarm threshold.\u0027),"},{"line_number":63,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmStopAllocFlag\u0027, default\u003d0,"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_b0e64914","line":60,"range":{"start_line":60,"start_character":38,"end_line":60,"end_character":45},"in_reply_to":"3aaa91ec_35f7128e","updated":"2016-06-28 03:27:42.000000000","message":"Done","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0908717359c7405a574b18186e8bc2077ecb0de","unresolved":false,"context_lines":[{"line_number":58,"context_line":"               help\u003d\u0027Whether it is a thin volume.\u0027),"},{"line_number":59,"context_line":"    cfg.IntOpt(\u0027ztePoolVolInitAllocedCapacity\u0027, default\u003d0,"},{"line_number":60,"context_line":"               help\u003d\u0027Pool volume init alloced Capacity.\u0027),"},{"line_number":61,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmThreshold\u0027, default\u003d0,"},{"line_number":62,"context_line":"               help\u003d\u0027Pool volume alarm threshold.\u0027),"},{"line_number":63,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmStopAllocFlag\u0027, default\u003d0,"},{"line_number":64,"context_line":"               help\u003d\u0027Pool volume alarm stop alloc flag.\u0027)"},{"line_number":65,"context_line":"]"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_551c5ec1","line":64,"range":{"start_line":61,"start_character":0,"end_line":64,"end_character":57},"updated":"2016-06-27 15:12:15.000000000","message":"Expected values? Range?","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"cd51b9c0fb1d2b6addfd7b5422a8ecd73b269b3a","unresolved":false,"context_lines":[{"line_number":58,"context_line":"               help\u003d\u0027Whether it is a thin volume.\u0027),"},{"line_number":59,"context_line":"    cfg.IntOpt(\u0027ztePoolVolInitAllocedCapacity\u0027, default\u003d0,"},{"line_number":60,"context_line":"               help\u003d\u0027Pool volume init alloced Capacity.\u0027),"},{"line_number":61,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmThreshold\u0027, default\u003d0,"},{"line_number":62,"context_line":"               help\u003d\u0027Pool volume alarm threshold.\u0027),"},{"line_number":63,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmStopAllocFlag\u0027, default\u003d0,"},{"line_number":64,"context_line":"               help\u003d\u0027Pool volume alarm stop alloc flag.\u0027)"},{"line_number":65,"context_line":"]"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_906ead94","line":64,"range":{"start_line":61,"start_character":0,"end_line":64,"end_character":57},"in_reply_to":"3aaa91ec_551c5ec1","updated":"2016-06-28 03:27:42.000000000","message":"Thanks for your review.There is no need to modify the default value generally. \t\t\nThe default values can be modified according to the user\u0027s manual.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"51b215a6bcc3ae2cfdcbaccaacfe70283ef94551","unresolved":false,"context_lines":[{"line_number":58,"context_line":"               help\u003d\u0027Whether it is a thin volume.\u0027),"},{"line_number":59,"context_line":"    cfg.IntOpt(\u0027ztePoolVolInitAllocedCapacity\u0027, default\u003d0,"},{"line_number":60,"context_line":"               help\u003d\u0027Pool volume init alloced Capacity.\u0027),"},{"line_number":61,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmThreshold\u0027, default\u003d0,"},{"line_number":62,"context_line":"               help\u003d\u0027Pool volume alarm threshold.\u0027),"},{"line_number":63,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmStopAllocFlag\u0027, default\u003d0,"},{"line_number":64,"context_line":"               help\u003d\u0027Pool volume alarm stop alloc flag.\u0027)"},{"line_number":65,"context_line":"]"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_bd5d477b","line":64,"range":{"start_line":61,"start_character":0,"end_line":64,"end_character":57},"in_reply_to":"3aaa91ec_871b00ca","updated":"2016-06-29 02:40:03.000000000","message":"We will add more information here. These options are for expert users who should know these options\u0027s meanings.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"03577b3f4e828742a045c039b42b413e91ce1c44","unresolved":false,"context_lines":[{"line_number":58,"context_line":"               help\u003d\u0027Whether it is a thin volume.\u0027),"},{"line_number":59,"context_line":"    cfg.IntOpt(\u0027ztePoolVolInitAllocedCapacity\u0027, default\u003d0,"},{"line_number":60,"context_line":"               help\u003d\u0027Pool volume init alloced Capacity.\u0027),"},{"line_number":61,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmThreshold\u0027, default\u003d0,"},{"line_number":62,"context_line":"               help\u003d\u0027Pool volume alarm threshold.\u0027),"},{"line_number":63,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmStopAllocFlag\u0027, default\u003d0,"},{"line_number":64,"context_line":"               help\u003d\u0027Pool volume alarm stop alloc flag.\u0027)"},{"line_number":65,"context_line":"]"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_871b00ca","line":64,"range":{"start_line":61,"start_character":0,"end_line":64,"end_character":57},"in_reply_to":"3aaa91ec_906ead94","updated":"2016-06-28 12:21:51.000000000","message":"If there wasn\u0027t needed, they shouldn\u0027t be a parameter right? Its a good practice put the default values in the help string. This is the help string that will be imported in OpenStack Manuals, so you must put it here, otherwise it won\u0027t be in the config reference.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0908717359c7405a574b18186e8bc2077ecb0de","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def check_for_setup_error(self):"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        zteControllerIP0 \u003d self.configuration.zteControllerIP0"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        if zteControllerIP0 is None:"},{"line_number":165,"context_line":"            msg \u003d (_(\"Controller IP is missing for ZTE driver.\"))"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_db0cff3d","line":162,"range":{"start_line":162,"start_character":8,"end_line":162,"end_character":62},"updated":"2016-06-27 15:12:15.000000000","message":"Not big deal, but you don\u0027t need to read this from the config as you have stored in self.login_info.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"cd51b9c0fb1d2b6addfd7b5422a8ecd73b269b3a","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def check_for_setup_error(self):"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        zteControllerIP0 \u003d self.configuration.zteControllerIP0"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        if zteControllerIP0 is None:"},{"line_number":165,"context_line":"            msg \u003d (_(\"Controller IP is missing for ZTE driver.\"))"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_d0a9557d","line":162,"range":{"start_line":162,"start_character":8,"end_line":162,"end_character":62},"in_reply_to":"3aaa91ec_db0cff3d","updated":"2016-06-28 03:27:42.000000000","message":"\"self.configuration.zteControllerIP0\" is the original value.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0908717359c7405a574b18186e8bc2077ecb0de","unresolved":false,"context_lines":[{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        zteControllerIP0 \u003d self.configuration.zteControllerIP0"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        if zteControllerIP0 is None:"},{"line_number":165,"context_line":"            msg \u003d (_(\"Controller IP is missing for ZTE driver.\"))"},{"line_number":166,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_bbe77345","line":164,"range":{"start_line":164,"start_character":8,"end_line":164,"end_character":36},"updated":"2016-06-27 15:12:15.000000000","message":"Is this the only config that should stop the driver from proceed loading? I seems UserName and UserPassword, maybe others, also would be mandatory.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"3ee5295e39262585fbd4cb9ca97c711ac56aeff8","unresolved":false,"context_lines":[{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        zteControllerIP0 \u003d self.configuration.zteControllerIP0"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        if zteControllerIP0 is None:"},{"line_number":165,"context_line":"            msg \u003d (_(\"Controller IP is missing for ZTE driver.\"))"},{"line_number":166,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_cb67eae8","line":164,"range":{"start_line":164,"start_character":8,"end_line":164,"end_character":36},"in_reply_to":"3aaa91ec_bbe77345","updated":"2016-06-28 06:52:51.000000000","message":"Done","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0908717359c7405a574b18186e8bc2077ecb0de","unresolved":false,"context_lines":[{"line_number":216,"context_line":"            \u0027sdwStripeDepth\u0027: self.configuration.zteChunkSize,"},{"line_number":217,"context_line":"            \u0027qwCapacity\u0027: float(volume_size),"},{"line_number":218,"context_line":"            \u0027sdwCtrlPrefer\u0027: 0xFFFF,"},{"line_number":219,"context_line":"            \u0027sdwCachePolicy\u0027: self.configuration.zteCachePolicy,"},{"line_number":220,"context_line":"            \u0027sdwAheadReadSize\u0027: self.configuration.zteAheadReadSize,"},{"line_number":221,"context_line":"            \u0027sdwAllocPolicy\u0027: self.configuration.ztePoolVolAllocPolicy,"},{"line_number":222,"context_line":"            \u0027sdwMovePolicy\u0027: self.configuration.ztePoolVolMovePolicy,"},{"line_number":223,"context_line":"            \u0027udwIsThinVol\u0027: self.configuration.ztePoolVolIsThin,"},{"line_number":224,"context_line":"            \u0027uqwInitAllocedCapacity\u0027:"},{"line_number":225,"context_line":"            self.configuration.ztePoolVolInitAllocedCapacity,"},{"line_number":226,"context_line":"            \u0027sdwAlarmThreshold\u0027:"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_01e618e8","line":223,"range":{"start_line":219,"start_character":0,"end_line":223,"end_character":64},"updated":"2016-06-27 15:12:15.000000000","message":"You should validate those options in check_for_setup_for_errors(), otherwise will be harder to the admin to figure out problems with driver setup.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"3ee5295e39262585fbd4cb9ca97c711ac56aeff8","unresolved":false,"context_lines":[{"line_number":216,"context_line":"            \u0027sdwStripeDepth\u0027: self.configuration.zteChunkSize,"},{"line_number":217,"context_line":"            \u0027qwCapacity\u0027: float(volume_size),"},{"line_number":218,"context_line":"            \u0027sdwCtrlPrefer\u0027: 0xFFFF,"},{"line_number":219,"context_line":"            \u0027sdwCachePolicy\u0027: self.configuration.zteCachePolicy,"},{"line_number":220,"context_line":"            \u0027sdwAheadReadSize\u0027: self.configuration.zteAheadReadSize,"},{"line_number":221,"context_line":"            \u0027sdwAllocPolicy\u0027: self.configuration.ztePoolVolAllocPolicy,"},{"line_number":222,"context_line":"            \u0027sdwMovePolicy\u0027: self.configuration.ztePoolVolMovePolicy,"},{"line_number":223,"context_line":"            \u0027udwIsThinVol\u0027: self.configuration.ztePoolVolIsThin,"},{"line_number":224,"context_line":"            \u0027uqwInitAllocedCapacity\u0027:"},{"line_number":225,"context_line":"            self.configuration.ztePoolVolInitAllocedCapacity,"},{"line_number":226,"context_line":"            \u0027sdwAlarmThreshold\u0027:"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_2be14ed1","line":223,"range":{"start_line":219,"start_character":0,"end_line":223,"end_character":64},"in_reply_to":"3aaa91ec_01e618e8","updated":"2016-06-28 06:52:51.000000000","message":"Thanks for your review.There is no need to modify the default value generally.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0908717359c7405a574b18186e8bc2077ecb0de","unresolved":false,"context_lines":[{"line_number":246,"context_line":"            raise exception.VolumeDriverException(_(\u0027No pool available.\u0027))"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    def create_volume(self, volume):"},{"line_number":249,"context_line":"        \"\"\"Create a new volume.\"\"\""},{"line_number":250,"context_line":"        volume_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        volume_size \u003d float(volume[\u0027size\u0027] * units.Mi)"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_416ca036","line":249,"updated":"2016-06-27 15:12:15.000000000","message":"Its a good practice to LOG.debug() the volume.id being created, deleted, cloned, etc.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"51b215a6bcc3ae2cfdcbaccaacfe70283ef94551","unresolved":false,"context_lines":[{"line_number":246,"context_line":"            raise exception.VolumeDriverException(_(\u0027No pool available.\u0027))"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    def create_volume(self, volume):"},{"line_number":249,"context_line":"        \"\"\"Create a new volume.\"\"\""},{"line_number":250,"context_line":"        volume_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        volume_size \u003d float(volume[\u0027size\u0027] * units.Mi)"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_bd470776","line":249,"in_reply_to":"3aaa91ec_2bf2ee6f","updated":"2016-06-29 02:40:03.000000000","message":"\"Log.debug\" is used for debugging.   After we have pushed this raw version,  We will add more debug information where it is necessary.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"3ee5295e39262585fbd4cb9ca97c711ac56aeff8","unresolved":false,"context_lines":[{"line_number":246,"context_line":"            raise exception.VolumeDriverException(_(\u0027No pool available.\u0027))"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    def create_volume(self, volume):"},{"line_number":249,"context_line":"        \"\"\"Create a new volume.\"\"\""},{"line_number":250,"context_line":"        volume_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        volume_size \u003d float(volume[\u0027size\u0027] * units.Mi)"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_2bf2ee6f","line":249,"in_reply_to":"3aaa91ec_416ca036","updated":"2016-06-28 06:52:51.000000000","message":"We will improve this in the next version.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"03577b3f4e828742a045c039b42b413e91ce1c44","unresolved":false,"context_lines":[{"line_number":246,"context_line":"            raise exception.VolumeDriverException(_(\u0027No pool available.\u0027))"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    def create_volume(self, volume):"},{"line_number":249,"context_line":"        \"\"\"Create a new volume.\"\"\""},{"line_number":250,"context_line":"        volume_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        volume_size \u003d float(volume[\u0027size\u0027] * units.Mi)"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_eafe0b04","line":249,"in_reply_to":"3aaa91ec_416ca036","updated":"2016-06-28 12:21:51.000000000","message":"Which version? The next patchset?","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0908717359c7405a574b18186e8bc2077ecb0de","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        volume_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":293,"context_line":"        LOG.debug(\u0027delete_volume: volume name: %s.\u0027, volume_name)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        self._delete_clone_relation_by_volname(volume_name, False)"},{"line_number":296,"context_line":"        self._remove_volume_from_group(volume_name)"},{"line_number":297,"context_line":"        self._delete_volume(volume_name)"},{"line_number":298,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_ecae6097","line":295,"range":{"start_line":295,"start_character":13,"end_line":295,"end_character":46},"updated":"2016-06-27 15:12:15.000000000","message":"Cinder should take care of volume/snapshots relations. If a snapshot have clones, Cinder API won\u0027t allow it be deleted unless the user delete then.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"3ee5295e39262585fbd4cb9ca97c711ac56aeff8","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        volume_name \u003d self._translate_volume_name(volume[\u0027name\u0027])"},{"line_number":293,"context_line":"        LOG.debug(\u0027delete_volume: volume name: %s.\u0027, volume_name)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        self._delete_clone_relation_by_volname(volume_name, False)"},{"line_number":296,"context_line":"        self._remove_volume_from_group(volume_name)"},{"line_number":297,"context_line":"        self._delete_volume(volume_name)"},{"line_number":298,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_2bc02ee0","line":295,"range":{"start_line":295,"start_character":13,"end_line":295,"end_character":46},"in_reply_to":"3aaa91ec_ecae6097","updated":"2016-06-28 06:52:51.000000000","message":"This internal function is based on our implementation.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0908717359c7405a574b18186e8bc2077ecb0de","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        LOG.debug(\u0027delete_volume: volume name: %s.\u0027, volume_name)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        self._delete_clone_relation_by_volname(volume_name, False)"},{"line_number":296,"context_line":"        self._remove_volume_from_group(volume_name)"},{"line_number":297,"context_line":"        self._delete_volume(volume_name)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"    def _delete_cvol(self, cloned_name, issnapshot):"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_4ca2149c","line":296,"range":{"start_line":296,"start_character":13,"end_line":296,"end_character":38},"updated":"2016-06-27 15:12:15.000000000","message":"The same here. If  a volume is being deleted, Cinder already made sure it has no connections.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"3ee5295e39262585fbd4cb9ca97c711ac56aeff8","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        LOG.debug(\u0027delete_volume: volume name: %s.\u0027, volume_name)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        self._delete_clone_relation_by_volname(volume_name, False)"},{"line_number":296,"context_line":"        self._remove_volume_from_group(volume_name)"},{"line_number":297,"context_line":"        self._delete_volume(volume_name)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"    def _delete_cvol(self, cloned_name, issnapshot):"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_6b7196e0","line":296,"range":{"start_line":296,"start_character":13,"end_line":296,"end_character":38},"in_reply_to":"3aaa91ec_4ca2149c","updated":"2016-06-28 06:52:51.000000000","message":"This internal function is based on our implementation.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0908717359c7405a574b18186e8bc2077ecb0de","unresolved":false,"context_lines":[{"line_number":308,"context_line":"                       {\u0027name\u0027: cloned_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":309,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_VOLUME_TASK_NOT_FINISHED:"},{"line_number":310,"context_line":"                if issnapshot:"},{"line_number":311,"context_line":"                    raise exception.SnapshotIsBusy(err_msg)"},{"line_number":312,"context_line":"                else:"},{"line_number":313,"context_line":"                    raise exception.VolumeIsBusy(err_msg)"},{"line_number":314,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_93b89b2c","line":311,"range":{"start_line":311,"start_character":26,"end_line":311,"end_character":50},"updated":"2016-06-27 15:12:15.000000000","message":"Suggestion: To have specific driver defined exceptions, (e.g. ZTESnapshotIsBusy) helps admins to differentiate from Cinder internal exceptions.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"03577b3f4e828742a045c039b42b413e91ce1c44","unresolved":false,"context_lines":[{"line_number":308,"context_line":"                       {\u0027name\u0027: cloned_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":309,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_VOLUME_TASK_NOT_FINISHED:"},{"line_number":310,"context_line":"                if issnapshot:"},{"line_number":311,"context_line":"                    raise exception.SnapshotIsBusy(err_msg)"},{"line_number":312,"context_line":"                else:"},{"line_number":313,"context_line":"                    raise exception.VolumeIsBusy(err_msg)"},{"line_number":314,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_2a20139b","line":311,"range":{"start_line":311,"start_character":26,"end_line":311,"end_character":50},"in_reply_to":"3aaa91ec_861f975a","updated":"2016-06-28 12:21:51.000000000","message":"Ok","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"3ee5295e39262585fbd4cb9ca97c711ac56aeff8","unresolved":false,"context_lines":[{"line_number":308,"context_line":"                       {\u0027name\u0027: cloned_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":309,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_VOLUME_TASK_NOT_FINISHED:"},{"line_number":310,"context_line":"                if issnapshot:"},{"line_number":311,"context_line":"                    raise exception.SnapshotIsBusy(err_msg)"},{"line_number":312,"context_line":"                else:"},{"line_number":313,"context_line":"                    raise exception.VolumeIsBusy(err_msg)"},{"line_number":314,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_861f975a","line":311,"range":{"start_line":311,"start_character":26,"end_line":311,"end_character":50},"in_reply_to":"3aaa91ec_93b89b2c","updated":"2016-06-28 06:52:51.000000000","message":"The exception here is fit for exception.SnapshotIsBusy. This is not a ZTE special exception.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0908717359c7405a574b18186e8bc2077ecb0de","unresolved":false,"context_lines":[{"line_number":313,"context_line":"                    raise exception.VolumeIsBusy(err_msg)"},{"line_number":314,"context_line":"            else:"},{"line_number":315,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":316,"context_line":"        time.sleep(zte_pub.ZTE_WAIT_DELCVOL)"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"    def _delete_clone_relation_by_volname(self, volname, issnapshot):"},{"line_number":319,"context_line":"        svol_name \u003d {\u0027scVolName\u0027: volname}"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_9657e925","line":316,"range":{"start_line":316,"start_character":8,"end_line":316,"end_character":44},"updated":"2016-06-27 15:12:15.000000000","message":"This is very bad. You are setting a fixed sleep time (6s!!) that can be much less, may be more depending on the environment. Worst than, that, this is done inside a loop.You should poll the backend sleeping 1s or less and return when it is finished.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"3ee5295e39262585fbd4cb9ca97c711ac56aeff8","unresolved":false,"context_lines":[{"line_number":313,"context_line":"                    raise exception.VolumeIsBusy(err_msg)"},{"line_number":314,"context_line":"            else:"},{"line_number":315,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":316,"context_line":"        time.sleep(zte_pub.ZTE_WAIT_DELCVOL)"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"    def _delete_clone_relation_by_volname(self, volname, issnapshot):"},{"line_number":319,"context_line":"        svol_name \u003d {\u0027scVolName\u0027: volname}"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_c6c35f89","line":316,"range":{"start_line":316,"start_character":8,"end_line":316,"end_character":44},"in_reply_to":"3aaa91ec_9657e925","updated":"2016-06-28 06:52:51.000000000","message":"Deletions are time consuming. The waiting time is based on our implementation and our experience.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"03577b3f4e828742a045c039b42b413e91ce1c44","unresolved":false,"context_lines":[{"line_number":313,"context_line":"                    raise exception.VolumeIsBusy(err_msg)"},{"line_number":314,"context_line":"            else:"},{"line_number":315,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":316,"context_line":"        time.sleep(zte_pub.ZTE_WAIT_DELCVOL)"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"    def _delete_clone_relation_by_volname(self, volname, issnapshot):"},{"line_number":319,"context_line":"        svol_name \u003d {\u0027scVolName\u0027: volname}"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_ca4fcf68","line":316,"range":{"start_line":316,"start_character":8,"end_line":316,"end_character":44},"in_reply_to":"3aaa91ec_c6c35f89","updated":"2016-06-28 12:21:51.000000000","message":"Yes, but you still should to a busy wait.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0908717359c7405a574b18186e8bc2077ecb0de","unresolved":false,"context_lines":[{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    def create_snapshot(self, snapshot):"},{"line_number":360,"context_line":"        \"\"\"create a snapshot from volume\"\"\""},{"line_number":361,"context_line":"        snapshot_name \u003d self._translate_volume_name(snapshot[\u0027name\u0027])"},{"line_number":362,"context_line":"        volume_name \u003d self._translate_volume_name(snapshot[\u0027volume_name\u0027])"},{"line_number":363,"context_line":"        volume_size \u003d snapshot[\u0027volume_size\u0027]"},{"line_number":364,"context_line":"        self._create_snapshot(snapshot_name, volume_name, volume_size, 1)"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_899eae61","line":361,"range":{"start_line":361,"start_character":8,"end_line":361,"end_character":69},"updated":"2016-06-27 15:12:15.000000000","message":"Snapshots should better have a different prefix.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"3ee5295e39262585fbd4cb9ca97c711ac56aeff8","unresolved":false,"context_lines":[{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    def create_snapshot(self, snapshot):"},{"line_number":360,"context_line":"        \"\"\"create a snapshot from volume\"\"\""},{"line_number":361,"context_line":"        snapshot_name \u003d self._translate_volume_name(snapshot[\u0027name\u0027])"},{"line_number":362,"context_line":"        volume_name \u003d self._translate_volume_name(snapshot[\u0027volume_name\u0027])"},{"line_number":363,"context_line":"        volume_size \u003d snapshot[\u0027volume_size\u0027]"},{"line_number":364,"context_line":"        self._create_snapshot(snapshot_name, volume_name, volume_size, 1)"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_e6681b8a","line":361,"range":{"start_line":361,"start_character":8,"end_line":361,"end_character":69},"in_reply_to":"3aaa91ec_899eae61","updated":"2016-06-28 06:52:51.000000000","message":"We will improve this in the next version.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0908717359c7405a574b18186e8bc2077ecb0de","unresolved":false,"context_lines":[{"line_number":383,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":384,"context_line":"        \"\"\"delete a snapshot volume\"\"\""},{"line_number":385,"context_line":"        snapshot_name \u003d self._translate_volume_name(snapshot[\u0027name\u0027])"},{"line_number":386,"context_line":"        self._delete_clone_relation_by_volname(snapshot_name, True)"},{"line_number":387,"context_line":"        self._delete_snapshot(snapshot_name)"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"    def _extend_volume(self, volume_name, inc_size):"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_2cca286f","line":386,"range":{"start_line":386,"start_character":14,"end_line":386,"end_character":46},"updated":"2016-06-27 15:12:15.000000000","message":"Cinder should take care of volume/snapshots relations. If a snapshot have clones, Cinder API won\u0027t allow it be deleted unless the user delete then.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"3ee5295e39262585fbd4cb9ca97c711ac56aeff8","unresolved":false,"context_lines":[{"line_number":383,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":384,"context_line":"        \"\"\"delete a snapshot volume\"\"\""},{"line_number":385,"context_line":"        snapshot_name \u003d self._translate_volume_name(snapshot[\u0027name\u0027])"},{"line_number":386,"context_line":"        self._delete_clone_relation_by_volname(snapshot_name, True)"},{"line_number":387,"context_line":"        self._delete_snapshot(snapshot_name)"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"    def _extend_volume(self, volume_name, inc_size):"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_82994022","line":386,"range":{"start_line":386,"start_character":14,"end_line":386,"end_character":46},"in_reply_to":"3aaa91ec_2cca286f","updated":"2016-06-28 06:52:51.000000000","message":"This internal function is based on our implementation.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"03577b3f4e828742a045c039b42b413e91ce1c44","unresolved":false,"context_lines":[{"line_number":383,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":384,"context_line":"        \"\"\"delete a snapshot volume\"\"\""},{"line_number":385,"context_line":"        snapshot_name \u003d self._translate_volume_name(snapshot[\u0027name\u0027])"},{"line_number":386,"context_line":"        self._delete_clone_relation_by_volname(snapshot_name, True)"},{"line_number":387,"context_line":"        self._delete_snapshot(snapshot_name)"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"    def _extend_volume(self, volume_name, inc_size):"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_0af6f7f8","line":386,"range":{"start_line":386,"start_character":14,"end_line":386,"end_character":46},"in_reply_to":"3aaa91ec_82994022","updated":"2016-06-28 12:21:51.000000000","message":"???","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"51b215a6bcc3ae2cfdcbaccaacfe70283ef94551","unresolved":false,"context_lines":[{"line_number":383,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":384,"context_line":"        \"\"\"delete a snapshot volume\"\"\""},{"line_number":385,"context_line":"        snapshot_name \u003d self._translate_volume_name(snapshot[\u0027name\u0027])"},{"line_number":386,"context_line":"        self._delete_clone_relation_by_volname(snapshot_name, True)"},{"line_number":387,"context_line":"        self._delete_snapshot(snapshot_name)"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"    def _extend_volume(self, volume_name, inc_size):"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_d24f5dbc","line":386,"range":{"start_line":386,"start_character":14,"end_line":386,"end_character":46},"in_reply_to":"3aaa91ec_82994022","updated":"2016-06-29 02:40:03.000000000","message":"Are there any more questions?","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0908717359c7405a574b18186e8bc2077ecb0de","unresolved":false,"context_lines":[{"line_number":448,"context_line":"                volume_size,"},{"line_number":449,"context_line":"                zte_pub.ZTE_VOLUME)"},{"line_number":450,"context_line":"        except Exception:"},{"line_number":451,"context_line":"            self._delete_clone_relation_by_volname(bvol_name, False)"},{"line_number":452,"context_line":"            self._cloned_volume("},{"line_number":453,"context_line":"                cvol_name,"},{"line_number":454,"context_line":"                bvol_name,"},{"line_number":455,"context_line":"                volume_size,"},{"line_number":456,"context_line":"                zte_pub.ZTE_VOLUME)"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":459,"context_line":"        \"\"\"Create volume from snapshot \"\"\""}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_acd3b85e","line":456,"range":{"start_line":451,"start_character":11,"end_line":456,"end_character":35},"updated":"2016-06-27 15:12:15.000000000","message":"Why do you have to delete and try again??","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"51b215a6bcc3ae2cfdcbaccaacfe70283ef94551","unresolved":false,"context_lines":[{"line_number":448,"context_line":"                volume_size,"},{"line_number":449,"context_line":"                zte_pub.ZTE_VOLUME)"},{"line_number":450,"context_line":"        except Exception:"},{"line_number":451,"context_line":"            self._delete_clone_relation_by_volname(bvol_name, False)"},{"line_number":452,"context_line":"            self._cloned_volume("},{"line_number":453,"context_line":"                cvol_name,"},{"line_number":454,"context_line":"                bvol_name,"},{"line_number":455,"context_line":"                volume_size,"},{"line_number":456,"context_line":"                zte_pub.ZTE_VOLUME)"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":459,"context_line":"        \"\"\"Create volume from snapshot \"\"\""}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_92b9557c","line":456,"range":{"start_line":451,"start_character":11,"end_line":456,"end_character":35},"in_reply_to":"3aaa91ec_4a1bdf1c","updated":"2016-06-29 02:40:03.000000000","message":"Direct retry is also OK.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"03577b3f4e828742a045c039b42b413e91ce1c44","unresolved":false,"context_lines":[{"line_number":448,"context_line":"                volume_size,"},{"line_number":449,"context_line":"                zte_pub.ZTE_VOLUME)"},{"line_number":450,"context_line":"        except Exception:"},{"line_number":451,"context_line":"            self._delete_clone_relation_by_volname(bvol_name, False)"},{"line_number":452,"context_line":"            self._cloned_volume("},{"line_number":453,"context_line":"                cvol_name,"},{"line_number":454,"context_line":"                bvol_name,"},{"line_number":455,"context_line":"                volume_size,"},{"line_number":456,"context_line":"                zte_pub.ZTE_VOLUME)"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":459,"context_line":"        \"\"\"Create volume from snapshot \"\"\""}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_4a1bdf1c","line":456,"range":{"start_line":451,"start_character":11,"end_line":456,"end_character":35},"in_reply_to":"3aaa91ec_a6abb3d5","updated":"2016-06-28 12:21:51.000000000","message":"Yes but you shouldn\u0027t just retry without checking the cause that generated the exception. If for example the clone failed because there\u0027s no space in disk, there\u0027s no reason to retry.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"3ee5295e39262585fbd4cb9ca97c711ac56aeff8","unresolved":false,"context_lines":[{"line_number":448,"context_line":"                volume_size,"},{"line_number":449,"context_line":"                zte_pub.ZTE_VOLUME)"},{"line_number":450,"context_line":"        except Exception:"},{"line_number":451,"context_line":"            self._delete_clone_relation_by_volname(bvol_name, False)"},{"line_number":452,"context_line":"            self._cloned_volume("},{"line_number":453,"context_line":"                cvol_name,"},{"line_number":454,"context_line":"                bvol_name,"},{"line_number":455,"context_line":"                volume_size,"},{"line_number":456,"context_line":"                zte_pub.ZTE_VOLUME)"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":459,"context_line":"        \"\"\"Create volume from snapshot \"\"\""}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_a6abb3d5","line":456,"range":{"start_line":451,"start_character":11,"end_line":456,"end_character":35},"in_reply_to":"3aaa91ec_acd3b85e","updated":"2016-06-28 06:52:51.000000000","message":"If we fail to create, we need to roll back.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0908717359c7405a574b18186e8bc2077ecb0de","unresolved":false,"context_lines":[{"line_number":513,"context_line":""},{"line_number":514,"context_line":"        return new_name"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"    def _translate_volume_name(self, vol_name):"},{"line_number":517,"context_line":"        new_name \u003d zte_pub.ZTE_VOL__NAME_PREFIX_NEW + six.text_type("},{"line_number":518,"context_line":"            self._get_md5(vol_name))"},{"line_number":519,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_2636cae7","line":516,"range":{"start_line":516,"start_character":7,"end_line":516,"end_character":30},"updated":"2016-06-27 15:12:15.000000000","message":"Why can\u0027t you just use the Cinder provided volume ID? You have the uniqueness guaranteed and makes life\u0027s easy to your admin.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"3ee5295e39262585fbd4cb9ca97c711ac56aeff8","unresolved":false,"context_lines":[{"line_number":513,"context_line":""},{"line_number":514,"context_line":"        return new_name"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"    def _translate_volume_name(self, vol_name):"},{"line_number":517,"context_line":"        new_name \u003d zte_pub.ZTE_VOL__NAME_PREFIX_NEW + six.text_type("},{"line_number":518,"context_line":"            self._get_md5(vol_name))"},{"line_number":519,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_462bef33","line":516,"range":{"start_line":516,"start_character":7,"end_line":516,"end_character":30},"in_reply_to":"3aaa91ec_2636cae7","updated":"2016-06-28 06:52:51.000000000","message":"The name length in our system is limited. That\u0027s why we need a  translation .","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"51b215a6bcc3ae2cfdcbaccaacfe70283ef94551","unresolved":false,"context_lines":[{"line_number":513,"context_line":""},{"line_number":514,"context_line":"        return new_name"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"    def _translate_volume_name(self, vol_name):"},{"line_number":517,"context_line":"        new_name \u003d zte_pub.ZTE_VOL__NAME_PREFIX_NEW + six.text_type("},{"line_number":518,"context_line":"            self._get_md5(vol_name))"},{"line_number":519,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_aff34e09","line":516,"range":{"start_line":516,"start_character":7,"end_line":516,"end_character":30},"in_reply_to":"3aaa91ec_462bef33","updated":"2016-06-29 02:40:03.000000000","message":"The names generated by this method \"volume.id[0:19]\" are likely to be the same.In the future, we will remove the name limitation from our device and we will remove this translation too.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"03577b3f4e828742a045c039b42b413e91ce1c44","unresolved":false,"context_lines":[{"line_number":513,"context_line":""},{"line_number":514,"context_line":"        return new_name"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"    def _translate_volume_name(self, vol_name):"},{"line_number":517,"context_line":"        new_name \u003d zte_pub.ZTE_VOL__NAME_PREFIX_NEW + six.text_type("},{"line_number":518,"context_line":"            self._get_md5(vol_name))"},{"line_number":519,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_0ab397ea","line":516,"range":{"start_line":516,"start_character":7,"end_line":516,"end_character":30},"in_reply_to":"3aaa91ec_462bef33","updated":"2016-06-28 12:21:51.000000000","message":"You just need to get the string from volume.id[0:19].","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0908717359c7405a574b18186e8bc2077ecb0de","unresolved":false,"context_lines":[{"line_number":516,"context_line":"    def _translate_volume_name(self, vol_name):"},{"line_number":517,"context_line":"        new_name \u003d zte_pub.ZTE_VOL__NAME_PREFIX_NEW + six.text_type("},{"line_number":518,"context_line":"            self._get_md5(vol_name))"},{"line_number":519,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"        LOG.debug(\u0027_translate_volume_name:Name in cinder: %(old)s, \u0027"},{"line_number":522,"context_line":"                  \u0027new name in storage system: %(new)s.\u0027,"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_c60386bd","line":519,"range":{"start_line":519,"start_character":8,"end_line":519,"end_character":45},"updated":"2016-06-27 15:12:15.000000000","message":"Correct me if I\u0027m wrong, but there\u0027s no need for this replacement. MD5 values are always [0-9A-F].","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"0d7252fe848c939ec450924461f10254a0cf8123","unresolved":false,"context_lines":[{"line_number":516,"context_line":"    def _translate_volume_name(self, vol_name):"},{"line_number":517,"context_line":"        new_name \u003d zte_pub.ZTE_VOL__NAME_PREFIX_NEW + six.text_type("},{"line_number":518,"context_line":"            self._get_md5(vol_name))"},{"line_number":519,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"        LOG.debug(\u0027_translate_volume_name:Name in cinder: %(old)s, \u0027"},{"line_number":522,"context_line":"                  \u0027new name in storage system: %(new)s.\u0027,"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_726bc2b9","line":519,"range":{"start_line":519,"start_character":8,"end_line":519,"end_character":45},"in_reply_to":"3aaa91ec_5d31b90a","updated":"2016-06-30 08:09:53.000000000","message":"If we remove this line, we will fail to pass \"tempest.api.volume.admin.test_volumes_list.VolumesListAdminV2TestJSON.test_volume_list_param_tenant\".","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"03577b3f4e828742a045c039b42b413e91ce1c44","unresolved":false,"context_lines":[{"line_number":516,"context_line":"    def _translate_volume_name(self, vol_name):"},{"line_number":517,"context_line":"        new_name \u003d zte_pub.ZTE_VOL__NAME_PREFIX_NEW + six.text_type("},{"line_number":518,"context_line":"            self._get_md5(vol_name))"},{"line_number":519,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"        LOG.debug(\u0027_translate_volume_name:Name in cinder: %(old)s, \u0027"},{"line_number":522,"context_line":"                  \u0027new name in storage system: %(new)s.\u0027,"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_2ae773e5","line":519,"range":{"start_line":519,"start_character":8,"end_line":519,"end_character":45},"in_reply_to":"3aaa91ec_c60386bd","updated":"2016-06-28 12:21:51.000000000","message":"??","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"2c99d19c1d7994f394a08e11176ab1b0405c4d6c","unresolved":false,"context_lines":[{"line_number":516,"context_line":"    def _translate_volume_name(self, vol_name):"},{"line_number":517,"context_line":"        new_name \u003d zte_pub.ZTE_VOL__NAME_PREFIX_NEW + six.text_type("},{"line_number":518,"context_line":"            self._get_md5(vol_name))"},{"line_number":519,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"        LOG.debug(\u0027_translate_volume_name:Name in cinder: %(old)s, \u0027"},{"line_number":522,"context_line":"                  \u0027new name in storage system: %(new)s.\u0027,"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_5d31b90a","line":519,"range":{"start_line":519,"start_character":8,"end_line":519,"end_character":45},"in_reply_to":"3aaa91ec_c60386bd","updated":"2016-06-29 07:56:10.000000000","message":"You are right. We will fix this problem. Thanks for your review.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0908717359c7405a574b18186e8bc2077ecb0de","unresolved":false,"context_lines":[{"line_number":518,"context_line":"            self._get_md5(vol_name))"},{"line_number":519,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"        LOG.debug(\u0027_translate_volume_name:Name in cinder: %(old)s, \u0027"},{"line_number":522,"context_line":"                  \u0027new name in storage system: %(new)s.\u0027,"},{"line_number":523,"context_line":"                  {\u0027old\u0027: vol_name, \u0027new\u0027: new_name})"},{"line_number":524,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_4695d686","line":521,"updated":"2016-06-27 15:12:15.000000000","message":"neat: missing space","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"3ee5295e39262585fbd4cb9ca97c711ac56aeff8","unresolved":false,"context_lines":[{"line_number":518,"context_line":"            self._get_md5(vol_name))"},{"line_number":519,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"        LOG.debug(\u0027_translate_volume_name:Name in cinder: %(old)s, \u0027"},{"line_number":522,"context_line":"                  \u0027new name in storage system: %(new)s.\u0027,"},{"line_number":523,"context_line":"                  {\u0027old\u0027: vol_name, \u0027new\u0027: new_name})"},{"line_number":524,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_256856ba","line":521,"in_reply_to":"3aaa91ec_4695d686","updated":"2016-06-28 06:52:51.000000000","message":"Done","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0908717359c7405a574b18186e8bc2077ecb0de","unresolved":false,"context_lines":[{"line_number":733,"context_line":"            iscsi_info[\u0027DefaultTargetIPs\u0027] \u003d self._get_net_cfg_ips()"},{"line_number":734,"context_line":"            if not iscsi_info[\u0027DefaultTargetIPs\u0027]:"},{"line_number":735,"context_line":"                err_msg \u003d _(\u0027Can not get target ip address. \u0027)"},{"line_number":736,"context_line":"                raise exception.InvalidInput(reason\u003derr_msg)"},{"line_number":737,"context_line":"            initiator_list \u003d []"},{"line_number":738,"context_line":"            iscsi_info[\u0027Initiator\u0027] \u003d initiator_list"},{"line_number":739,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_4c0b342c","line":736,"range":{"start_line":736,"start_character":16,"end_line":736,"end_character":60},"updated":"2016-06-27 15:12:15.000000000","message":"This is not a InvalidInput exception. This should be triggered only in response to user provided data.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"51b215a6bcc3ae2cfdcbaccaacfe70283ef94551","unresolved":false,"context_lines":[{"line_number":733,"context_line":"            iscsi_info[\u0027DefaultTargetIPs\u0027] \u003d self._get_net_cfg_ips()"},{"line_number":734,"context_line":"            if not iscsi_info[\u0027DefaultTargetIPs\u0027]:"},{"line_number":735,"context_line":"                err_msg \u003d _(\u0027Can not get target ip address. \u0027)"},{"line_number":736,"context_line":"                raise exception.InvalidInput(reason\u003derr_msg)"},{"line_number":737,"context_line":"            initiator_list \u003d []"},{"line_number":738,"context_line":"            iscsi_info[\u0027Initiator\u0027] \u003d initiator_list"},{"line_number":739,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_b2e8d17d","line":736,"range":{"start_line":736,"start_character":16,"end_line":736,"end_character":60},"in_reply_to":"3aaa91ec_4c0b342c","updated":"2016-06-29 02:40:03.000000000","message":"Done","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0908717359c7405a574b18186e8bc2077ecb0de","unresolved":false,"context_lines":[{"line_number":743,"context_line":""},{"line_number":744,"context_line":"        return iscsi_info"},{"line_number":745,"context_line":""},{"line_number":746,"context_line":"    def _translate_grp_name(self, grp_name):"},{"line_number":747,"context_line":"        new_name \u003d zte_pub.ZTE_HOST_GROUP_NAME_PREFIX + six.text_type("},{"line_number":748,"context_line":"            self._get_md5(grp_name))"},{"line_number":749,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_a76bd184","line":746,"range":{"start_line":746,"start_character":8,"end_line":746,"end_character":27},"updated":"2016-06-27 15:12:15.000000000","message":"The admin will have a hard time figuring out what these hashes are related to. Using the initiator IP would be a much better approach.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"3ee5295e39262585fbd4cb9ca97c711ac56aeff8","unresolved":false,"context_lines":[{"line_number":743,"context_line":""},{"line_number":744,"context_line":"        return iscsi_info"},{"line_number":745,"context_line":""},{"line_number":746,"context_line":"    def _translate_grp_name(self, grp_name):"},{"line_number":747,"context_line":"        new_name \u003d zte_pub.ZTE_HOST_GROUP_NAME_PREFIX + six.text_type("},{"line_number":748,"context_line":"            self._get_md5(grp_name))"},{"line_number":749,"context_line":"        new_name \u003d new_name.replace(\u0027-\u0027, \u0027R\u0027)"}],"source_content_type":"text/x-python","patch_set":27,"id":"3aaa91ec_05ac3aec","line":746,"range":{"start_line":746,"start_character":8,"end_line":746,"end_character":27},"in_reply_to":"3aaa91ec_a76bd184","updated":"2016-06-28 06:52:51.000000000","message":"We will improve this in the next version.","commit_id":"38deeb58c3b99eee947f7263e828bd066cd3069a"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                      {\u0027method\u0027: method, \u0027res\u0027: response})"},{"line_number":124,"context_line":"        except Exception:"},{"line_number":125,"context_line":"            LOG.exception(_LE(\u0027Bad response from server.\u0027))"},{"line_number":126,"context_line":"            raise"},{"line_number":127,"context_line":"        res_json \u003d json.loads(response)"},{"line_number":128,"context_line":"        return res_json"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_981cf9c2","line":126,"updated":"2016-07-05 01:58:36.000000000","message":"Should raise a VolumeBackendAPIException here.","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                      {\u0027method\u0027: method, \u0027res\u0027: response})"},{"line_number":124,"context_line":"        except Exception:"},{"line_number":125,"context_line":"            LOG.exception(_LE(\u0027Bad response from server.\u0027))"},{"line_number":126,"context_line":"            raise"},{"line_number":127,"context_line":"        res_json \u003d json.loads(response)"},{"line_number":128,"context_line":"        return res_json"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_fb8b721c","line":126,"in_reply_to":"1aa78d24_981cf9c2","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        else:"},{"line_number":157,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":158,"context_line":"                _(\u0027Failed to login. Return code: %(ret)s.\u0027) % {"},{"line_number":159,"context_line":"                    \u0027ret\u0027: result[\u0027returncode\u0027]})"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def do_setup(self, context):"},{"line_number":162,"context_line":"        \"\"\"Any initialization the volume driver does while starting.\"\"\""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_5808d12d","line":159,"updated":"2016-07-05 01:58:36.000000000","message":"exception.VolumeBackendAPIException(data\u003dmsg)","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        else:"},{"line_number":157,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":158,"context_line":"                _(\u0027Failed to login. Return code: %(ret)s.\u0027) % {"},{"line_number":159,"context_line":"                    \u0027ret\u0027: result[\u0027returncode\u0027]})"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def do_setup(self, context):"},{"line_number":162,"context_line":"        \"\"\"Any initialization the volume driver does while starting.\"\"\""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_5bde0640","line":159,"in_reply_to":"1aa78d24_5808d12d","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":225,"context_line":"                        float(free_capacitity) / units.Ki)"},{"line_number":226,"context_line":"                    pool_info_list.append(pool_info)"},{"line_number":227,"context_line":"        if not pool_info_list:"},{"line_number":228,"context_line":"            raise exception.VolumeBackendAPIException(_(\u0027No pool available.\u0027))"},{"line_number":229,"context_line":"        return pool_info_list"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    def _find_pool_to_create_volume(self):"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_58ac5135","line":228,"updated":"2016-07-05 01:58:36.000000000","message":"exception.VolumeBackendAPIException(data\u003dmsg)","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":225,"context_line":"                        float(free_capacitity) / units.Ki)"},{"line_number":226,"context_line":"                    pool_info_list.append(pool_info)"},{"line_number":227,"context_line":"        if not pool_info_list:"},{"line_number":228,"context_line":"            raise exception.VolumeBackendAPIException(_(\u0027No pool available.\u0027))"},{"line_number":229,"context_line":"        return pool_info_list"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    def _find_pool_to_create_volume(self):"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_fb61b2a9","line":228,"in_reply_to":"1aa78d24_58ac5135","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":261,"context_line":"                _(\u0027Create volume fail. Volume name: %(name)s. \u0027"},{"line_number":262,"context_line":"                  \u0027Return code: %(ret)s.\u0027) %"},{"line_number":263,"context_line":"                {\u0027name\u0027: volume_name,"},{"line_number":264,"context_line":"                 \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"    def _create_volume(self, volume_name, volume_size):"},{"line_number":267,"context_line":"        pool_name \u003d self._find_pool_to_create_volume()"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_98a6b951","line":264,"updated":"2016-07-05 01:58:36.000000000","message":"exception.VolumeBackendAPIException(data\u003dmsg)","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":261,"context_line":"                _(\u0027Create volume fail. Volume name: %(name)s. \u0027"},{"line_number":262,"context_line":"                  \u0027Return code: %(ret)s.\u0027) %"},{"line_number":263,"context_line":"                {\u0027name\u0027: volume_name,"},{"line_number":264,"context_line":"                 \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"    def _create_volume(self, volume_name, volume_size):"},{"line_number":267,"context_line":"        pool_name \u003d self._find_pool_to_create_volume()"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_9bc50e90","line":264,"in_reply_to":"1aa78d24_98a6b951","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":268,"context_line":"        if pool_name:"},{"line_number":269,"context_line":"            self._create_volume_in_pool(volume_name, volume_size, pool_name)"},{"line_number":270,"context_line":"        else:"},{"line_number":271,"context_line":"            raise exception.VolumeDriverException(_(\u0027No pool available.\u0027))"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    def create_volume(self, volume):"},{"line_number":274,"context_line":"        \"\"\"Create a new volume.\"\"\""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_cc1ec662","line":271,"updated":"2016-07-05 01:58:36.000000000","message":"exception.VolumeDriverException(message\u003dmsg)","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":268,"context_line":"        if pool_name:"},{"line_number":269,"context_line":"            self._create_volume_in_pool(volume_name, volume_size, pool_name)"},{"line_number":270,"context_line":"        else:"},{"line_number":271,"context_line":"            raise exception.VolumeDriverException(_(\u0027No pool available.\u0027))"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    def create_volume(self, volume):"},{"line_number":274,"context_line":"        \"\"\"Create a new volume.\"\"\""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_7bab02d7","line":271,"in_reply_to":"1aa78d24_cc1ec662","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":289,"context_line":"                         \u0027Return code: %(ret)s.\u0027) %"},{"line_number":290,"context_line":"                       {\u0027name\u0027: cloned_name,"},{"line_number":291,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":292,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    def _remove_volume_from_group(self, volume):"},{"line_number":295,"context_line":"        ret \u003d self._call_method(\u0027GetGrpNamesOfVol\u0027, {\u0027cVolName\u0027: volume})"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_6c36b2e8","line":292,"updated":"2016-07-05 01:58:36.000000000","message":"exception.VolumeBackendAPIException(data\u003derr_msg)","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":289,"context_line":"                         \u0027Return code: %(ret)s.\u0027) %"},{"line_number":290,"context_line":"                       {\u0027name\u0027: cloned_name,"},{"line_number":291,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":292,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    def _remove_volume_from_group(self, volume):"},{"line_number":295,"context_line":"        ret \u003d self._call_method(\u0027GetGrpNamesOfVol\u0027, {\u0027cVolName\u0027: volume})"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_3ba97ae0","line":292,"in_reply_to":"1aa78d24_6c36b2e8","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":310,"context_line":"                         \u0027Return code: %(ret)s.\u0027) %"},{"line_number":311,"context_line":"                       {\u0027name\u0027: volume_name,"},{"line_number":312,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":313,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"    def delete_volume(self, volume):"},{"line_number":316,"context_line":"        \"\"\"Delete a volume.\"\"\""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_ac19ba7b","line":313,"updated":"2016-07-05 01:58:36.000000000","message":"exception.VolumeBackendAPIException(data\u003derr_msg)","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":310,"context_line":"                         \u0027Return code: %(ret)s.\u0027) %"},{"line_number":311,"context_line":"                       {\u0027name\u0027: volume_name,"},{"line_number":312,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":313,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"    def delete_volume(self, volume):"},{"line_number":316,"context_line":"        \"\"\"Delete a volume.\"\"\""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_7b64a2e4","line":313,"in_reply_to":"1aa78d24_ac19ba7b","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":333,"context_line":"                       {\u0027name\u0027: cloned_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":334,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_VOLUME_TASK_NOT_FINISHED:"},{"line_number":335,"context_line":"                if issnapshot:"},{"line_number":336,"context_line":"                    raise exception.SnapshotIsBusy(err_msg)"},{"line_number":337,"context_line":"                else:"},{"line_number":338,"context_line":"                    raise exception.VolumeIsBusy(err_msg)"},{"line_number":339,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_ccba4623","line":336,"updated":"2016-07-05 01:58:36.000000000","message":"exception.SnapshotIsBusy(snapshot_name\u003d\u003csnapshot name\u003e)","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":333,"context_line":"                       {\u0027name\u0027: cloned_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":334,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_VOLUME_TASK_NOT_FINISHED:"},{"line_number":335,"context_line":"                if issnapshot:"},{"line_number":336,"context_line":"                    raise exception.SnapshotIsBusy(err_msg)"},{"line_number":337,"context_line":"                else:"},{"line_number":338,"context_line":"                    raise exception.VolumeIsBusy(err_msg)"},{"line_number":339,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_1b759e97","line":336,"in_reply_to":"1aa78d24_ccba4623","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":335,"context_line":"                if issnapshot:"},{"line_number":336,"context_line":"                    raise exception.SnapshotIsBusy(err_msg)"},{"line_number":337,"context_line":"                else:"},{"line_number":338,"context_line":"                    raise exception.VolumeIsBusy(err_msg)"},{"line_number":339,"context_line":"            else:"},{"line_number":340,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":341,"context_line":"        time.sleep(zte_pub.ZTE_WAIT_DELCVOL)"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_acb53a32","line":338,"updated":"2016-07-05 01:58:36.000000000","message":"exception.VolumeIsBusy(volume_name\u003d\u003cvolume name\u003e)","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":335,"context_line":"                if issnapshot:"},{"line_number":336,"context_line":"                    raise exception.SnapshotIsBusy(err_msg)"},{"line_number":337,"context_line":"                else:"},{"line_number":338,"context_line":"                    raise exception.VolumeIsBusy(err_msg)"},{"line_number":339,"context_line":"            else:"},{"line_number":340,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":341,"context_line":"        time.sleep(zte_pub.ZTE_WAIT_DELCVOL)"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_7b3dc2ba","line":338,"in_reply_to":"1aa78d24_acb53a32","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":337,"context_line":"                else:"},{"line_number":338,"context_line":"                    raise exception.VolumeIsBusy(err_msg)"},{"line_number":339,"context_line":"            else:"},{"line_number":340,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":341,"context_line":"        time.sleep(zte_pub.ZTE_WAIT_DELCVOL)"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"    def _delete_clone_relation_by_volname(self, volname, issnapshot):"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_cc6366db","line":340,"updated":"2016-07-05 01:58:36.000000000","message":"exception.VolumeBackendAPIException(data\u003dmsg)","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":337,"context_line":"                else:"},{"line_number":338,"context_line":"                    raise exception.VolumeIsBusy(err_msg)"},{"line_number":339,"context_line":"            else:"},{"line_number":340,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":341,"context_line":"        time.sleep(zte_pub.ZTE_WAIT_DELCVOL)"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"    def _delete_clone_relation_by_volname(self, volname, issnapshot):"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_c0e1679c","line":340,"in_reply_to":"1aa78d24_cc6366db","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":379,"context_line":"                       {\u0027snapname\u0027: snapshot_name,"},{"line_number":380,"context_line":"                        \u0027srv\u0027: src_vol,"},{"line_number":381,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":382,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"    def create_snapshot(self, snapshot):"},{"line_number":385,"context_line":"        \"\"\"create a snapshot from volume\"\"\""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_2c802a46","line":382,"updated":"2016-07-05 01:58:36.000000000","message":"exception.VolumeBackendAPIException(data\u003derr_msg)","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":379,"context_line":"                       {\u0027snapname\u0027: snapshot_name,"},{"line_number":380,"context_line":"                        \u0027srv\u0027: src_vol,"},{"line_number":381,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":382,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"    def create_snapshot(self, snapshot):"},{"line_number":385,"context_line":"        \"\"\"create a snapshot from volume\"\"\""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_80d75fbe","line":382,"in_reply_to":"1aa78d24_2c802a46","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":401,"context_line":"                       {\u0027snapname\u0027: snapshot_name,"},{"line_number":402,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":403,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_ERR_SNAP_EXIST_CLONE:"},{"line_number":404,"context_line":"                raise exception.SnapshotIsBusy(err_msg)"},{"line_number":405,"context_line":"            else:"},{"line_number":406,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":407,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_0cea8e0f","line":404,"updated":"2016-07-05 01:58:36.000000000","message":"snapshot_name\u003d\u003csnapshot_name\u003e","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":401,"context_line":"                       {\u0027snapname\u0027: snapshot_name,"},{"line_number":402,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":403,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_ERR_SNAP_EXIST_CLONE:"},{"line_number":404,"context_line":"                raise exception.SnapshotIsBusy(err_msg)"},{"line_number":405,"context_line":"            else:"},{"line_number":406,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":407,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_9b14ee44","line":404,"in_reply_to":"1aa78d24_0cea8e0f","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":403,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_ERR_SNAP_EXIST_CLONE:"},{"line_number":404,"context_line":"                raise exception.SnapshotIsBusy(err_msg)"},{"line_number":405,"context_line":"            else:"},{"line_number":406,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":409,"context_line":"        \"\"\"delete a snapshot volume\"\"\""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_8c979e8f","line":406,"updated":"2016-07-05 01:58:36.000000000","message":"exception.VolumeBackendAPIException(data\u003derr_msg)","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":403,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_ERR_SNAP_EXIST_CLONE:"},{"line_number":404,"context_line":"                raise exception.SnapshotIsBusy(err_msg)"},{"line_number":405,"context_line":"            else:"},{"line_number":406,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":409,"context_line":"        \"\"\"delete a snapshot volume\"\"\""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_80cd9f5f","line":406,"in_reply_to":"1aa78d24_8c979e8f","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":421,"context_line":"            err_msg \u003d (_(\u0027_extend_volume:Failed to extend vol.vol name:\u0027"},{"line_number":422,"context_line":"                         \u0027%(name)s with Return code: %(ret)s.\u0027) %"},{"line_number":423,"context_line":"                       {\u0027name\u0027: volume_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":424,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"    def extend_volume(self, volume, new_size):"},{"line_number":427,"context_line":"        \"\"\"extend volume size\"\"\""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_4cf496f1","line":424,"updated":"2016-07-05 01:58:36.000000000","message":"exception.VolumeBackendAPIException(data\u003derr_msg)","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":421,"context_line":"            err_msg \u003d (_(\u0027_extend_volume:Failed to extend vol.vol name:\u0027"},{"line_number":422,"context_line":"                         \u0027%(name)s with Return code: %(ret)s.\u0027) %"},{"line_number":423,"context_line":"                       {\u0027name\u0027: volume_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":424,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"    def extend_volume(self, volume, new_size):"},{"line_number":427,"context_line":"        \"\"\"extend volume size\"\"\""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_60835305","line":424,"in_reply_to":"1aa78d24_4cf496f1","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":449,"context_line":"                         \u0027vol name: %(name)s with Return code: %(ret)s. \u0027) %"},{"line_number":450,"context_line":"                       {\u0027name\u0027: src_name,"},{"line_number":451,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":452,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"    def create_cloned_volume(self, volume, src_vref):"},{"line_number":455,"context_line":"        \"\"\"clone a volume\"\"\""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_2cf78af6","line":452,"updated":"2016-07-05 01:58:36.000000000","message":"Same","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":449,"context_line":"                         \u0027vol name: %(name)s with Return code: %(ret)s. \u0027) %"},{"line_number":450,"context_line":"                       {\u0027name\u0027: src_name,"},{"line_number":451,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":452,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"    def create_cloned_volume(self, volume, src_vref):"},{"line_number":455,"context_line":"        \"\"\"clone a volume\"\"\""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_80911f55","line":452,"in_reply_to":"1aa78d24_2cf78af6","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":461,"context_line":"                         \u0027Src volume size: %(volume_size)s.\u0027) %"},{"line_number":462,"context_line":"                       {\u0027cloned_size\u0027: volume[\u0027size\u0027],"},{"line_number":463,"context_line":"                        \u0027volume_size\u0027: src_vref[\u0027size\u0027]})"},{"line_number":464,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":465,"context_line":"        else:"},{"line_number":466,"context_line":"            volume_size \u003d float("},{"line_number":467,"context_line":"                volume[\u0027size\u0027] * units.Mi)"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_8cde7e6b","line":464,"updated":"2016-07-05 01:58:36.000000000","message":"message\u003derr_msg","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":461,"context_line":"                         \u0027Src volume size: %(volume_size)s.\u0027) %"},{"line_number":462,"context_line":"                       {\u0027cloned_size\u0027: volume[\u0027size\u0027],"},{"line_number":463,"context_line":"                        \u0027volume_size\u0027: src_vref[\u0027size\u0027]})"},{"line_number":464,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":465,"context_line":"        else:"},{"line_number":466,"context_line":"            volume_size \u003d float("},{"line_number":467,"context_line":"                volume[\u0027size\u0027] * units.Mi)"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_60acf3a0","line":464,"in_reply_to":"1aa78d24_8cde7e6b","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":491,"context_line":"                  \u0027Src volume size: %(volume_size)s.\u0027) %"},{"line_number":492,"context_line":"                {\u0027cloned_size\u0027: volume[\u0027size\u0027],"},{"line_number":493,"context_line":"                 \u0027volume_size\u0027: snapshot[\u0027volume_size\u0027]})"},{"line_number":494,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":495,"context_line":"        else:"},{"line_number":496,"context_line":"            volume_size \u003d float("},{"line_number":497,"context_line":"                volume[\u0027size\u0027] * units.Mi)"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_cce88613","line":494,"updated":"2016-07-05 01:58:36.000000000","message":"message\u003derr_msg","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":491,"context_line":"                  \u0027Src volume size: %(volume_size)s.\u0027) %"},{"line_number":492,"context_line":"                {\u0027cloned_size\u0027: volume[\u0027size\u0027],"},{"line_number":493,"context_line":"                 \u0027volume_size\u0027: snapshot[\u0027volume_size\u0027]})"},{"line_number":494,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":495,"context_line":"        else:"},{"line_number":496,"context_line":"            volume_size \u003d float("},{"line_number":497,"context_line":"                volume[\u0027size\u0027] * units.Mi)"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_20a2ebae","line":494,"in_reply_to":"1aa78d24_cce88613","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":568,"context_line":"                       {\u0027name\u0027: map_group_name,"},{"line_number":569,"context_line":"                        \u0027vol\u0027: volume_name,"},{"line_number":570,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":571,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"    def _get_group_lunnum(self, map_group_name):"},{"line_number":574,"context_line":"        map_grp_info \u003d {\u0027cMapGrpName\u0027: map_group_name}"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_8cc5de8f","line":571,"updated":"2016-07-05 01:58:36.000000000","message":"message\u003derr_msg","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":568,"context_line":"                       {\u0027name\u0027: map_group_name,"},{"line_number":569,"context_line":"                        \u0027vol\u0027: volume_name,"},{"line_number":570,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":571,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"    def _get_group_lunnum(self, map_group_name):"},{"line_number":574,"context_line":"        map_grp_info \u003d {\u0027cMapGrpName\u0027: map_group_name}"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_a0cffb7d","line":571,"in_reply_to":"1aa78d24_8cc5de8f","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":582,"context_line":"            err_msg \u003d (_(\u0027_get_group_lunnum:Get group info fail. \u0027"},{"line_number":583,"context_line":"                         \u0027Group name:%(name)s with Return code: %(ret)s.\u0027) %"},{"line_number":584,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":585,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":586,"context_line":""},{"line_number":587,"context_line":"    def _delete_group(self, map_group_name):"},{"line_number":588,"context_line":"        # before delete the group, we must delete the hosts in group"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_ccbfe6f9","line":585,"updated":"2016-07-05 01:58:36.000000000","message":"same","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":582,"context_line":"            err_msg \u003d (_(\u0027_get_group_lunnum:Get group info fail. \u0027"},{"line_number":583,"context_line":"                         \u0027Group name:%(name)s with Return code: %(ret)s.\u0027) %"},{"line_number":584,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":585,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":586,"context_line":""},{"line_number":587,"context_line":"    def _delete_group(self, map_group_name):"},{"line_number":588,"context_line":"        # before delete the group, we must delete the hosts in group"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_40b8d7e5","line":585,"in_reply_to":"1aa78d24_ccbfe6f9","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":595,"context_line":"            err_msg \u003d (_(\u0027_delete_group:Del group fail. \u0027"},{"line_number":596,"context_line":"                         \u0027Group name:%(name)s with Return code: %(ret)s.\u0027) %"},{"line_number":597,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":598,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":599,"context_line":""},{"line_number":600,"context_line":"    def _map_add_lun(self, volume_name, map_group_name):"},{"line_number":601,"context_line":"        add_vol_to_grp \u003d {"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_0c38ce9f","line":598,"updated":"2016-07-05 01:58:36.000000000","message":"same","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":595,"context_line":"            err_msg \u003d (_(\u0027_delete_group:Del group fail. \u0027"},{"line_number":596,"context_line":"                         \u0027Group name:%(name)s with Return code: %(ret)s.\u0027) %"},{"line_number":597,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":598,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":599,"context_line":""},{"line_number":600,"context_line":"    def _map_add_lun(self, volume_name, map_group_name):"},{"line_number":601,"context_line":"        add_vol_to_grp \u003d {"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_00becfd3","line":598,"in_reply_to":"1aa78d24_0c38ce9f","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":618,"context_line":"             \u0027lun\u0027: 0,"},{"line_number":619,"context_line":"             \u0027vol\u0027: volume_name,"},{"line_number":620,"context_line":"             \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":621,"context_line":"        raise exception.VolumeDriverException(err_msg)"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"    def _update_volume_group_info(self):"},{"line_number":624,"context_line":"        pool_list \u003d self._get_pool_list()"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_4c42d611","line":621,"updated":"2016-07-05 01:58:36.000000000","message":"same","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":618,"context_line":"             \u0027lun\u0027: 0,"},{"line_number":619,"context_line":"             \u0027vol\u0027: volume_name,"},{"line_number":620,"context_line":"             \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":621,"context_line":"        raise exception.VolumeDriverException(err_msg)"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"    def _update_volume_group_info(self):"},{"line_number":624,"context_line":"        pool_list \u003d self._get_pool_list()"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_80e3df04","line":621,"in_reply_to":"1aa78d24_4c42d611","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":635,"context_line":"            err_msg \u003d (_(\u0027_get_sysinfo:get sys info fail.with Return code: \u0027"},{"line_number":636,"context_line":"                         \u0027%(ret)s.\u0027),"},{"line_number":637,"context_line":"                       {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":638,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"        return ret[\u0027data\u0027]"},{"line_number":641,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_6c47d21d","line":638,"updated":"2016-07-05 01:58:36.000000000","message":"same","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":635,"context_line":"            err_msg \u003d (_(\u0027_get_sysinfo:get sys info fail.with Return code: \u0027"},{"line_number":636,"context_line":"                         \u0027%(ret)s.\u0027),"},{"line_number":637,"context_line":"                       {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":638,"context_line":"            raise exception.VolumeDriverException(err_msg)"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"        return ret[\u0027data\u0027]"},{"line_number":641,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_60deb340","line":638,"in_reply_to":"1aa78d24_6c47d21d","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":681,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":682,"context_line":"            err_msg \u003d (_(\u0027get_Net_Cfg fail.with Return code: %(ret)s.\u0027) %"},{"line_number":683,"context_line":"                       {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":684,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":"        targetips \u003d []"},{"line_number":687,"context_line":"        net_cfg_info \u003d ret[\u0027data\u0027][\u0027tSystemNetCfg\u0027]"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_8ccf9e7e","line":684,"updated":"2016-07-05 01:58:36.000000000","message":"exception.VolumeBackendAPIException(data\u003derr_msg)","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":681,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":682,"context_line":"            err_msg \u003d (_(\u0027get_Net_Cfg fail.with Return code: %(ret)s.\u0027) %"},{"line_number":683,"context_line":"                       {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":684,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":"        targetips \u003d []"},{"line_number":687,"context_line":"        net_cfg_info \u003d ret[\u0027data\u0027][\u0027tSystemNetCfg\u0027]"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_a04c1b43","line":684,"in_reply_to":"1aa78d24_8ccf9e7e","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":719,"context_line":"            msg \u003d (_(\u0027Failed to get target ip or iqn \u0027"},{"line_number":720,"context_line":"                     \u0027for initiator %(ini)s, please check config file.\u0027) %"},{"line_number":721,"context_line":"                   {\u0027ini\u0027: initiator_name})"},{"line_number":722,"context_line":"            raise exception.VolumeDriverException(reason\u003dmsg)"},{"line_number":723,"context_line":""},{"line_number":724,"context_line":"        map_group_name \u003d self._translate_grp_name(initiator_name)"},{"line_number":725,"context_line":"        lunid \u003d self._map_lun(initiator_name, volume_name, map_group_name)"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_ccc9a67a","line":722,"updated":"2016-07-05 01:58:36.000000000","message":"message\u003dmsg","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":719,"context_line":"            msg \u003d (_(\u0027Failed to get target ip or iqn \u0027"},{"line_number":720,"context_line":"                     \u0027for initiator %(ini)s, please check config file.\u0027) %"},{"line_number":721,"context_line":"                   {\u0027ini\u0027: initiator_name})"},{"line_number":722,"context_line":"            raise exception.VolumeDriverException(reason\u003dmsg)"},{"line_number":723,"context_line":""},{"line_number":724,"context_line":"        map_group_name \u003d self._translate_grp_name(initiator_name)"},{"line_number":725,"context_line":"        lunid \u003d self._map_lun(initiator_name, volume_name, map_group_name)"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_60423312","line":722,"in_reply_to":"1aa78d24_ccc9a67a","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":758,"context_line":"            iscsi_info[\u0027DefaultTargetIPs\u0027] \u003d self._get_net_cfg_ips()"},{"line_number":759,"context_line":"            if not iscsi_info[\u0027DefaultTargetIPs\u0027]:"},{"line_number":760,"context_line":"                err_msg \u003d _(\u0027Can not get target ip address. \u0027)"},{"line_number":761,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":762,"context_line":"            initiator_list \u003d []"},{"line_number":763,"context_line":"            iscsi_info[\u0027Initiator\u0027] \u003d initiator_list"},{"line_number":764,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_0ca28eae","line":761,"updated":"2016-07-05 01:58:36.000000000","message":"exception.VolumeBackendAPIException(data\u003derr_msg)","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":758,"context_line":"            iscsi_info[\u0027DefaultTargetIPs\u0027] \u003d self._get_net_cfg_ips()"},{"line_number":759,"context_line":"            if not iscsi_info[\u0027DefaultTargetIPs\u0027]:"},{"line_number":760,"context_line":"                err_msg \u003d _(\u0027Can not get target ip address. \u0027)"},{"line_number":761,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":762,"context_line":"            initiator_list \u003d []"},{"line_number":763,"context_line":"            iscsi_info[\u0027Initiator\u0027] \u003d initiator_list"},{"line_number":764,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_e0bf43f9","line":761,"in_reply_to":"1aa78d24_0ca28eae","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":787,"context_line":"            err_msg \u003d (_(\u0027_get_target_ip_ctrl:get iscsi port list fail. \u0027"},{"line_number":788,"context_line":"                         \u0027with Return code: %(ret)s.\u0027) %"},{"line_number":789,"context_line":"                       {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":790,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":791,"context_line":"        count \u003d ret[\u0027data\u0027][\u0027sdwDeviceNum\u0027]"},{"line_number":792,"context_line":"        for index in range(0, count):"},{"line_number":793,"context_line":"            systemnetcfg \u003d ret[\u0027data\u0027][\u0027tSystemNetCfg\u0027][index]"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_2caf8a95","line":790,"updated":"2016-07-05 01:58:36.000000000","message":"exception.VolumeBackendAPIException(data\u003derr_msg)","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":787,"context_line":"            err_msg \u003d (_(\u0027_get_target_ip_ctrl:get iscsi port list fail. \u0027"},{"line_number":788,"context_line":"                         \u0027with Return code: %(ret)s.\u0027) %"},{"line_number":789,"context_line":"                       {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":790,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":791,"context_line":"        count \u003d ret[\u0027data\u0027][\u0027sdwDeviceNum\u0027]"},{"line_number":792,"context_line":"        for index in range(0, count):"},{"line_number":793,"context_line":"            systemnetcfg \u003d ret[\u0027data\u0027][\u0027tSystemNetCfg\u0027][index]"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_80c0ff7d","line":790,"in_reply_to":"1aa78d24_2caf8a95","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":838,"context_line":"                    _(\u0027create host fail.host name:%(name)s \u0027"},{"line_number":839,"context_line":"                      \u0027with Return code: %(ret)s.\u0027) %"},{"line_number":840,"context_line":"                    {\u0027name\u0027: host_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":841,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":842,"context_line":""},{"line_number":843,"context_line":"            # If port deleted by user, add it."},{"line_number":844,"context_line":"            port_info \u003d {"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_6c919252","line":841,"updated":"2016-07-05 01:58:36.000000000","message":"exception.VolumeBackendAPIException(data\u003derr_msg)","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":838,"context_line":"                    _(\u0027create host fail.host name:%(name)s \u0027"},{"line_number":839,"context_line":"                      \u0027with Return code: %(ret)s.\u0027) %"},{"line_number":840,"context_line":"                    {\u0027name\u0027: host_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":841,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":842,"context_line":""},{"line_number":843,"context_line":"            # If port deleted by user, add it."},{"line_number":844,"context_line":"            port_info \u003d {"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_a0c53b8f","line":841,"in_reply_to":"1aa78d24_6c919252","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":855,"context_line":"                             \u0027%(name)s  with Return code: %(ret)s.\u0027) %"},{"line_number":856,"context_line":"                           {\u0027name\u0027: initiator_name,"},{"line_number":857,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":858,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":859,"context_line":""},{"line_number":860,"context_line":"            host_in_grp \u003d {"},{"line_number":861,"context_line":"                \u0027ucInitName\u0027: host_name,"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_cca086a2","line":858,"updated":"2016-07-05 01:58:36.000000000","message":"same","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":855,"context_line":"                             \u0027%(name)s  with Return code: %(ret)s.\u0027) %"},{"line_number":856,"context_line":"                           {\u0027name\u0027: initiator_name,"},{"line_number":857,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":858,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":859,"context_line":""},{"line_number":860,"context_line":"            host_in_grp \u003d {"},{"line_number":861,"context_line":"                \u0027ucInitName\u0027: host_name,"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_c0e32732","line":858,"in_reply_to":"1aa78d24_cca086a2","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":871,"context_line":"                           {\u0027name\u0027: map_group_name,"},{"line_number":872,"context_line":"                            \u0027init\u0027: host_name,"},{"line_number":873,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":874,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":875,"context_line":"        else:"},{"line_number":876,"context_line":"            err_msg \u003d (_(\u0027create group fail.group name:%(name)s \u0027"},{"line_number":877,"context_line":"                         \u0027with Return code: %(ret)s.\u0027) %"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_0c89ee26","line":874,"updated":"2016-07-05 01:58:36.000000000","message":"same","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":871,"context_line":"                           {\u0027name\u0027: map_group_name,"},{"line_number":872,"context_line":"                            \u0027init\u0027: host_name,"},{"line_number":873,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":874,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":875,"context_line":"        else:"},{"line_number":876,"context_line":"            err_msg \u003d (_(\u0027create group fail.group name:%(name)s \u0027"},{"line_number":877,"context_line":"                         \u0027with Return code: %(ret)s.\u0027) %"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_823be7d0","line":874,"in_reply_to":"1aa78d24_0c89ee26","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":877,"context_line":"                         \u0027with Return code: %(ret)s.\u0027) %"},{"line_number":878,"context_line":"                       {\u0027name\u0027: map_group_name,"},{"line_number":879,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":880,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":881,"context_line":""},{"line_number":882,"context_line":"    def _map_delete_lun(self, lunid, initiator_name):"},{"line_number":883,"context_line":"        map_group_name \u003d self._translate_grp_name(initiator_name)"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_ec8bc21c","line":880,"updated":"2016-07-05 01:58:36.000000000","message":"same","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":877,"context_line":"                         \u0027with Return code: %(ret)s.\u0027) %"},{"line_number":878,"context_line":"                       {\u0027name\u0027: map_group_name,"},{"line_number":879,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":880,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":881,"context_line":""},{"line_number":882,"context_line":"    def _map_delete_lun(self, lunid, initiator_name):"},{"line_number":883,"context_line":"        map_group_name \u003d self._translate_grp_name(initiator_name)"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_4221ff9e","line":880,"in_reply_to":"1aa78d24_ec8bc21c","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":895,"context_line":"                             \u0027with Return code: %(ret)s.\u0027) %"},{"line_number":896,"context_line":"                           {\u0027name\u0027: map_group_name, \u0027lun\u0027: lunid,"},{"line_number":897,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":898,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":899,"context_line":""},{"line_number":900,"context_line":"        # if no lun in group,then we will delete this group"},{"line_number":901,"context_line":"        lun_num \u003d self._get_group_lunnum(map_group_name)"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_8c7dde1e","line":898,"updated":"2016-07-05 01:58:36.000000000","message":"same","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":895,"context_line":"                             \u0027with Return code: %(ret)s.\u0027) %"},{"line_number":896,"context_line":"                           {\u0027name\u0027: map_group_name, \u0027lun\u0027: lunid,"},{"line_number":897,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":898,"context_line":"                raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":899,"context_line":""},{"line_number":900,"context_line":"        # if no lun in group,then we will delete this group"},{"line_number":901,"context_line":"        lun_num \u003d self._get_group_lunnum(map_group_name)"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_af024c09","line":898,"in_reply_to":"1aa78d24_8c7dde1e","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":910,"context_line":"            err_msg \u003d (_(\u0027_map_delete_host:get map group info fail. \u0027"},{"line_number":911,"context_line":"                         \u0027group name:%(name)s with Return code: %(ret)s.\u0027) %"},{"line_number":912,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":913,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":914,"context_line":""},{"line_number":915,"context_line":"        sdwhostnum \u003d ret[\u0027data\u0027][\u0027sdwHostNum\u0027]"},{"line_number":916,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_2c9dca59","line":913,"updated":"2016-07-05 01:58:36.000000000","message":"same","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":910,"context_line":"            err_msg \u003d (_(\u0027_map_delete_host:get map group info fail. \u0027"},{"line_number":911,"context_line":"                         \u0027group name:%(name)s with Return code: %(ret)s.\u0027) %"},{"line_number":912,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":913,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":914,"context_line":""},{"line_number":915,"context_line":"        sdwhostnum \u003d ret[\u0027data\u0027][\u0027sdwHostNum\u0027]"},{"line_number":916,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_6f08642e","line":913,"in_reply_to":"1aa78d24_2c9dca59","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":927,"context_line":"                if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_SUCCESS,"},{"line_number":928,"context_line":"                                             zte_pub.ZTE_ERR_HOST_NOT_EXIST]:"},{"line_number":929,"context_line":"                    raise exception.VolumeDriverException("},{"line_number":930,"context_line":"                        _(\u0027delete host from group fail.\u0027))"},{"line_number":931,"context_line":""},{"line_number":932,"context_line":"                ret \u003d self._call_method("},{"line_number":933,"context_line":"                    \u0027GetHost\u0027, {\"cHostAlias\": initiator_name})"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_ec92a24a","line":930,"updated":"2016-07-05 01:58:36.000000000","message":"exception.VolumeDriverException(message\u003dmsg)","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":927,"context_line":"                if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_SUCCESS,"},{"line_number":928,"context_line":"                                             zte_pub.ZTE_ERR_HOST_NOT_EXIST]:"},{"line_number":929,"context_line":"                    raise exception.VolumeDriverException("},{"line_number":930,"context_line":"                        _(\u0027delete host from group fail.\u0027))"},{"line_number":931,"context_line":""},{"line_number":932,"context_line":"                ret \u003d self._call_method("},{"line_number":933,"context_line":"                    \u0027GetHost\u0027, {\"cHostAlias\": initiator_name})"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_ef661428","line":930,"in_reply_to":"1aa78d24_ec92a24a","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":937,"context_line":"                                 \u0027%(ret)s.\u0027) %"},{"line_number":938,"context_line":"                               {\u0027name\u0027: initiator_name,"},{"line_number":939,"context_line":"                                \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":940,"context_line":"                    raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":941,"context_line":""},{"line_number":942,"context_line":"                return_data \u003d ret[\u0027data\u0027]"},{"line_number":943,"context_line":"                portnum \u003d return_data[\u0027sdwPortNum\u0027]"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_0c90ce42","line":940,"updated":"2016-07-05 01:58:36.000000000","message":"exception.VolumeBackendAPIException(data\u003derr_msg)","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":937,"context_line":"                                 \u0027%(ret)s.\u0027) %"},{"line_number":938,"context_line":"                               {\u0027name\u0027: initiator_name,"},{"line_number":939,"context_line":"                                \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":940,"context_line":"                    raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":941,"context_line":""},{"line_number":942,"context_line":"                return_data \u003d ret[\u0027data\u0027]"},{"line_number":943,"context_line":"                portnum \u003d return_data[\u0027sdwPortNum\u0027]"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_4fb76886","line":940,"in_reply_to":"1aa78d24_0c90ce42","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":956,"context_line":"                                   {\u0027name\u0027: initiator_name,"},{"line_number":957,"context_line":"                                    \u0027port\u0027: port_name,"},{"line_number":958,"context_line":"                                    \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":959,"context_line":"                        raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":960,"context_line":""},{"line_number":961,"context_line":"                ret \u003d self._call_method("},{"line_number":962,"context_line":"                    \u0027DelHost\u0027, {\"cHostAlias\": initiator_name})"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_ac725a47","line":959,"updated":"2016-07-05 01:58:36.000000000","message":"same","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":956,"context_line":"                                   {\u0027name\u0027: initiator_name,"},{"line_number":957,"context_line":"                                    \u0027port\u0027: port_name,"},{"line_number":958,"context_line":"                                    \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":959,"context_line":"                        raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":960,"context_line":""},{"line_number":961,"context_line":"                ret \u003d self._call_method("},{"line_number":962,"context_line":"                    \u0027DelHost\u0027, {\"cHostAlias\": initiator_name})"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_efbf345e","line":959,"in_reply_to":"1aa78d24_ac725a47","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":968,"context_line":"                                 \u0027%(ret)s\u0027) %"},{"line_number":969,"context_line":"                               {\u0027name\u0027: initiator_name,"},{"line_number":970,"context_line":"                                \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":971,"context_line":"                    raise exception.VolumeBackendAPIException(err_msg)"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_cc77e638","line":971,"updated":"2016-07-05 01:58:36.000000000","message":"same","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"84d309439628cc10ad102e9fe6e06baa895e3e99","unresolved":false,"context_lines":[{"line_number":968,"context_line":"                                 \u0027%(ret)s\u0027) %"},{"line_number":969,"context_line":"                               {\u0027name\u0027: initiator_name,"},{"line_number":970,"context_line":"                                \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":971,"context_line":"                    raise exception.VolumeBackendAPIException(err_msg)"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_0fbd6068","line":971,"in_reply_to":"1aa78d24_cc77e638","updated":"2016-07-05 06:04:56.000000000","message":"Done","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"0cde217b15bcd52a2382fc095137f373de96842a","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# under the License."},{"line_number":15,"context_line":"\"\"\""},{"line_number":16,"context_line":"Volume driver for ZTE storage systems."},{"line_number":17,"context_line":"\"\"\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import hashlib"},{"line_number":20,"context_line":"import json"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_76ec462a","line":17,"updated":"2016-07-06 22:22:44.000000000","message":"I would probably name this driver zte_iscsi unless there is some significance to zte_ks ?  What does ks mean ?","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"2f6f58a9e650d78e43a90caf2400fc750f476279","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# under the License."},{"line_number":15,"context_line":"\"\"\""},{"line_number":16,"context_line":"Volume driver for ZTE storage systems."},{"line_number":17,"context_line":"\"\"\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import hashlib"},{"line_number":20,"context_line":"import json"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_072aeeda","line":17,"in_reply_to":"1aa78d24_76ec462a","updated":"2016-07-07 00:38:06.000000000","message":"This is the driver for \u0027KS\u0027 series product. Such as \u0027KS3200\u0027, \u0027KS5200\u0027 and so son.","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"0cde217b15bcd52a2382fc095137f373de96842a","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmThreshold\u0027, default\u003d0,"},{"line_number":78,"context_line":"               help\u003d\u0027Pool volume alarm threshold. [0, 100]\u0027),"},{"line_number":79,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmStopAllocatedFlag\u0027, default\u003d0,"},{"line_number":80,"context_line":"               help\u003d\u0027Pool volume alarm stop allocated flag.\u0027)"},{"line_number":81,"context_line":"]"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_d30a6c25","line":80,"updated":"2016-07-06 22:22:44.000000000","message":"this seems like an excessive number of options here.  Why not make these volume type options instead?","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"73018380dd433bf0fc6758e76d4e586549df5909","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmThreshold\u0027, default\u003d0,"},{"line_number":78,"context_line":"               help\u003d\u0027Pool volume alarm threshold. [0, 100]\u0027),"},{"line_number":79,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmStopAllocatedFlag\u0027, default\u003d0,"},{"line_number":80,"context_line":"               help\u003d\u0027Pool volume alarm stop allocated flag.\u0027)"},{"line_number":81,"context_line":"]"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_02889721","line":80,"in_reply_to":"1aa78d24_18766d3e","updated":"2016-07-09 10:20:57.000000000","message":"At present, we want to apply these options to all volumes. In the future, we will consider taking some of them as volume type extra specs.","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3f71e39d1febaebd2e4698a55d9bcaf86018b0bd","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmThreshold\u0027, default\u003d0,"},{"line_number":78,"context_line":"               help\u003d\u0027Pool volume alarm threshold. [0, 100]\u0027),"},{"line_number":79,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmStopAllocatedFlag\u0027, default\u003d0,"},{"line_number":80,"context_line":"               help\u003d\u0027Pool volume alarm stop allocated flag.\u0027)"},{"line_number":81,"context_line":"]"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_18766d3e","line":80,"in_reply_to":"1aa78d24_8850ab0c","updated":"2016-07-08 13:09:37.000000000","message":"Some of these do seem like they would be better to have as volume type extra specs, but if you want to restrict your users to have one setting for all volumes, I suppose that is up to you.","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"15074119bc4802d0e54669ca8e4c3adffcaf0bf2","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmThreshold\u0027, default\u003d0,"},{"line_number":78,"context_line":"               help\u003d\u0027Pool volume alarm threshold. [0, 100]\u0027),"},{"line_number":79,"context_line":"    cfg.IntOpt(\u0027ztePoolVolAlarmStopAllocatedFlag\u0027, default\u003d0,"},{"line_number":80,"context_line":"               help\u003d\u0027Pool volume alarm stop allocated flag.\u0027)"},{"line_number":81,"context_line":"]"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_8850ab0c","line":80,"in_reply_to":"1aa78d24_d30a6c25","updated":"2016-07-07 01:53:32.000000000","message":"These options are for advance users.  It will be easy to change these options in a configure file. The combination of these options is too much.","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6fafc17136f5a2d4b1db1eaaaf1f6aeda0e8f35a","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":201,"context_line":"                return sid"},{"line_number":202,"context_line":"            else:"},{"line_number":203,"context_line":"                LOG.info(_LI(\u0027heartbeat failed.San. Return code:\u0027"},{"line_number":204,"context_line":"                             \u0027 %(ret)s.\u0027),"},{"line_number":205,"context_line":"                         {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":206,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_c334e34b","line":203,"updated":"2016-07-08 20:33:00.000000000","message":"\"failed.San.\"  ?","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"38f7c5b9043658028d54c4698e48fa3a6d8e8e19","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            if ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":201,"context_line":"                return sid"},{"line_number":202,"context_line":"            else:"},{"line_number":203,"context_line":"                LOG.info(_LI(\u0027heartbeat failed.San. Return code:\u0027"},{"line_number":204,"context_line":"                             \u0027 %(ret)s.\u0027),"},{"line_number":205,"context_line":"                         {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":206,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_021257b4","line":203,"in_reply_to":"1aa78d24_c334e34b","updated":"2016-07-09 10:51:23.000000000","message":"Done","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3f71e39d1febaebd2e4698a55d9bcaf86018b0bd","unresolved":false,"context_lines":[{"line_number":204,"context_line":"                             \u0027 %(ret)s.\u0027),"},{"line_number":205,"context_line":"                         {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":206,"context_line":"        except Exception:"},{"line_number":207,"context_line":"            LOG.exception(_LE(\u0027_get_sessionid error.\u0027))"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        self._change_server()"},{"line_number":210,"context_line":"        return self._user_login()"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_38f24970","line":207,"updated":"2016-07-08 13:09:37.000000000","message":"Is it OK to proceed as normal from here? I don\u0027t know how your product works, but it seems like it would be bad if an exception was thrown here.","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"73018380dd433bf0fc6758e76d4e586549df5909","unresolved":false,"context_lines":[{"line_number":204,"context_line":"                             \u0027 %(ret)s.\u0027),"},{"line_number":205,"context_line":"                         {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":206,"context_line":"        except Exception:"},{"line_number":207,"context_line":"            LOG.exception(_LE(\u0027_get_sessionid error.\u0027))"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        self._change_server()"},{"line_number":210,"context_line":"        return self._user_login()"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_c2768f3d","line":207,"in_reply_to":"1aa78d24_38f24970","updated":"2016-07-09 10:20:57.000000000","message":"\"sessionid\" is a key parameter to communicate with our devices.","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6fafc17136f5a2d4b1db1eaaaf1f6aeda0e8f35a","unresolved":false,"context_lines":[{"line_number":262,"context_line":"        if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_ERR_OBJECT_EXIST,"},{"line_number":263,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":264,"context_line":"            err_msg \u003d ("},{"line_number":265,"context_line":"                _(\u0027Create volume fail. Volume name: %(name)s. \u0027"},{"line_number":266,"context_line":"                  \u0027Return code: %(ret)s.\u0027) %"},{"line_number":267,"context_line":"                {\u0027name\u0027: volume_name,"},{"line_number":268,"context_line":"                 \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_637d2fe7","line":265,"updated":"2016-07-08 20:33:00.000000000","message":"c/fail/failed","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"38f7c5b9043658028d54c4698e48fa3a6d8e8e19","unresolved":false,"context_lines":[{"line_number":262,"context_line":"        if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_ERR_OBJECT_EXIST,"},{"line_number":263,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":264,"context_line":"            err_msg \u003d ("},{"line_number":265,"context_line":"                _(\u0027Create volume fail. Volume name: %(name)s. \u0027"},{"line_number":266,"context_line":"                  \u0027Return code: %(ret)s.\u0027) %"},{"line_number":267,"context_line":"                {\u0027name\u0027: volume_name,"},{"line_number":268,"context_line":"                 \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_c2496fd2","line":265,"in_reply_to":"1aa78d24_637d2fe7","updated":"2016-07-09 10:51:23.000000000","message":"Done","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6fafc17136f5a2d4b1db1eaaaf1f6aeda0e8f35a","unresolved":false,"context_lines":[{"line_number":313,"context_line":"        if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_ERR_VOLUME_NOT_EXIST,"},{"line_number":314,"context_line":"                                     zte_pub.ZTE_ERR_LUNDEV_NOT_EXIST,"},{"line_number":315,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":316,"context_line":"            err_msg \u003d (_(\u0027Delete volume fail. Volume name: %(name)s.\u0027"},{"line_number":317,"context_line":"                         \u0027Return code: %(ret)s.\u0027) %"},{"line_number":318,"context_line":"                       {\u0027name\u0027: volume_name,"},{"line_number":319,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_23e207a0","line":316,"updated":"2016-07-08 20:33:00.000000000","message":"s/fail/failed","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"38f7c5b9043658028d54c4698e48fa3a6d8e8e19","unresolved":false,"context_lines":[{"line_number":313,"context_line":"        if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_ERR_VOLUME_NOT_EXIST,"},{"line_number":314,"context_line":"                                     zte_pub.ZTE_ERR_LUNDEV_NOT_EXIST,"},{"line_number":315,"context_line":"                                     zte_pub.ZTE_SUCCESS]:"},{"line_number":316,"context_line":"            err_msg \u003d (_(\u0027Delete volume fail. Volume name: %(name)s.\u0027"},{"line_number":317,"context_line":"                         \u0027Return code: %(ret)s.\u0027) %"},{"line_number":318,"context_line":"                       {\u0027name\u0027: volume_name,"},{"line_number":319,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_623a3b36","line":316,"in_reply_to":"1aa78d24_23e207a0","updated":"2016-07-09 10:51:23.000000000","message":"Done","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6fafc17136f5a2d4b1db1eaaaf1f6aeda0e8f35a","unresolved":false,"context_lines":[{"line_number":345,"context_line":"                    raise exception.VolumeIsBusy(volume_name\u003dcloned_name)"},{"line_number":346,"context_line":"            else:"},{"line_number":347,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":348,"context_line":"        time.sleep(zte_pub.ZTE_WAIT_DELCVOL)"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"    def _delete_clone_relation_by_volname(self, volname, issnapshot):"},{"line_number":351,"context_line":"        svol_name \u003d {\u0027scVolName\u0027: volname}"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_9e0d0e3a","line":348,"updated":"2016-07-08 20:33:00.000000000","message":"This is odd.  You added a sleep here but you are not checking any status?  You should add a wait loop here to check whether the volume is really deleted and exit the loop if it is deleted or if there\u0027s a timeout.\n\nSearch for \"loopingcall\" under volume/drivers.  There are lots of examples there.","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"a6b8f00adb886fef4c9050fb4541ba857a0e361a","unresolved":false,"context_lines":[{"line_number":345,"context_line":"                    raise exception.VolumeIsBusy(volume_name\u003dcloned_name)"},{"line_number":346,"context_line":"            else:"},{"line_number":347,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":348,"context_line":"        time.sleep(zte_pub.ZTE_WAIT_DELCVOL)"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"    def _delete_clone_relation_by_volname(self, volname, issnapshot):"},{"line_number":351,"context_line":"        svol_name \u003d {\u0027scVolName\u0027: volname}"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_9406731e","line":348,"in_reply_to":"1aa78d24_9e0d0e3a","updated":"2016-07-11 05:09:14.000000000","message":"\"sleep\" is not necessary here now, so we have it removed.","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6fafc17136f5a2d4b1db1eaaaf1f6aeda0e8f35a","unresolved":false,"context_lines":[{"line_number":639,"context_line":"    def _get_sysinfo(self):"},{"line_number":640,"context_line":"        ret \u003d self._call_method(\u0027GetSysInfo\u0027)"},{"line_number":641,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":642,"context_line":"            err_msg \u003d (_(\u0027_get_sysinfo:get sys info fail.with Return code: \u0027"},{"line_number":643,"context_line":"                         \u0027%(ret)s.\u0027),"},{"line_number":644,"context_line":"                       {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":645,"context_line":"            raise exception.VolumeDriverException(message\u003derr_msg)"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_7ed2e235","line":642,"updated":"2016-07-08 20:33:00.000000000","message":"failed. Return code","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"38f7c5b9043658028d54c4698e48fa3a6d8e8e19","unresolved":false,"context_lines":[{"line_number":639,"context_line":"    def _get_sysinfo(self):"},{"line_number":640,"context_line":"        ret \u003d self._call_method(\u0027GetSysInfo\u0027)"},{"line_number":641,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":642,"context_line":"            err_msg \u003d (_(\u0027_get_sysinfo:get sys info fail.with Return code: \u0027"},{"line_number":643,"context_line":"                         \u0027%(ret)s.\u0027),"},{"line_number":644,"context_line":"                       {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":645,"context_line":"            raise exception.VolumeDriverException(message\u003derr_msg)"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_823f6724","line":642,"in_reply_to":"1aa78d24_7ed2e235","updated":"2016-07-09 10:51:23.000000000","message":"Done","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6fafc17136f5a2d4b1db1eaaaf1f6aeda0e8f35a","unresolved":false,"context_lines":[{"line_number":686,"context_line":"    def _get_net_cfg_ips(self):"},{"line_number":687,"context_line":"        ret \u003d self._call_method(\u0027GetSystemNetCfg\u0027)"},{"line_number":688,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":689,"context_line":"            err_msg \u003d (_(\u0027get_Net_Cfg fail.with Return code: %(ret)s.\u0027) %"},{"line_number":690,"context_line":"                       {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":691,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":692,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_1ec59e5a","line":689,"updated":"2016-07-08 20:33:00.000000000","message":"failed. Return code","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"38f7c5b9043658028d54c4698e48fa3a6d8e8e19","unresolved":false,"context_lines":[{"line_number":686,"context_line":"    def _get_net_cfg_ips(self):"},{"line_number":687,"context_line":"        ret \u003d self._call_method(\u0027GetSystemNetCfg\u0027)"},{"line_number":688,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":689,"context_line":"            err_msg \u003d (_(\u0027get_Net_Cfg fail.with Return code: %(ret)s.\u0027) %"},{"line_number":690,"context_line":"                       {\u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":691,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":692,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_42357f44","line":689,"in_reply_to":"1aa78d24_1ec59e5a","updated":"2016-07-09 10:51:23.000000000","message":"Done","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6fafc17136f5a2d4b1db1eaaaf1f6aeda0e8f35a","unresolved":false,"context_lines":[{"line_number":842,"context_line":"                                         zte_pub.ZTE_ERR_PORT_EXIST,"},{"line_number":843,"context_line":"                                         zte_pub.ZTE_ERR_PORT_EXIST_OLD]:"},{"line_number":844,"context_line":"                err_msg \u003d ("},{"line_number":845,"context_line":"                    _(\u0027create host fail.host name:%(name)s \u0027"},{"line_number":846,"context_line":"                      \u0027with Return code: %(ret)s.\u0027) %"},{"line_number":847,"context_line":"                    {\u0027name\u0027: host_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":848,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_9e398e44","line":845,"updated":"2016-07-08 20:33:00.000000000","message":"failed. Host….","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"38f7c5b9043658028d54c4698e48fa3a6d8e8e19","unresolved":false,"context_lines":[{"line_number":842,"context_line":"                                         zte_pub.ZTE_ERR_PORT_EXIST,"},{"line_number":843,"context_line":"                                         zte_pub.ZTE_ERR_PORT_EXIST_OLD]:"},{"line_number":844,"context_line":"                err_msg \u003d ("},{"line_number":845,"context_line":"                    _(\u0027create host fail.host name:%(name)s \u0027"},{"line_number":846,"context_line":"                      \u0027with Return code: %(ret)s.\u0027) %"},{"line_number":847,"context_line":"                    {\u0027name\u0027: host_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":848,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_022b77ec","line":845,"in_reply_to":"1aa78d24_9e398e44","updated":"2016-07-09 10:51:23.000000000","message":"Done","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6fafc17136f5a2d4b1db1eaaaf1f6aeda0e8f35a","unresolved":false,"context_lines":[{"line_number":858,"context_line":"            if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_SUCCESS,"},{"line_number":859,"context_line":"                                         zte_pub.ZTE_ERR_PORT_EXIST,"},{"line_number":860,"context_line":"                                         zte_pub.ZTE_ERR_PORT_EXIST_OLD]:"},{"line_number":861,"context_line":"                err_msg \u003d (_(\u0027_create_group:add port fail.port name: \u0027"},{"line_number":862,"context_line":"                             \u0027%(name)s  with Return code: %(ret)s.\u0027) %"},{"line_number":863,"context_line":"                           {\u0027name\u0027: initiator_name,"},{"line_number":864,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_3e497ad1","line":861,"updated":"2016-07-08 20:33:00.000000000","message":"failed. Port…...","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"38f7c5b9043658028d54c4698e48fa3a6d8e8e19","unresolved":false,"context_lines":[{"line_number":858,"context_line":"            if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_SUCCESS,"},{"line_number":859,"context_line":"                                         zte_pub.ZTE_ERR_PORT_EXIST,"},{"line_number":860,"context_line":"                                         zte_pub.ZTE_ERR_PORT_EXIST_OLD]:"},{"line_number":861,"context_line":"                err_msg \u003d (_(\u0027_create_group:add port fail.port name: \u0027"},{"line_number":862,"context_line":"                             \u0027%(name)s  with Return code: %(ret)s.\u0027) %"},{"line_number":863,"context_line":"                           {\u0027name\u0027: initiator_name,"},{"line_number":864,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_c2f20f9a","line":861,"in_reply_to":"1aa78d24_3e497ad1","updated":"2016-07-09 10:51:23.000000000","message":"Done","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6fafc17136f5a2d4b1db1eaaaf1f6aeda0e8f35a","unresolved":false,"context_lines":[{"line_number":872,"context_line":"                                         zte_pub.ZTE_ERR_HOST_EXIST,"},{"line_number":873,"context_line":"                                         zte_pub.ZTE_ERR_HOST_EXIST_OLD]:"},{"line_number":874,"context_line":"                self._delete_group(map_group_name)"},{"line_number":875,"context_line":"                err_msg \u003d (_(\u0027_create_group:add host to group fail. \u0027"},{"line_number":876,"context_line":"                             \u0027group name:%(name)s init name :%(init)s \u0027"},{"line_number":877,"context_line":"                             \u0027with Return code: %(ret)s.\u0027) %"},{"line_number":878,"context_line":"                           {\u0027name\u0027: map_group_name,"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_de22f600","line":875,"updated":"2016-07-08 20:33:00.000000000","message":"failed.","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"38f7c5b9043658028d54c4698e48fa3a6d8e8e19","unresolved":false,"context_lines":[{"line_number":872,"context_line":"                                         zte_pub.ZTE_ERR_HOST_EXIST,"},{"line_number":873,"context_line":"                                         zte_pub.ZTE_ERR_HOST_EXIST_OLD]:"},{"line_number":874,"context_line":"                self._delete_group(map_group_name)"},{"line_number":875,"context_line":"                err_msg \u003d (_(\u0027_create_group:add host to group fail. \u0027"},{"line_number":876,"context_line":"                             \u0027group name:%(name)s init name :%(init)s \u0027"},{"line_number":877,"context_line":"                             \u0027with Return code: %(ret)s.\u0027) %"},{"line_number":878,"context_line":"                           {\u0027name\u0027: map_group_name,"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_62f35ba0","line":875,"in_reply_to":"1aa78d24_de22f600","updated":"2016-07-09 10:51:23.000000000","message":"Done","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6fafc17136f5a2d4b1db1eaaaf1f6aeda0e8f35a","unresolved":false,"context_lines":[{"line_number":880,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":881,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":882,"context_line":"        else:"},{"line_number":883,"context_line":"            err_msg \u003d (_(\u0027create group fail.group name:%(name)s \u0027"},{"line_number":884,"context_line":"                         \u0027with Return code: %(ret)s.\u0027) %"},{"line_number":885,"context_line":"                       {\u0027name\u0027: map_group_name,"},{"line_number":886,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_5e7d66e6","line":883,"updated":"2016-07-08 20:33:00.000000000","message":"failed. Group","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"38f7c5b9043658028d54c4698e48fa3a6d8e8e19","unresolved":false,"context_lines":[{"line_number":880,"context_line":"                            \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":881,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":882,"context_line":"        else:"},{"line_number":883,"context_line":"            err_msg \u003d (_(\u0027create group fail.group name:%(name)s \u0027"},{"line_number":884,"context_line":"                         \u0027with Return code: %(ret)s.\u0027) %"},{"line_number":885,"context_line":"                       {\u0027name\u0027: map_group_name,"},{"line_number":886,"context_line":"                        \u0027ret\u0027: ret[\u0027returncode\u0027]})"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_e2062b84","line":883,"in_reply_to":"1aa78d24_5e7d66e6","updated":"2016-07-09 10:51:23.000000000","message":"Done","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6fafc17136f5a2d4b1db1eaaaf1f6aeda0e8f35a","unresolved":false,"context_lines":[{"line_number":897,"context_line":"                \u0027sdwLunId\u0027: lunid}"},{"line_number":898,"context_line":"            ret \u003d self._call_method(\u0027DelVolFromGrp\u0027, del_vol_from_grp)"},{"line_number":899,"context_line":"            if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":900,"context_line":"                err_msg \u003d (_(\u0027_map_lun:delete lunid from group fail. \u0027"},{"line_number":901,"context_line":"                             \u0027group name:%(name)s lunid : %(lun)s \u0027"},{"line_number":902,"context_line":"                             \u0027with Return code: %(ret)s.\u0027) %"},{"line_number":903,"context_line":"                           {\u0027name\u0027: map_group_name, \u0027lun\u0027: lunid,"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_9e87ced6","line":900,"updated":"2016-07-08 20:33:00.000000000","message":"same","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"38f7c5b9043658028d54c4698e48fa3a6d8e8e19","unresolved":false,"context_lines":[{"line_number":897,"context_line":"                \u0027sdwLunId\u0027: lunid}"},{"line_number":898,"context_line":"            ret \u003d self._call_method(\u0027DelVolFromGrp\u0027, del_vol_from_grp)"},{"line_number":899,"context_line":"            if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":900,"context_line":"                err_msg \u003d (_(\u0027_map_lun:delete lunid from group fail. \u0027"},{"line_number":901,"context_line":"                             \u0027group name:%(name)s lunid : %(lun)s \u0027"},{"line_number":902,"context_line":"                             \u0027with Return code: %(ret)s.\u0027) %"},{"line_number":903,"context_line":"                           {\u0027name\u0027: map_group_name, \u0027lun\u0027: lunid,"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_82d127fe","line":900,"in_reply_to":"1aa78d24_9e87ced6","updated":"2016-07-09 10:51:23.000000000","message":"Done","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6fafc17136f5a2d4b1db1eaaaf1f6aeda0e8f35a","unresolved":false,"context_lines":[{"line_number":914,"context_line":"        map_grp_info \u003d {\u0027cMapGrpName\u0027: map_group_name}"},{"line_number":915,"context_line":"        ret \u003d self._call_method(\u0027GetMapGrpInfo\u0027, map_grp_info)"},{"line_number":916,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":917,"context_line":"            err_msg \u003d (_(\u0027_map_delete_host:get map group info fail. \u0027"},{"line_number":918,"context_line":"                         \u0027group name:%(name)s with Return code: %(ret)s.\u0027) %"},{"line_number":919,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":920,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_5e644648","line":917,"updated":"2016-07-08 20:33:00.000000000","message":"failed.","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"38f7c5b9043658028d54c4698e48fa3a6d8e8e19","unresolved":false,"context_lines":[{"line_number":914,"context_line":"        map_grp_info \u003d {\u0027cMapGrpName\u0027: map_group_name}"},{"line_number":915,"context_line":"        ret \u003d self._call_method(\u0027GetMapGrpInfo\u0027, map_grp_info)"},{"line_number":916,"context_line":"        if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":917,"context_line":"            err_msg \u003d (_(\u0027_map_delete_host:get map group info fail. \u0027"},{"line_number":918,"context_line":"                         \u0027group name:%(name)s with Return code: %(ret)s.\u0027) %"},{"line_number":919,"context_line":"                       {\u0027name\u0027: map_group_name, \u0027ret\u0027: ret[\u0027returncode\u0027]})"},{"line_number":920,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_42e73fe4","line":917,"in_reply_to":"1aa78d24_5e644648","updated":"2016-07-09 10:51:23.000000000","message":"Done","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6fafc17136f5a2d4b1db1eaaaf1f6aeda0e8f35a","unresolved":false,"context_lines":[{"line_number":933,"context_line":"                    continue"},{"line_number":934,"context_line":"                if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_SUCCESS,"},{"line_number":935,"context_line":"                                             zte_pub.ZTE_ERR_HOST_NOT_EXIST]:"},{"line_number":936,"context_line":"                    msg \u003d _(\u0027delete host from group fail.\u0027)"},{"line_number":937,"context_line":"                    raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":938,"context_line":""},{"line_number":939,"context_line":"                ret \u003d self._call_method("}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_1e4bdeb1","line":936,"updated":"2016-07-08 20:33:00.000000000","message":"failed.","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"38f7c5b9043658028d54c4698e48fa3a6d8e8e19","unresolved":false,"context_lines":[{"line_number":933,"context_line":"                    continue"},{"line_number":934,"context_line":"                if ret[\u0027returncode\u0027] not in [zte_pub.ZTE_SUCCESS,"},{"line_number":935,"context_line":"                                             zte_pub.ZTE_ERR_HOST_NOT_EXIST]:"},{"line_number":936,"context_line":"                    msg \u003d _(\u0027delete host from group fail.\u0027)"},{"line_number":937,"context_line":"                    raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":938,"context_line":""},{"line_number":939,"context_line":"                ret \u003d self._call_method("}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_a2bf03a9","line":936,"in_reply_to":"1aa78d24_1e4bdeb1","updated":"2016-07-09 10:51:23.000000000","message":"Done","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6fafc17136f5a2d4b1db1eaaaf1f6aeda0e8f35a","unresolved":false,"context_lines":[{"line_number":939,"context_line":"                ret \u003d self._call_method("},{"line_number":940,"context_line":"                    \u0027GetHost\u0027, {\"cHostAlias\": initiator_name})"},{"line_number":941,"context_line":"                if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":942,"context_line":"                    err_msg \u003d (_(\u0027_map_delete_host:get host info fail. \u0027"},{"line_number":943,"context_line":"                                 \u0027host name:%(name)s with Return code: \u0027"},{"line_number":944,"context_line":"                                 \u0027%(ret)s.\u0027) %"},{"line_number":945,"context_line":"                               {\u0027name\u0027: initiator_name,"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_bed0caca","line":942,"updated":"2016-07-08 20:33:00.000000000","message":"failed.","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"38f7c5b9043658028d54c4698e48fa3a6d8e8e19","unresolved":false,"context_lines":[{"line_number":939,"context_line":"                ret \u003d self._call_method("},{"line_number":940,"context_line":"                    \u0027GetHost\u0027, {\"cHostAlias\": initiator_name})"},{"line_number":941,"context_line":"                if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":942,"context_line":"                    err_msg \u003d (_(\u0027_map_delete_host:get host info fail. \u0027"},{"line_number":943,"context_line":"                                 \u0027host name:%(name)s with Return code: \u0027"},{"line_number":944,"context_line":"                                 \u0027%(ret)s.\u0027) %"},{"line_number":945,"context_line":"                               {\u0027name\u0027: initiator_name,"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_22b313eb","line":942,"in_reply_to":"1aa78d24_bed0caca","updated":"2016-07-09 10:51:23.000000000","message":"Done","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6fafc17136f5a2d4b1db1eaaaf1f6aeda0e8f35a","unresolved":false,"context_lines":[{"line_number":957,"context_line":""},{"line_number":958,"context_line":"                    ret \u003d self._call_method(\u0027DelPortFromHost\u0027, port_host_info)"},{"line_number":959,"context_line":"                    if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":960,"context_line":"                        err_msg \u003d (_(\u0027delete port from host fail. \u0027"},{"line_number":961,"context_line":"                                     \u0027host name:%(name)s, port name:%(port)s \u0027"},{"line_number":962,"context_line":"                                     \u0027with Return code: %(ret)s.\u0027) %"},{"line_number":963,"context_line":"                                   {\u0027name\u0027: initiator_name,"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_fe01b23a","line":960,"updated":"2016-07-08 20:33:00.000000000","message":"failed.","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"38f7c5b9043658028d54c4698e48fa3a6d8e8e19","unresolved":false,"context_lines":[{"line_number":957,"context_line":""},{"line_number":958,"context_line":"                    ret \u003d self._call_method(\u0027DelPortFromHost\u0027, port_host_info)"},{"line_number":959,"context_line":"                    if ret[\u0027returncode\u0027] !\u003d zte_pub.ZTE_SUCCESS:"},{"line_number":960,"context_line":"                        err_msg \u003d (_(\u0027delete port from host fail. \u0027"},{"line_number":961,"context_line":"                                     \u0027host name:%(name)s, port name:%(port)s \u0027"},{"line_number":962,"context_line":"                                     \u0027with Return code: %(ret)s.\u0027) %"},{"line_number":963,"context_line":"                                   {\u0027name\u0027: initiator_name,"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_e2b8ebc9","line":960,"in_reply_to":"1aa78d24_fe01b23a","updated":"2016-07-09 10:51:23.000000000","message":"Done","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6fafc17136f5a2d4b1db1eaaaf1f6aeda0e8f35a","unresolved":false,"context_lines":[{"line_number":970,"context_line":"                if (ret[\u0027returncode\u0027] not"},{"line_number":971,"context_line":"                    in [zte_pub.ZTE_SUCCESS,"},{"line_number":972,"context_line":"                        zte_pub.ZTE_ERR_HOSTNAME_NOT_EXIST]):"},{"line_number":973,"context_line":"                    err_msg \u003d (_(\u0027_map_delete_host:delete hostfail. \u0027"},{"line_number":974,"context_line":"                                 \u0027host name:%(name)s with Return code: \u0027"},{"line_number":975,"context_line":"                                 \u0027%(ret)s\u0027) %"},{"line_number":976,"context_line":"                               {\u0027name\u0027: initiator_name,"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_5e99e61e","line":973,"updated":"2016-07-08 20:33:00.000000000","message":"delete host failed.","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"38f7c5b9043658028d54c4698e48fa3a6d8e8e19","unresolved":false,"context_lines":[{"line_number":970,"context_line":"                if (ret[\u0027returncode\u0027] not"},{"line_number":971,"context_line":"                    in [zte_pub.ZTE_SUCCESS,"},{"line_number":972,"context_line":"                        zte_pub.ZTE_ERR_HOSTNAME_NOT_EXIST]):"},{"line_number":973,"context_line":"                    err_msg \u003d (_(\u0027_map_delete_host:delete hostfail. \u0027"},{"line_number":974,"context_line":"                                 \u0027host name:%(name)s with Return code: \u0027"},{"line_number":975,"context_line":"                                 \u0027%(ret)s\u0027) %"},{"line_number":976,"context_line":"                               {\u0027name\u0027: initiator_name,"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_629ebb55","line":973,"in_reply_to":"1aa78d24_5e99e61e","updated":"2016-07-09 10:51:23.000000000","message":"Done","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b8c38023c81ba516f336241c3c53492e15d6fba9","unresolved":false,"context_lines":[{"line_number":219,"context_line":"                pool_info \u003d {\u0027name\u0027: pool_name}"},{"line_number":220,"context_line":"                if ((ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_SUCCESS) and"},{"line_number":221,"context_line":"                        (ret[\u0027data\u0027][\u0027sdwState\u0027] \u003d\u003d zte_pub.ZTE_STATUS_OK)):"},{"line_number":222,"context_line":"                    total_capacitity \u003d ret[\u0027data\u0027][\u0027qwTotalCapacity\u0027]"},{"line_number":223,"context_line":"                    free_capacitity \u003d ret[\u0027data\u0027][\u0027qwFreeCapacity\u0027]"},{"line_number":224,"context_line":"                    pool_info[\u0027total\u0027] \u003d ("},{"line_number":225,"context_line":"                        float(total_capacitity) / units.Ki)"}],"source_content_type":"text/x-python","patch_set":33,"id":"1aa78d24_c5ce6b82","line":222,"updated":"2016-07-11 15:09:41.000000000","message":"Nit: Typo: total_capacitity -\u003e total_capacity","commit_id":"3e84e833b2809223084dc7e1e0179044264d4fb1"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"51a459e159210db7f1ada2b7126c1de0011356bb","unresolved":false,"context_lines":[{"line_number":219,"context_line":"                pool_info \u003d {\u0027name\u0027: pool_name}"},{"line_number":220,"context_line":"                if ((ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_SUCCESS) and"},{"line_number":221,"context_line":"                        (ret[\u0027data\u0027][\u0027sdwState\u0027] \u003d\u003d zte_pub.ZTE_STATUS_OK)):"},{"line_number":222,"context_line":"                    total_capacitity \u003d ret[\u0027data\u0027][\u0027qwTotalCapacity\u0027]"},{"line_number":223,"context_line":"                    free_capacitity \u003d ret[\u0027data\u0027][\u0027qwFreeCapacity\u0027]"},{"line_number":224,"context_line":"                    pool_info[\u0027total\u0027] \u003d ("},{"line_number":225,"context_line":"                        float(total_capacitity) / units.Ki)"}],"source_content_type":"text/x-python","patch_set":33,"id":"1aa78d24_56bcd805","line":222,"in_reply_to":"1aa78d24_c5ce6b82","updated":"2016-07-12 02:15:44.000000000","message":"Done","commit_id":"3e84e833b2809223084dc7e1e0179044264d4fb1"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b8c38023c81ba516f336241c3c53492e15d6fba9","unresolved":false,"context_lines":[{"line_number":220,"context_line":"                if ((ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_SUCCESS) and"},{"line_number":221,"context_line":"                        (ret[\u0027data\u0027][\u0027sdwState\u0027] \u003d\u003d zte_pub.ZTE_STATUS_OK)):"},{"line_number":222,"context_line":"                    total_capacitity \u003d ret[\u0027data\u0027][\u0027qwTotalCapacity\u0027]"},{"line_number":223,"context_line":"                    free_capacitity \u003d ret[\u0027data\u0027][\u0027qwFreeCapacity\u0027]"},{"line_number":224,"context_line":"                    pool_info[\u0027total\u0027] \u003d ("},{"line_number":225,"context_line":"                        float(total_capacitity) / units.Ki)"},{"line_number":226,"context_line":"                    pool_info[\u0027free\u0027] \u003d ("}],"source_content_type":"text/x-python","patch_set":33,"id":"1aa78d24_45a1dba8","line":223,"updated":"2016-07-11 15:09:41.000000000","message":"Ditto","commit_id":"3e84e833b2809223084dc7e1e0179044264d4fb1"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"51a459e159210db7f1ada2b7126c1de0011356bb","unresolved":false,"context_lines":[{"line_number":220,"context_line":"                if ((ret[\u0027returncode\u0027] \u003d\u003d zte_pub.ZTE_SUCCESS) and"},{"line_number":221,"context_line":"                        (ret[\u0027data\u0027][\u0027sdwState\u0027] \u003d\u003d zte_pub.ZTE_STATUS_OK)):"},{"line_number":222,"context_line":"                    total_capacitity \u003d ret[\u0027data\u0027][\u0027qwTotalCapacity\u0027]"},{"line_number":223,"context_line":"                    free_capacitity \u003d ret[\u0027data\u0027][\u0027qwFreeCapacity\u0027]"},{"line_number":224,"context_line":"                    pool_info[\u0027total\u0027] \u003d ("},{"line_number":225,"context_line":"                        float(total_capacitity) / units.Ki)"},{"line_number":226,"context_line":"                    pool_info[\u0027free\u0027] \u003d ("}],"source_content_type":"text/x-python","patch_set":33,"id":"1aa78d24_763d948e","line":223,"in_reply_to":"1aa78d24_45a1dba8","updated":"2016-07-12 02:15:44.000000000","message":"Done","commit_id":"3e84e833b2809223084dc7e1e0179044264d4fb1"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b8c38023c81ba516f336241c3c53492e15d6fba9","unresolved":false,"context_lines":[{"line_number":391,"context_line":"        snapshot_name \u003d self._translate_volume_name(snapshot[\u0027name\u0027])"},{"line_number":392,"context_line":"        volume_name \u003d self._translate_volume_name(snapshot[\u0027volume_name\u0027])"},{"line_number":393,"context_line":"        volume_size \u003d snapshot[\u0027volume_size\u0027]"},{"line_number":394,"context_line":"        self._create_snapshot(snapshot_name, volume_name, volume_size, 1)"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"    def _delete_snapshot(self, snapshot_name):"},{"line_number":397,"context_line":"        svol_name \u003d {\u0027scSnapName\u0027: snapshot_name}"}],"source_content_type":"text/x-python","patch_set":33,"id":"1aa78d24_a5e23fff","line":394,"updated":"2016-07-11 15:09:41.000000000","message":"No snapshot_mode parameter?  (Line 368)","commit_id":"3e84e833b2809223084dc7e1e0179044264d4fb1"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"51a459e159210db7f1ada2b7126c1de0011356bb","unresolved":false,"context_lines":[{"line_number":391,"context_line":"        snapshot_name \u003d self._translate_volume_name(snapshot[\u0027name\u0027])"},{"line_number":392,"context_line":"        volume_name \u003d self._translate_volume_name(snapshot[\u0027volume_name\u0027])"},{"line_number":393,"context_line":"        volume_size \u003d snapshot[\u0027volume_size\u0027]"},{"line_number":394,"context_line":"        self._create_snapshot(snapshot_name, volume_name, volume_size, 1)"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"    def _delete_snapshot(self, snapshot_name):"},{"line_number":397,"context_line":"        svol_name \u003d {\u0027scSnapName\u0027: snapshot_name}"}],"source_content_type":"text/x-python","patch_set":33,"id":"1aa78d24_e138a0d5","line":394,"in_reply_to":"1aa78d24_a5e23fff","updated":"2016-07-12 02:15:44.000000000","message":"\"1\" stands for snapshot_mode. We will make this more clear.","commit_id":"3e84e833b2809223084dc7e1e0179044264d4fb1"}],"cinder/volume/drivers/zte/zte_pub.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1e8217635366faa31e9c8fdc5423a47c4f3a0664","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012-2015 ZTE Corporation. All rights reserved"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":10,"id":"dab17558_c206d9cc","line":1,"updated":"2016-05-17 22:08:02.000000000","message":"Should be 2016 instead of \"2012-2015\".","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"f409f1f676eb985157a69306e42580c35c790b0f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012-2015 ZTE Corporation. All rights reserved"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_097b28f6","line":1,"in_reply_to":"dab17558_c206d9cc","updated":"2016-05-21 02:54:18.000000000","message":"Done","commit_id":"54fe180d2126104f32ca586042f828b73921e915"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"84fedbb7f6301b36a8014fc558b02499aeaa0551","unresolved":false,"context_lines":[{"line_number":17,"context_line":"\"\"\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"ZTE_HOST_GROUP_NAME_PREFIX \u003d \u0027HostGroup_\u0027"},{"line_number":20,"context_line":"ZTE_VOL_AND_SNAP_NAME_PREFIX \u003d \u0027OpenStack_\u0027"},{"line_number":21,"context_line":"ZTE_VOL__NAME_PREFIX_NEW \u003d \u0027OpenCos_\u0027"},{"line_number":22,"context_line":"ZTE_CLONE_SUFFIX \u003d \u0027c\u0027"},{"line_number":23,"context_line":"ZTE_GROUP_MAX_LUN \u003d 255"}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_21baede1","line":20,"updated":"2016-06-10 12:50:23.000000000","message":"Should we do it configurable?","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"35197fc6c4cc74d3f8deccc3ebe0fc68ece26998","unresolved":false,"context_lines":[{"line_number":17,"context_line":"\"\"\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"ZTE_HOST_GROUP_NAME_PREFIX \u003d \u0027HostGroup_\u0027"},{"line_number":20,"context_line":"ZTE_VOL_AND_SNAP_NAME_PREFIX \u003d \u0027OpenStack_\u0027"},{"line_number":21,"context_line":"ZTE_VOL__NAME_PREFIX_NEW \u003d \u0027OpenCos_\u0027"},{"line_number":22,"context_line":"ZTE_CLONE_SUFFIX \u003d \u0027c\u0027"},{"line_number":23,"context_line":"ZTE_GROUP_MAX_LUN \u003d 255"}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_1398b91a","line":20,"in_reply_to":"7aa08908_21baede1","updated":"2016-06-12 07:10:27.000000000","message":"At present, we don\u0027t want this  to be seen by the users.","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"84fedbb7f6301b36a8014fc558b02499aeaa0551","unresolved":false,"context_lines":[{"line_number":45,"context_line":"ZTE_ERR_SNAP_EXIST_CLONE \u003d 16917163"},{"line_number":46,"context_line":"ZTE_SESSION_EXIST \u003d 1495"},{"line_number":47,"context_line":"ZTE_STATUS_OK \u003d 1"},{"line_number":48,"context_line":"ZTE_SIZE \u003d 1024"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"ZTE_VOLUME \u003d 0"},{"line_number":51,"context_line":"ZTE_SNAPSHOT \u003d 1"}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_c1c32956","line":48,"updated":"2016-06-10 12:50:23.000000000","message":"Please, use constants from oslo_utils","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"f071171a6b98404127c07d72037224abb2e4b920","unresolved":false,"context_lines":[{"line_number":45,"context_line":"ZTE_ERR_SNAP_EXIST_CLONE \u003d 16917163"},{"line_number":46,"context_line":"ZTE_SESSION_EXIST \u003d 1495"},{"line_number":47,"context_line":"ZTE_STATUS_OK \u003d 1"},{"line_number":48,"context_line":"ZTE_SIZE \u003d 1024"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"ZTE_VOLUME \u003d 0"},{"line_number":51,"context_line":"ZTE_SNAPSHOT \u003d 1"}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_d34471b8","line":48,"in_reply_to":"7aa08908_c1c32956","updated":"2016-06-12 07:02:50.000000000","message":"Done","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"84fedbb7f6301b36a8014fc558b02499aeaa0551","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"ZTE_VOLUME_ALLOCATION_RATIO \u003d 20"},{"line_number":54,"context_line":"ZTE_VOLUME_SNAPSHOT_PERCENT \u003d 50"},{"line_number":55,"context_line":"ZTE_DEFAULT_TIMEOUT \u003d 720"},{"line_number":56,"context_line":"ZTE_WAIT_DELCVOL \u003d 6"}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_a1953d41","line":55,"updated":"2016-06-10 12:50:23.000000000","message":"Should we make it configurable?","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"35197fc6c4cc74d3f8deccc3ebe0fc68ece26998","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"ZTE_VOLUME_ALLOCATION_RATIO \u003d 20"},{"line_number":54,"context_line":"ZTE_VOLUME_SNAPSHOT_PERCENT \u003d 50"},{"line_number":55,"context_line":"ZTE_DEFAULT_TIMEOUT \u003d 720"},{"line_number":56,"context_line":"ZTE_WAIT_DELCVOL \u003d 6"}],"source_content_type":"text/x-python","patch_set":20,"id":"7aa08908_b389e5cc","line":55,"in_reply_to":"7aa08908_a1953d41","updated":"2016-06-12 07:10:27.000000000","message":"At present, we don\u0027t want this  to be seen by the users.","commit_id":"3f178f7f74d0e8b63008fd4dede263e4df83a664"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bbc770ba88c9be606e6ab7d6d579cf902f2db3d4","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"ZTE_HOST_GROUP_NAME_PREFIX \u003d \u0027HostGroup_\u0027"},{"line_number":20,"context_line":"ZTE_VOL_AND_SNAP_NAME_PREFIX \u003d \u0027OpenStack_\u0027"},{"line_number":21,"context_line":"ZTE_VOL__NAME_PREFIX_NEW \u003d \u0027OpenCos_\u0027"},{"line_number":22,"context_line":"ZTE_CLONE_SUFFIX \u003d \u0027c\u0027"},{"line_number":23,"context_line":"ZTE_GROUP_MAX_LUN \u003d 255"},{"line_number":24,"context_line":"ZTE_SUCCESS \u003d 0"}],"source_content_type":"text/x-python","patch_set":30,"id":"3aaa91ec_b50e9038","line":21,"updated":"2016-07-05 01:58:36.000000000","message":"nit: any reason why you have double underscore between \"VOL\" and \"NAME\"?","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"724c08d09f7a446b098cf32641e58515a31ee5e4","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"ZTE_HOST_GROUP_NAME_PREFIX \u003d \u0027HostGroup_\u0027"},{"line_number":20,"context_line":"ZTE_VOL_AND_SNAP_NAME_PREFIX \u003d \u0027OpenStack_\u0027"},{"line_number":21,"context_line":"ZTE_VOL__NAME_PREFIX_NEW \u003d \u0027OpenCos_\u0027"},{"line_number":22,"context_line":"ZTE_CLONE_SUFFIX \u003d \u0027c\u0027"},{"line_number":23,"context_line":"ZTE_GROUP_MAX_LUN \u003d 255"},{"line_number":24,"context_line":"ZTE_SUCCESS \u003d 0"}],"source_content_type":"text/x-python","patch_set":30,"id":"1aa78d24_2f2adc2c","line":21,"in_reply_to":"3aaa91ec_b50e9038","updated":"2016-07-05 02:37:03.000000000","message":"It\u0027s a mistake. We will fix it.","commit_id":"2bb2c873401c5626fd5db77ac200e6ac290599ac"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"0cde217b15bcd52a2382fc095137f373de96842a","unresolved":false,"context_lines":[{"line_number":54,"context_line":"ZTE_VOLUME_ALLOCATION_RATIO \u003d 20"},{"line_number":55,"context_line":"ZTE_VOLUME_SNAPSHOT_PERCENT \u003d 50"},{"line_number":56,"context_line":"ZTE_DEFAULT_TIMEOUT \u003d 720"},{"line_number":57,"context_line":"ZTE_WAIT_DELCVOL \u003d 6"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_364bde5a","line":57,"updated":"2016-07-06 22:22:44.000000000","message":"what\u0027s the advantage of splitting these out into this file if they are only used by the driver itself?","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"},{"author":{"_account_id":18737,"name":"KongWei","email":"kong.wei2@zte.com.cn","username":"kongwei"},"change_message_id":"2f6f58a9e650d78e43a90caf2400fc750f476279","unresolved":false,"context_lines":[{"line_number":54,"context_line":"ZTE_VOLUME_ALLOCATION_RATIO \u003d 20"},{"line_number":55,"context_line":"ZTE_VOLUME_SNAPSHOT_PERCENT \u003d 50"},{"line_number":56,"context_line":"ZTE_DEFAULT_TIMEOUT \u003d 720"},{"line_number":57,"context_line":"ZTE_WAIT_DELCVOL \u003d 6"}],"source_content_type":"text/x-python","patch_set":31,"id":"1aa78d24_67c2d2ea","line":57,"in_reply_to":"1aa78d24_364bde5a","updated":"2016-07-07 00:38:06.000000000","message":"These value would be used by other zte cinder drivers. Such as \u0027FC Cinder Driver\u0027.","commit_id":"98d0e9849fb1e1bb5124eb41925d48a3918052c8"}]}
