)]}'
{"cinder/volume/drivers/ibm/storwize_svc/storwize_svc_common.py":[{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"320ec8341bbb1e4aaaf14184f863afa4539b05ba","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                    \u0027is stored. Example: \"pool2\"\u0027),"},{"line_number":129,"context_line":"    cfg.StrOpt(\u0027storwize_peer_pool\u0027,"},{"line_number":130,"context_line":"               default\u003dNone,"},{"line_number":131,"context_line":"               help\u003d\u0027Specifies the name of the peer pool for hyperswap volume \u0027"},{"line_number":132,"context_line":"                    \u0027the peer pool must be at the other site\u0027),"},{"line_number":133,"context_line":"    cfg.StrOpt(\u0027storwize_hyperswap_preferred_host_site\u0027,"},{"line_number":134,"context_line":"               default\u003dNone,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_c450970d","line":131,"range":{"start_line":131,"start_character":77,"end_line":131,"end_character":78},"updated":"2017-08-10 08:45:57.000000000","message":"need \u0027,\u0027?","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"8646f135c72952e277639e74fae0fb6237da8cf8","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                    \u0027is stored. Example: \"pool2\"\u0027),"},{"line_number":129,"context_line":"    cfg.StrOpt(\u0027storwize_peer_pool\u0027,"},{"line_number":130,"context_line":"               default\u003dNone,"},{"line_number":131,"context_line":"               help\u003d\u0027Specifies the name of the peer pool for hyperswap volume \u0027"},{"line_number":132,"context_line":"                    \u0027the peer pool must be at the other site\u0027),"},{"line_number":133,"context_line":"    cfg.StrOpt(\u0027storwize_hyperswap_preferred_host_site\u0027,"},{"line_number":134,"context_line":"               default\u003dNone,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_51032310","line":131,"range":{"start_line":131,"start_character":77,"end_line":131,"end_character":78},"in_reply_to":"9f436f4f_c450970d","updated":"2017-08-11 08:45:58.000000000","message":"Done","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"320ec8341bbb1e4aaaf14184f863afa4539b05ba","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                    \u0027the peer pool must be at the other site\u0027),"},{"line_number":133,"context_line":"    cfg.StrOpt(\u0027storwize_hyperswap_preferred_host_site\u0027,"},{"line_number":134,"context_line":"               default\u003dNone,"},{"line_number":135,"context_line":"               help\u003d\u0027Specifies the preferred hsot site for hyperswap host\u0027),"},{"line_number":136,"context_line":"    cfg.IntOpt(\u0027cycle_period_seconds\u0027,"},{"line_number":137,"context_line":"               default\u003d300,"},{"line_number":138,"context_line":"               min\u003d60, max\u003d86400,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_a457d302","line":135,"range":{"start_line":135,"start_character":45,"end_line":135,"end_character":49},"updated":"2017-08-10 08:45:57.000000000","message":"host?","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"8646f135c72952e277639e74fae0fb6237da8cf8","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                    \u0027the peer pool must be at the other site\u0027),"},{"line_number":133,"context_line":"    cfg.StrOpt(\u0027storwize_hyperswap_preferred_host_site\u0027,"},{"line_number":134,"context_line":"               default\u003dNone,"},{"line_number":135,"context_line":"               help\u003d\u0027Specifies the preferred hsot site for hyperswap host\u0027),"},{"line_number":136,"context_line":"    cfg.IntOpt(\u0027cycle_period_seconds\u0027,"},{"line_number":137,"context_line":"               default\u003d300,"},{"line_number":138,"context_line":"               min\u003d60, max\u003d86400,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_1500e600","line":135,"range":{"start_line":135,"start_character":45,"end_line":135,"end_character":49},"in_reply_to":"9f436f4f_a457d302","updated":"2017-08-11 08:45:58.000000000","message":"Done","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"320ec8341bbb1e4aaaf14184f863afa4539b05ba","unresolved":false,"context_lines":[{"line_number":689,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":690,"context_line":""},{"line_number":691,"context_line":"    def addvolumecopy(self, name, pool, params):"},{"line_number":692,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027addvolumecopy\u0027, \u0027-pool\u0027,"},{"line_number":693,"context_line":"                   \u0027\"%s\"\u0027 % pool] + params"},{"line_number":694,"context_line":"        ssh_cmd +\u003d [\u0027\"%s\"\u0027 % name]"},{"line_number":695,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":696,"context_line":""},{"line_number":697,"context_line":"    def rmvolumecopy(self, name, pool):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_e49b9bc6","line":694,"range":{"start_line":692,"start_character":8,"end_line":694,"end_character":34},"updated":"2017-08-10 08:45:57.000000000","message":"why not write them together?","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"8646f135c72952e277639e74fae0fb6237da8cf8","unresolved":false,"context_lines":[{"line_number":689,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":690,"context_line":""},{"line_number":691,"context_line":"    def addvolumecopy(self, name, pool, params):"},{"line_number":692,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027addvolumecopy\u0027, \u0027-pool\u0027,"},{"line_number":693,"context_line":"                   \u0027\"%s\"\u0027 % pool] + params"},{"line_number":694,"context_line":"        ssh_cmd +\u003d [\u0027\"%s\"\u0027 % name]"},{"line_number":695,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":696,"context_line":""},{"line_number":697,"context_line":"    def rmvolumecopy(self, name, pool):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_9513b65c","line":694,"range":{"start_line":692,"start_character":8,"end_line":694,"end_character":34},"in_reply_to":"9f436f4f_e49b9bc6","updated":"2017-08-11 08:45:58.000000000","message":"Thank you, Jiamin, I have fixed it in the new patch","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"320ec8341bbb1e4aaaf14184f863afa4539b05ba","unresolved":false,"context_lines":[{"line_number":695,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":696,"context_line":""},{"line_number":697,"context_line":"    def rmvolumecopy(self, name, pool):"},{"line_number":698,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027rmvolumecopy\u0027, \u0027-pool\u0027,"},{"line_number":699,"context_line":"                   \u0027\"%s\"\u0027 % pool]"},{"line_number":700,"context_line":"        ssh_cmd +\u003d [\u0027\"%s\"\u0027 % name]"},{"line_number":701,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":702,"context_line":""},{"line_number":703,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_84a84fdb","line":700,"range":{"start_line":698,"start_character":8,"end_line":700,"end_character":34},"updated":"2017-08-10 08:45:57.000000000","message":"same","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"8646f135c72952e277639e74fae0fb6237da8cf8","unresolved":false,"context_lines":[{"line_number":695,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":696,"context_line":""},{"line_number":697,"context_line":"    def rmvolumecopy(self, name, pool):"},{"line_number":698,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027rmvolumecopy\u0027, \u0027-pool\u0027,"},{"line_number":699,"context_line":"                   \u0027\"%s\"\u0027 % pool]"},{"line_number":700,"context_line":"        ssh_cmd +\u003d [\u0027\"%s\"\u0027 % name]"},{"line_number":701,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":702,"context_line":""},{"line_number":703,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_750e1233","line":700,"range":{"start_line":698,"start_character":8,"end_line":700,"end_character":34},"in_reply_to":"9f436f4f_84a84fdb","updated":"2017-08-11 08:45:58.000000000","message":"Done","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"320ec8341bbb1e4aaaf14184f863afa4539b05ba","unresolved":false,"context_lines":[{"line_number":1072,"context_line":""},{"line_number":1073,"context_line":"        # Create a host with one port"},{"line_number":1074,"context_line":"        port \u003d ports.pop(0)"},{"line_number":1075,"context_line":"        # there must have site info in for the hyperswap volume"},{"line_number":1076,"context_line":"        self.ssh.mkhost(host_name, port[0], port[1], site)"},{"line_number":1077,"context_line":""},{"line_number":1078,"context_line":"        # Add any additional ports to the host"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_449387a4","line":1075,"range":{"start_line":1075,"start_character":36,"end_line":1075,"end_character":38},"updated":"2017-08-10 08:45:57.000000000","message":"\u0027in\u0027 can be removed or not?","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"8646f135c72952e277639e74fae0fb6237da8cf8","unresolved":false,"context_lines":[{"line_number":1072,"context_line":""},{"line_number":1073,"context_line":"        # Create a host with one port"},{"line_number":1074,"context_line":"        port \u003d ports.pop(0)"},{"line_number":1075,"context_line":"        # there must have site info in for the hyperswap volume"},{"line_number":1076,"context_line":"        self.ssh.mkhost(host_name, port[0], port[1], site)"},{"line_number":1077,"context_line":""},{"line_number":1078,"context_line":"        # Add any additional ports to the host"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_35188a73","line":1075,"range":{"start_line":1075,"start_character":36,"end_line":1075,"end_character":38},"in_reply_to":"9f436f4f_449387a4","updated":"2017-08-11 08:45:58.000000000","message":"Done","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"320ec8341bbb1e4aaaf14184f863afa4539b05ba","unresolved":false,"context_lines":[{"line_number":1424,"context_line":"                params.append(\u0027-compressed\u0027)"},{"line_number":1425,"context_line":"            else:"},{"line_number":1426,"context_line":"                params.append(\u0027-thin\u0027)"},{"line_number":1427,"context_line":"                params.extend([\u0027-grainsize\u0027, str(opts[\u0027grainsize\u0027])])"},{"line_number":1428,"context_line":"                if \u0027%\u0027 in str(opts[\u0027warning\u0027]):"},{"line_number":1429,"context_line":"                    params.extend([\u0027-warning\u0027, str(opts[\u0027warning\u0027])])"},{"line_number":1430,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_c4d53745","line":1427,"range":{"start_line":1427,"start_character":45,"end_line":1427,"end_character":48},"updated":"2017-08-10 08:45:57.000000000","message":"six.text_types?","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"8646f135c72952e277639e74fae0fb6237da8cf8","unresolved":false,"context_lines":[{"line_number":1424,"context_line":"                params.append(\u0027-compressed\u0027)"},{"line_number":1425,"context_line":"            else:"},{"line_number":1426,"context_line":"                params.append(\u0027-thin\u0027)"},{"line_number":1427,"context_line":"                params.extend([\u0027-grainsize\u0027, str(opts[\u0027grainsize\u0027])])"},{"line_number":1428,"context_line":"                if \u0027%\u0027 in str(opts[\u0027warning\u0027]):"},{"line_number":1429,"context_line":"                    params.extend([\u0027-warning\u0027, str(opts[\u0027warning\u0027])])"},{"line_number":1430,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_753732e5","line":1427,"range":{"start_line":1427,"start_character":45,"end_line":1427,"end_character":48},"in_reply_to":"9f436f4f_c4d53745","updated":"2017-08-11 08:45:58.000000000","message":"Thank you , jiamin, I have fixed it in the new patch","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"320ec8341bbb1e4aaaf14184f863afa4539b05ba","unresolved":false,"context_lines":[{"line_number":1425,"context_line":"            else:"},{"line_number":1426,"context_line":"                params.append(\u0027-thin\u0027)"},{"line_number":1427,"context_line":"                params.extend([\u0027-grainsize\u0027, str(opts[\u0027grainsize\u0027])])"},{"line_number":1428,"context_line":"                if \u0027%\u0027 in str(opts[\u0027warning\u0027]):"},{"line_number":1429,"context_line":"                    params.extend([\u0027-warning\u0027, str(opts[\u0027warning\u0027])])"},{"line_number":1430,"context_line":"                else:"},{"line_number":1431,"context_line":"                    params.extend([\u0027-warning\u0027, \u0027%s%%\u0027 % str(opts[\u0027warning\u0027])])"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_e4d27b5c","line":1428,"range":{"start_line":1428,"start_character":26,"end_line":1428,"end_character":29},"updated":"2017-08-10 08:45:57.000000000","message":"same","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"8646f135c72952e277639e74fae0fb6237da8cf8","unresolved":false,"context_lines":[{"line_number":1425,"context_line":"            else:"},{"line_number":1426,"context_line":"                params.append(\u0027-thin\u0027)"},{"line_number":1427,"context_line":"                params.extend([\u0027-grainsize\u0027, str(opts[\u0027grainsize\u0027])])"},{"line_number":1428,"context_line":"                if \u0027%\u0027 in str(opts[\u0027warning\u0027]):"},{"line_number":1429,"context_line":"                    params.extend([\u0027-warning\u0027, str(opts[\u0027warning\u0027])])"},{"line_number":1430,"context_line":"                else:"},{"line_number":1431,"context_line":"                    params.extend([\u0027-warning\u0027, \u0027%s%%\u0027 % str(opts[\u0027warning\u0027])])"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_5bbb420d","line":1428,"range":{"start_line":1428,"start_character":26,"end_line":1428,"end_character":29},"in_reply_to":"9f436f4f_e4d27b5c","updated":"2017-08-11 08:45:58.000000000","message":"Done","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"320ec8341bbb1e4aaaf14184f863afa4539b05ba","unresolved":false,"context_lines":[{"line_number":1426,"context_line":"                params.append(\u0027-thin\u0027)"},{"line_number":1427,"context_line":"                params.extend([\u0027-grainsize\u0027, str(opts[\u0027grainsize\u0027])])"},{"line_number":1428,"context_line":"                if \u0027%\u0027 in str(opts[\u0027warning\u0027]):"},{"line_number":1429,"context_line":"                    params.extend([\u0027-warning\u0027, str(opts[\u0027warning\u0027])])"},{"line_number":1430,"context_line":"                else:"},{"line_number":1431,"context_line":"                    params.extend([\u0027-warning\u0027, \u0027%s%%\u0027 % str(opts[\u0027warning\u0027])])"},{"line_number":1432,"context_line":"        return params"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_84cf2faf","line":1429,"range":{"start_line":1429,"start_character":47,"end_line":1429,"end_character":50},"updated":"2017-08-10 08:45:57.000000000","message":"same","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"8646f135c72952e277639e74fae0fb6237da8cf8","unresolved":false,"context_lines":[{"line_number":1426,"context_line":"                params.append(\u0027-thin\u0027)"},{"line_number":1427,"context_line":"                params.extend([\u0027-grainsize\u0027, str(opts[\u0027grainsize\u0027])])"},{"line_number":1428,"context_line":"                if \u0027%\u0027 in str(opts[\u0027warning\u0027]):"},{"line_number":1429,"context_line":"                    params.extend([\u0027-warning\u0027, str(opts[\u0027warning\u0027])])"},{"line_number":1430,"context_line":"                else:"},{"line_number":1431,"context_line":"                    params.extend([\u0027-warning\u0027, \u0027%s%%\u0027 % str(opts[\u0027warning\u0027])])"},{"line_number":1432,"context_line":"        return params"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_3b387e9e","line":1429,"range":{"start_line":1429,"start_character":47,"end_line":1429,"end_character":50},"in_reply_to":"9f436f4f_84cf2faf","updated":"2017-08-11 08:45:58.000000000","message":"Done","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"320ec8341bbb1e4aaaf14184f863afa4539b05ba","unresolved":false,"context_lines":[{"line_number":1428,"context_line":"                if \u0027%\u0027 in str(opts[\u0027warning\u0027]):"},{"line_number":1429,"context_line":"                    params.extend([\u0027-warning\u0027, str(opts[\u0027warning\u0027])])"},{"line_number":1430,"context_line":"                else:"},{"line_number":1431,"context_line":"                    params.extend([\u0027-warning\u0027, \u0027%s%%\u0027 % str(opts[\u0027warning\u0027])])"},{"line_number":1432,"context_line":"        return params"},{"line_number":1433,"context_line":""},{"line_number":1434,"context_line":"    def create_hyperswap_volume(self, name, size, units, pool, opts, state):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_8444cf1c","line":1431,"range":{"start_line":1431,"start_character":48,"end_line":1431,"end_character":52},"updated":"2017-08-10 08:45:57.000000000","message":"a little weird, :)","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"320ec8341bbb1e4aaaf14184f863afa4539b05ba","unresolved":false,"context_lines":[{"line_number":1428,"context_line":"                if \u0027%\u0027 in str(opts[\u0027warning\u0027]):"},{"line_number":1429,"context_line":"                    params.extend([\u0027-warning\u0027, str(opts[\u0027warning\u0027])])"},{"line_number":1430,"context_line":"                else:"},{"line_number":1431,"context_line":"                    params.extend([\u0027-warning\u0027, \u0027%s%%\u0027 % str(opts[\u0027warning\u0027])])"},{"line_number":1432,"context_line":"        return params"},{"line_number":1433,"context_line":""},{"line_number":1434,"context_line":"    def create_hyperswap_volume(self, name, size, units, pool, opts, state):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_c43ad796","line":1431,"range":{"start_line":1431,"start_character":56,"end_line":1431,"end_character":59},"updated":"2017-08-10 08:45:57.000000000","message":"same","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"8646f135c72952e277639e74fae0fb6237da8cf8","unresolved":false,"context_lines":[{"line_number":1428,"context_line":"                if \u0027%\u0027 in str(opts[\u0027warning\u0027]):"},{"line_number":1429,"context_line":"                    params.extend([\u0027-warning\u0027, str(opts[\u0027warning\u0027])])"},{"line_number":1430,"context_line":"                else:"},{"line_number":1431,"context_line":"                    params.extend([\u0027-warning\u0027, \u0027%s%%\u0027 % str(opts[\u0027warning\u0027])])"},{"line_number":1432,"context_line":"        return params"},{"line_number":1433,"context_line":""},{"line_number":1434,"context_line":"    def create_hyperswap_volume(self, name, size, units, pool, opts, state):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_fb41d60c","line":1431,"range":{"start_line":1431,"start_character":56,"end_line":1431,"end_character":59},"in_reply_to":"9f436f4f_c43ad796","updated":"2017-08-11 08:45:58.000000000","message":"Done","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"320ec8341bbb1e4aaaf14184f863afa4539b05ba","unresolved":false,"context_lines":[{"line_number":1453,"context_line":"                self.ssh.mkvolume(name, size, units, pool, params)"},{"line_number":1454,"context_line":"            else:"},{"line_number":1455,"context_line":"                raise exception.InvalidInput("},{"line_number":1456,"context_line":"                    reason\u003d_(\u0027There is no peer pool for a hyperswap volume%s\u0027))"},{"line_number":1457,"context_line":"        LOG.debug(\u0027Leave: create_hyperswap_volume: volume %s.\u0027, name)"},{"line_number":1458,"context_line":""},{"line_number":1459,"context_line":"    def convert_volume_to_hyperswap(self, name, opts, state):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_c4f3f772","line":1456,"range":{"start_line":1456,"start_character":74,"end_line":1456,"end_character":75},"updated":"2017-08-10 08:45:57.000000000","message":"add blank.","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"8646f135c72952e277639e74fae0fb6237da8cf8","unresolved":false,"context_lines":[{"line_number":1453,"context_line":"                self.ssh.mkvolume(name, size, units, pool, params)"},{"line_number":1454,"context_line":"            else:"},{"line_number":1455,"context_line":"                raise exception.InvalidInput("},{"line_number":1456,"context_line":"                    reason\u003d_(\u0027There is no peer pool for a hyperswap volume%s\u0027))"},{"line_number":1457,"context_line":"        LOG.debug(\u0027Leave: create_hyperswap_volume: volume %s.\u0027, name)"},{"line_number":1458,"context_line":""},{"line_number":1459,"context_line":"    def convert_volume_to_hyperswap(self, name, opts, state):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_db44d21d","line":1456,"range":{"start_line":1456,"start_character":74,"end_line":1456,"end_character":75},"in_reply_to":"9f436f4f_c4f3f772","updated":"2017-08-11 08:45:58.000000000","message":"Done","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"320ec8341bbb1e4aaaf14184f863afa4539b05ba","unresolved":false,"context_lines":[{"line_number":2228,"context_line":"    def is_group_hyperswap_type(self, group):"},{"line_number":2229,"context_line":"        LOG.debug(\"Checking if %s is a hyperswap group\","},{"line_number":2230,"context_line":"                  group)"},{"line_number":2231,"context_line":"        if group[\"group_type_id\"] is not None:"},{"line_number":2232,"context_line":"            spec \u003d group_types.get_group_type_specs("},{"line_number":2233,"context_line":"                group[\"group_type_id\"],"},{"line_number":2234,"context_line":"                key\u003d\"hyperswap_group_enabled\""},{"line_number":2235,"context_line":"            )"},{"line_number":2236,"context_line":"            return spec \u003d\u003d \"\u003cis\u003e True\""},{"line_number":2237,"context_line":"        return False"},{"line_number":2238,"context_line":""},{"line_number":2239,"context_line":""},{"line_number":2240,"context_line":"class CLIResponse(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_a414734f","line":2237,"range":{"start_line":2231,"start_character":8,"end_line":2237,"end_character":20},"updated":"2017-08-10 08:45:57.000000000","message":"you can use utils.is_group_a_type directly.","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"8646f135c72952e277639e74fae0fb6237da8cf8","unresolved":false,"context_lines":[{"line_number":2228,"context_line":"    def is_group_hyperswap_type(self, group):"},{"line_number":2229,"context_line":"        LOG.debug(\"Checking if %s is a hyperswap group\","},{"line_number":2230,"context_line":"                  group)"},{"line_number":2231,"context_line":"        if group[\"group_type_id\"] is not None:"},{"line_number":2232,"context_line":"            spec \u003d group_types.get_group_type_specs("},{"line_number":2233,"context_line":"                group[\"group_type_id\"],"},{"line_number":2234,"context_line":"                key\u003d\"hyperswap_group_enabled\""},{"line_number":2235,"context_line":"            )"},{"line_number":2236,"context_line":"            return spec \u003d\u003d \"\u003cis\u003e True\""},{"line_number":2237,"context_line":"        return False"},{"line_number":2238,"context_line":""},{"line_number":2239,"context_line":""},{"line_number":2240,"context_line":"class CLIResponse(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_5b50e2d4","line":2237,"range":{"start_line":2231,"start_character":8,"end_line":2237,"end_character":20},"in_reply_to":"9f436f4f_a414734f","updated":"2017-08-11 08:45:58.000000000","message":"Thank you, Jiamin, I have removed the function and use utils.is_group_a_type directly","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"320ec8341bbb1e4aaaf14184f863afa4539b05ba","unresolved":false,"context_lines":[{"line_number":2696,"context_line":"                reason \u003d _(\u0027Create hyperswap volume with streched cluster or \u0027"},{"line_number":2697,"context_line":"                           \u0027replication enabled is not supported.\u0027)"},{"line_number":2698,"context_line":"                raise exception.InvalidInput(reason\u003dreason)"},{"line_number":2699,"context_line":"            self._helpers.create_hyperswap_volume(volume[\u0027name\u0027],"},{"line_number":2700,"context_line":"                                                  str(volume[\u0027size\u0027]),"},{"line_number":2701,"context_line":"                                                  \u0027gb\u0027, pool, opts,"},{"line_number":2702,"context_line":"                                                  self._state)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_9f09b62d","line":2699,"range":{"start_line":2699,"start_character":50,"end_line":2699,"end_character":64},"updated":"2017-08-10 08:45:57.000000000","message":"volume.name","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"8646f135c72952e277639e74fae0fb6237da8cf8","unresolved":false,"context_lines":[{"line_number":2696,"context_line":"                reason \u003d _(\u0027Create hyperswap volume with streched cluster or \u0027"},{"line_number":2697,"context_line":"                           \u0027replication enabled is not supported.\u0027)"},{"line_number":2698,"context_line":"                raise exception.InvalidInput(reason\u003dreason)"},{"line_number":2699,"context_line":"            self._helpers.create_hyperswap_volume(volume[\u0027name\u0027],"},{"line_number":2700,"context_line":"                                                  str(volume[\u0027size\u0027]),"},{"line_number":2701,"context_line":"                                                  \u0027gb\u0027, pool, opts,"},{"line_number":2702,"context_line":"                                                  self._state)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_db5df2e9","line":2699,"range":{"start_line":2699,"start_character":50,"end_line":2699,"end_character":64},"in_reply_to":"9f436f4f_9f09b62d","updated":"2017-08-11 08:45:58.000000000","message":"Done","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"320ec8341bbb1e4aaaf14184f863afa4539b05ba","unresolved":false,"context_lines":[{"line_number":2697,"context_line":"                           \u0027replication enabled is not supported.\u0027)"},{"line_number":2698,"context_line":"                raise exception.InvalidInput(reason\u003dreason)"},{"line_number":2699,"context_line":"            self._helpers.create_hyperswap_volume(volume[\u0027name\u0027],"},{"line_number":2700,"context_line":"                                                  str(volume[\u0027size\u0027]),"},{"line_number":2701,"context_line":"                                                  \u0027gb\u0027, pool, opts,"},{"line_number":2702,"context_line":"                                                  self._state)"},{"line_number":2703,"context_line":"            if volume[\u0027group_id\u0027]:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_dfff3eff","line":2700,"range":{"start_line":2700,"start_character":50,"end_line":2700,"end_character":53},"updated":"2017-08-10 08:45:57.000000000","message":"same","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"320ec8341bbb1e4aaaf14184f863afa4539b05ba","unresolved":false,"context_lines":[{"line_number":2697,"context_line":"                           \u0027replication enabled is not supported.\u0027)"},{"line_number":2698,"context_line":"                raise exception.InvalidInput(reason\u003dreason)"},{"line_number":2699,"context_line":"            self._helpers.create_hyperswap_volume(volume[\u0027name\u0027],"},{"line_number":2700,"context_line":"                                                  str(volume[\u0027size\u0027]),"},{"line_number":2701,"context_line":"                                                  \u0027gb\u0027, pool, opts,"},{"line_number":2702,"context_line":"                                                  self._state)"},{"line_number":2703,"context_line":"            if volume[\u0027group_id\u0027]:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_7f0cd23a","line":2700,"range":{"start_line":2700,"start_character":54,"end_line":2700,"end_character":68},"updated":"2017-08-10 08:45:57.000000000","message":"volume.size","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"8646f135c72952e277639e74fae0fb6237da8cf8","unresolved":false,"context_lines":[{"line_number":2697,"context_line":"                           \u0027replication enabled is not supported.\u0027)"},{"line_number":2698,"context_line":"                raise exception.InvalidInput(reason\u003dreason)"},{"line_number":2699,"context_line":"            self._helpers.create_hyperswap_volume(volume[\u0027name\u0027],"},{"line_number":2700,"context_line":"                                                  str(volume[\u0027size\u0027]),"},{"line_number":2701,"context_line":"                                                  \u0027gb\u0027, pool, opts,"},{"line_number":2702,"context_line":"                                                  self._state)"},{"line_number":2703,"context_line":"            if volume[\u0027group_id\u0027]:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_bb746e69","line":2700,"range":{"start_line":2700,"start_character":50,"end_line":2700,"end_character":53},"in_reply_to":"9f436f4f_dfff3eff","updated":"2017-08-11 08:45:58.000000000","message":"Done","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"320ec8341bbb1e4aaaf14184f863afa4539b05ba","unresolved":false,"context_lines":[{"line_number":3638,"context_line":"                LOG.error(msg)"},{"line_number":3639,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3640,"context_line":"            if new_rep_type or old_rep_type:"},{"line_number":3641,"context_line":"                msg \u003d (_(\u0027Unable to retype: it is not allowed to retype \u0027"},{"line_number":3642,"context_line":"                         \u0027between replication volume and hyperswap volume\u0027))"},{"line_number":3643,"context_line":"                LOG.error(msg)"},{"line_number":3644,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3645,"context_line":"            if new_opts[\u0027peer_topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_3f3c0abe","line":3642,"range":{"start_line":3641,"start_character":22,"end_line":3642,"end_character":76},"updated":"2017-08-10 08:45:57.000000000","message":"you can remove ()","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"8646f135c72952e277639e74fae0fb6237da8cf8","unresolved":false,"context_lines":[{"line_number":3638,"context_line":"                LOG.error(msg)"},{"line_number":3639,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3640,"context_line":"            if new_rep_type or old_rep_type:"},{"line_number":3641,"context_line":"                msg \u003d (_(\u0027Unable to retype: it is not allowed to retype \u0027"},{"line_number":3642,"context_line":"                         \u0027between replication volume and hyperswap volume\u0027))"},{"line_number":3643,"context_line":"                LOG.error(msg)"},{"line_number":3644,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3645,"context_line":"            if new_opts[\u0027peer_topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_db129209","line":3642,"range":{"start_line":3641,"start_character":22,"end_line":3642,"end_character":76},"in_reply_to":"9f436f4f_3f3c0abe","updated":"2017-08-11 08:45:58.000000000","message":"Done","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"320ec8341bbb1e4aaaf14184f863afa4539b05ba","unresolved":false,"context_lines":[{"line_number":3644,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3645,"context_line":"            if new_opts[\u0027peer_topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"},{"line_number":3646,"context_line":"                if old_opts[\u0027peer_topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"},{"line_number":3647,"context_line":"                    msg \u003d (_(\u0027Unable to retype: it is not allowed to change a\u0027"},{"line_number":3648,"context_line":"                             \u0027hyperswap volume to another hyperswap volume\u0027))"},{"line_number":3649,"context_line":"                    LOG.error(msg)"},{"line_number":3650,"context_line":"                    raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3651,"context_line":"                if self._helpers.is_system_topology_hyperswap and new_opts["}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_df761ea5","line":3648,"range":{"start_line":3647,"start_character":26,"end_line":3648,"end_character":77},"updated":"2017-08-10 08:45:57.000000000","message":"same","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"8646f135c72952e277639e74fae0fb6237da8cf8","unresolved":false,"context_lines":[{"line_number":3644,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3645,"context_line":"            if new_opts[\u0027peer_topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"},{"line_number":3646,"context_line":"                if old_opts[\u0027peer_topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"},{"line_number":3647,"context_line":"                    msg \u003d (_(\u0027Unable to retype: it is not allowed to change a\u0027"},{"line_number":3648,"context_line":"                             \u0027hyperswap volume to another hyperswap volume\u0027))"},{"line_number":3649,"context_line":"                    LOG.error(msg)"},{"line_number":3650,"context_line":"                    raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3651,"context_line":"                if self._helpers.is_system_topology_hyperswap and new_opts["}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_9bf40ad1","line":3648,"range":{"start_line":3647,"start_character":26,"end_line":3648,"end_character":77},"in_reply_to":"9f436f4f_df761ea5","updated":"2017-08-11 08:45:58.000000000","message":"Done","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"320ec8341bbb1e4aaaf14184f863afa4539b05ba","unresolved":false,"context_lines":[{"line_number":3950,"context_line":"                                          volume.get(\u0027volume_metadata\u0027))"},{"line_number":3951,"context_line":"            hyper_volume \u003d self._helpers.is_volume_hyperswap(vdisk[\u0027name\u0027])"},{"line_number":3952,"context_line":"            if opts[\u0027peer_topology\u0027] \u003d\u003d \u0027hyperswap\u0027 and not hyper_volume:"},{"line_number":3953,"context_line":"                msg \u003d (_(\"Failed to manage existing volume, the volume to \""},{"line_number":3954,"context_line":"                         \"be managed is not a hyperswap volume, \""},{"line_number":3955,"context_line":"                         \"mismatch with the provided hyperswap type.\"))"},{"line_number":3956,"context_line":"                raise exception.ManageExistingVolumeTypeMismatch(reason\u003dmsg)"},{"line_number":3957,"context_line":"            if hyper_volume and opts[\u0027peer_topology\u0027] !\u003d \u0027hyperswap\u0027:"},{"line_number":3958,"context_line":"                msg \u003d (_(\"Failed to manage existing volume due to \""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_df84de60","line":3955,"range":{"start_line":3953,"start_character":22,"end_line":3955,"end_character":71},"updated":"2017-08-10 08:45:57.000000000","message":"same","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"8646f135c72952e277639e74fae0fb6237da8cf8","unresolved":false,"context_lines":[{"line_number":3950,"context_line":"                                          volume.get(\u0027volume_metadata\u0027))"},{"line_number":3951,"context_line":"            hyper_volume \u003d self._helpers.is_volume_hyperswap(vdisk[\u0027name\u0027])"},{"line_number":3952,"context_line":"            if opts[\u0027peer_topology\u0027] \u003d\u003d \u0027hyperswap\u0027 and not hyper_volume:"},{"line_number":3953,"context_line":"                msg \u003d (_(\"Failed to manage existing volume, the volume to \""},{"line_number":3954,"context_line":"                         \"be managed is not a hyperswap volume, \""},{"line_number":3955,"context_line":"                         \"mismatch with the provided hyperswap type.\"))"},{"line_number":3956,"context_line":"                raise exception.ManageExistingVolumeTypeMismatch(reason\u003dmsg)"},{"line_number":3957,"context_line":"            if hyper_volume and opts[\u0027peer_topology\u0027] !\u003d \u0027hyperswap\u0027:"},{"line_number":3958,"context_line":"                msg \u003d (_(\"Failed to manage existing volume due to \""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_1b325aa8","line":3955,"range":{"start_line":3953,"start_character":22,"end_line":3955,"end_character":71},"in_reply_to":"9f436f4f_df84de60","updated":"2017-08-11 08:45:58.000000000","message":"Done","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"320ec8341bbb1e4aaaf14184f863afa4539b05ba","unresolved":false,"context_lines":[{"line_number":3955,"context_line":"                         \"mismatch with the provided hyperswap type.\"))"},{"line_number":3956,"context_line":"                raise exception.ManageExistingVolumeTypeMismatch(reason\u003dmsg)"},{"line_number":3957,"context_line":"            if hyper_volume and opts[\u0027peer_topology\u0027] !\u003d \u0027hyperswap\u0027:"},{"line_number":3958,"context_line":"                msg \u003d (_(\"Failed to manage existing volume due to \""},{"line_number":3959,"context_line":"                         \"the hyperswap volume to be managed is \""},{"line_number":3960,"context_line":"                         \"mismatch with the provided non-hyperswap type.\"))"},{"line_number":3961,"context_line":"                raise exception.ManageExistingVolumeTypeMismatch(reason\u003dmsg)"},{"line_number":3962,"context_line":"            resp \u003d self._helpers.lsvdiskcopy(vdisk[\u0027name\u0027])"},{"line_number":3963,"context_line":"            expected_copy_num \u003d 2 if opts[\u0027mirror_pool\u0027] else 1"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_bf87da61","line":3960,"range":{"start_line":3958,"start_character":22,"end_line":3960,"end_character":75},"updated":"2017-08-10 08:45:57.000000000","message":"same","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"8646f135c72952e277639e74fae0fb6237da8cf8","unresolved":false,"context_lines":[{"line_number":3955,"context_line":"                         \"mismatch with the provided hyperswap type.\"))"},{"line_number":3956,"context_line":"                raise exception.ManageExistingVolumeTypeMismatch(reason\u003dmsg)"},{"line_number":3957,"context_line":"            if hyper_volume and opts[\u0027peer_topology\u0027] !\u003d \u0027hyperswap\u0027:"},{"line_number":3958,"context_line":"                msg \u003d (_(\"Failed to manage existing volume due to \""},{"line_number":3959,"context_line":"                         \"the hyperswap volume to be managed is \""},{"line_number":3960,"context_line":"                         \"mismatch with the provided non-hyperswap type.\"))"},{"line_number":3961,"context_line":"                raise exception.ManageExistingVolumeTypeMismatch(reason\u003dmsg)"},{"line_number":3962,"context_line":"            resp \u003d self._helpers.lsvdiskcopy(vdisk[\u0027name\u0027])"},{"line_number":3963,"context_line":"            expected_copy_num \u003d 2 if opts[\u0027mirror_pool\u0027] else 1"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_fb28b634","line":3960,"range":{"start_line":3958,"start_character":22,"end_line":3960,"end_character":75},"in_reply_to":"9f436f4f_bf87da61","updated":"2017-08-11 08:45:58.000000000","message":"Done","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"d4662073796239f0f7f98708d7674e4c61f8ffa8","unresolved":false,"context_lines":[{"line_number":4107,"context_line":"                    LOG.error(\u0027Unable to create group: create group with \u0027"},{"line_number":4108,"context_line":"                              \u0027replication volume type is not supported.\u0027)"},{"line_number":4109,"context_line":"                    model_update \u003d {\u0027status\u0027: fields.GroupStatus.ERROR}"},{"line_number":4110,"context_line":"            return model_update"},{"line_number":4111,"context_line":""},{"line_number":4112,"context_line":"        elif self._helpers.is_group_hyperswap_type(group):"},{"line_number":4113,"context_line":"            if not self._helpers.is_system_topology_hyperswap(self._state):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_b91c956a","line":4110,"range":{"start_line":4110,"start_character":12,"end_line":4110,"end_character":31},"updated":"2017-08-10 10:54:34.000000000","message":"it may be better to add \u0027break\u0027 in the if branch if you change the identation.","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"8646f135c72952e277639e74fae0fb6237da8cf8","unresolved":false,"context_lines":[{"line_number":4107,"context_line":"                    LOG.error(\u0027Unable to create group: create group with \u0027"},{"line_number":4108,"context_line":"                              \u0027replication volume type is not supported.\u0027)"},{"line_number":4109,"context_line":"                    model_update \u003d {\u0027status\u0027: fields.GroupStatus.ERROR}"},{"line_number":4110,"context_line":"            return model_update"},{"line_number":4111,"context_line":""},{"line_number":4112,"context_line":"        elif self._helpers.is_group_hyperswap_type(group):"},{"line_number":4113,"context_line":"            if not self._helpers.is_system_topology_hyperswap(self._state):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_d557fe01","line":4110,"range":{"start_line":4110,"start_character":12,"end_line":4110,"end_character":31},"in_reply_to":"9f436f4f_b91c956a","updated":"2017-08-11 08:45:58.000000000","message":"Thank you, Jiamin, I have add a  break here","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"d4662073796239f0f7f98708d7674e4c61f8ffa8","unresolved":false,"context_lines":[{"line_number":4127,"context_line":"                              \u0027 type is not supported.\u0027)"},{"line_number":4128,"context_line":"                    model_update \u003d {\u0027status\u0027: fields.GroupStatus.ERROR}"},{"line_number":4129,"context_line":"                    return model_update"},{"line_number":4130,"context_line":"            if \u0027name\u0027 in group:"},{"line_number":4131,"context_line":"                rccg_name \u003d group.name"},{"line_number":4132,"context_line":"            else:"},{"line_number":4133,"context_line":"                rccg_name \u003d \u0027hypergroup\u0027 + group.id"},{"line_number":4134,"context_line":"            try:"},{"line_number":4135,"context_line":"                self._helpers.create_rccg("},{"line_number":4136,"context_line":"                    rccg_name, self._state[\u0027system_name\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_b57c9beb","line":4133,"range":{"start_line":4130,"start_character":12,"end_line":4133,"end_character":51},"updated":"2017-08-10 10:54:34.000000000","message":"you can change \"if \u0027name\u0027 in group\" to \"if group.name\", or rewrite it as below.\n\nrccg_name \u003d group.name if group.name else \u0027hypergroup\u0027 + group.id.","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"8646f135c72952e277639e74fae0fb6237da8cf8","unresolved":false,"context_lines":[{"line_number":4127,"context_line":"                              \u0027 type is not supported.\u0027)"},{"line_number":4128,"context_line":"                    model_update \u003d {\u0027status\u0027: fields.GroupStatus.ERROR}"},{"line_number":4129,"context_line":"                    return model_update"},{"line_number":4130,"context_line":"            if \u0027name\u0027 in group:"},{"line_number":4131,"context_line":"                rccg_name \u003d group.name"},{"line_number":4132,"context_line":"            else:"},{"line_number":4133,"context_line":"                rccg_name \u003d \u0027hypergroup\u0027 + group.id"},{"line_number":4134,"context_line":"            try:"},{"line_number":4135,"context_line":"                self._helpers.create_rccg("},{"line_number":4136,"context_line":"                    rccg_name, self._state[\u0027system_name\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_dbb972e9","line":4133,"range":{"start_line":4130,"start_character":12,"end_line":4133,"end_character":51},"in_reply_to":"9f436f4f_b57c9beb","updated":"2017-08-11 08:45:58.000000000","message":"Thank you Jiamin,Since storewize can\u0027t create two cg group with the same group name, so I set the rccg_name \u003d \u0027hyperswap\u0027 + group.id directly.","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"d4662073796239f0f7f98708d7674e4c61f8ffa8","unresolved":false,"context_lines":[{"line_number":4442,"context_line":"            model_update \u003d {\u0027status\u0027: fields.GroupStatus.ERROR_DELETING}"},{"line_number":4443,"context_line":""},{"line_number":4444,"context_line":"        for volume in volumes:"},{"line_number":4445,"context_line":"            hyper_volume \u003d self._helpers.is_volume_hyperswap(volume.name)"},{"line_number":4446,"context_line":"            if not hyper_volume:"},{"line_number":4447,"context_line":"                LOG.error(\"Failed to delete rccg: the non hyperswap volume \""},{"line_number":4448,"context_line":"                          \" of %(vol)s in the hyperswap group.\","},{"line_number":4449,"context_line":"                          {\u0027vol\u0027: volume.id})"},{"line_number":4450,"context_line":"                volumes_model_update.append("},{"line_number":4451,"context_line":"                    {\u0027id\u0027: volume.id,"},{"line_number":4452,"context_line":"                     \u0027status\u0027: fields.GroupStatus.ERROR_DELETING})"},{"line_number":4453,"context_line":"            try:"},{"line_number":4454,"context_line":"                self._helpers.delete_hyperswap_volume(volume.name, False)"},{"line_number":4455,"context_line":"                volumes_model_update.append("}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_95eab772","line":4452,"range":{"start_line":4445,"start_character":12,"end_line":4452,"end_character":66},"updated":"2017-08-10 10:54:34.000000000","message":"a non hyperswap volume can not be updated/created into hyperswap group, so delete a hyperswap still need to verify the volume is a hyperswap volume or not?","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"8646f135c72952e277639e74fae0fb6237da8cf8","unresolved":false,"context_lines":[{"line_number":4442,"context_line":"            model_update \u003d {\u0027status\u0027: fields.GroupStatus.ERROR_DELETING}"},{"line_number":4443,"context_line":""},{"line_number":4444,"context_line":"        for volume in volumes:"},{"line_number":4445,"context_line":"            hyper_volume \u003d self._helpers.is_volume_hyperswap(volume.name)"},{"line_number":4446,"context_line":"            if not hyper_volume:"},{"line_number":4447,"context_line":"                LOG.error(\"Failed to delete rccg: the non hyperswap volume \""},{"line_number":4448,"context_line":"                          \" of %(vol)s in the hyperswap group.\","},{"line_number":4449,"context_line":"                          {\u0027vol\u0027: volume.id})"},{"line_number":4450,"context_line":"                volumes_model_update.append("},{"line_number":4451,"context_line":"                    {\u0027id\u0027: volume.id,"},{"line_number":4452,"context_line":"                     \u0027status\u0027: fields.GroupStatus.ERROR_DELETING})"},{"line_number":4453,"context_line":"            try:"},{"line_number":4454,"context_line":"                self._helpers.delete_hyperswap_volume(volume.name, False)"},{"line_number":4455,"context_line":"                volumes_model_update.append("}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_7bca866d","line":4452,"range":{"start_line":4445,"start_character":12,"end_line":4452,"end_character":66},"in_reply_to":"9f436f4f_95eab772","updated":"2017-08-11 08:45:58.000000000","message":"Thank you, Jiamin, I have removed them.","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"d4662073796239f0f7f98708d7674e4c61f8ffa8","unresolved":false,"context_lines":[{"line_number":4462,"context_line":"                          {\u0027vol\u0027: volume.name, \u0027exception\u0027: err})"},{"line_number":4463,"context_line":"                volumes_model_update.append("},{"line_number":4464,"context_line":"                    {\u0027id\u0027: volume.id,"},{"line_number":4465,"context_line":"                     \u0027status\u0027: fields.GroupStatus.ERROR_DELETING})"},{"line_number":4466,"context_line":"        return model_update, volumes_model_update"},{"line_number":4467,"context_line":""},{"line_number":4468,"context_line":"    def update_hyperswap_group(self, context, group,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_35ff8b35","line":4465,"range":{"start_line":4465,"start_character":31,"end_line":4465,"end_character":64},"updated":"2017-08-10 10:54:34.000000000","message":"it is better not user group status for volume. they are different objects.","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"8646f135c72952e277639e74fae0fb6237da8cf8","unresolved":false,"context_lines":[{"line_number":4462,"context_line":"                          {\u0027vol\u0027: volume.name, \u0027exception\u0027: err})"},{"line_number":4463,"context_line":"                volumes_model_update.append("},{"line_number":4464,"context_line":"                    {\u0027id\u0027: volume.id,"},{"line_number":4465,"context_line":"                     \u0027status\u0027: fields.GroupStatus.ERROR_DELETING})"},{"line_number":4466,"context_line":"        return model_update, volumes_model_update"},{"line_number":4467,"context_line":""},{"line_number":4468,"context_line":"    def update_hyperswap_group(self, context, group,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_1ba5bab5","line":4465,"range":{"start_line":4465,"start_character":31,"end_line":4465,"end_character":64},"in_reply_to":"9f436f4f_35ff8b35","updated":"2017-08-11 08:45:58.000000000","message":"Thank you, Jiamin, I have fixed it in the new patch","commit_id":"c77c3b5a65faa69f9a14b5386976f09f3885cab3"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"1da327217e70d6ebcc7b4c31604398121f7920f9","unresolved":false,"context_lines":[{"line_number":1443,"context_line":"                if pool \u003d\u003d opts[\u0027peer_pool\u0027]:"},{"line_number":1444,"context_line":"                    raise exception.InvalidInput("},{"line_number":1445,"context_line":"                        reason\u003d_(\u0027The hyperswap volume must in two \u0027"},{"line_number":1446,"context_line":"                                 \u0027independent site, the pool %(pool)s is the \u0027"},{"line_number":1447,"context_line":"                                 \u0027same as peer_pool %(peer_pool)s \u0027) %"},{"line_number":1448,"context_line":"                        {\u0027pool\u0027: pool, \u0027peer_pool\u0027: opts[\u0027peer_pool\u0027]})"},{"line_number":1449,"context_line":"                pool \u003d \u0027%s:%s\u0027 % (pool, opts[\u0027peer_pool\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f436f4f_35110655","line":1446,"range":{"start_line":1446,"start_character":46,"end_line":1446,"end_character":50},"updated":"2017-08-18 03:53:15.000000000","message":"sites?","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"f819d055e5b6575a458a20a1d7958f301de1c077","unresolved":false,"context_lines":[{"line_number":1443,"context_line":"                if pool \u003d\u003d opts[\u0027peer_pool\u0027]:"},{"line_number":1444,"context_line":"                    raise exception.InvalidInput("},{"line_number":1445,"context_line":"                        reason\u003d_(\u0027The hyperswap volume must in two \u0027"},{"line_number":1446,"context_line":"                                 \u0027independent site, the pool %(pool)s is the \u0027"},{"line_number":1447,"context_line":"                                 \u0027same as peer_pool %(peer_pool)s \u0027) %"},{"line_number":1448,"context_line":"                        {\u0027pool\u0027: pool, \u0027peer_pool\u0027: opts[\u0027peer_pool\u0027]})"},{"line_number":1449,"context_line":"                pool \u003d \u0027%s:%s\u0027 % (pool, opts[\u0027peer_pool\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_4e889370","line":1446,"range":{"start_line":1446,"start_character":46,"end_line":1446,"end_character":50},"in_reply_to":"9f436f4f_35110655","updated":"2017-08-22 08:20:05.000000000","message":"Done","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":22583,"name":"Cheng Yong Zhao","email":"zhaochy@cn.ibm.com","username":"zhaochy"},"change_message_id":"b2bd9c6f7ef89af4d874b71053fba79742ba70fa","unresolved":false,"context_lines":[{"line_number":1470,"context_line":"            else:"},{"line_number":1471,"context_line":"                raise exception.InvalidInput("},{"line_number":1472,"context_line":"                    reason\u003d_(\u0027There is no peer pool \u0027"},{"line_number":1473,"context_line":"                             \u0027for a hyperswap volume%s \u0027))"},{"line_number":1474,"context_line":"        LOG.debug(\u0027Leave: convert_volume_to_hyperswap: volume %s.\u0027, name)"},{"line_number":1475,"context_line":""},{"line_number":1476,"context_line":"    def convert_hyperswap_volume_to_normal(self, name, opts):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f436f4f_292e05fa","line":1473,"updated":"2017-08-22 05:13:08.000000000","message":"missing % name here?","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"f819d055e5b6575a458a20a1d7958f301de1c077","unresolved":false,"context_lines":[{"line_number":1470,"context_line":"            else:"},{"line_number":1471,"context_line":"                raise exception.InvalidInput("},{"line_number":1472,"context_line":"                    reason\u003d_(\u0027There is no peer pool \u0027"},{"line_number":1473,"context_line":"                             \u0027for a hyperswap volume%s \u0027))"},{"line_number":1474,"context_line":"        LOG.debug(\u0027Leave: convert_volume_to_hyperswap: volume %s.\u0027, name)"},{"line_number":1475,"context_line":""},{"line_number":1476,"context_line":"    def convert_hyperswap_volume_to_normal(self, name, opts):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_6ee8ef15","line":1473,"in_reply_to":"9f436f4f_292e05fa","updated":"2017-08-22 08:20:05.000000000","message":"Thank you Chengyong, I have fixed it.","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":22583,"name":"Cheng Yong Zhao","email":"zhaochy@cn.ibm.com","username":"zhaochy"},"change_message_id":"b2bd9c6f7ef89af4d874b71053fba79742ba70fa","unresolved":false,"context_lines":[{"line_number":1478,"context_line":"        LOG.debug(\u0027Enter: convert_hyperswap_volume_to_normal %s.\u0027, name)"},{"line_number":1479,"context_line":"        peer_pool \u003d \u0027%s\u0027 % opts[\u0027peer_pool\u0027]"},{"line_number":1480,"context_line":"        self.ssh.rmvolumecopy(name, peer_pool)"},{"line_number":1481,"context_line":""},{"line_number":1482,"context_line":"    def delete_hyperswap_volume(self, volume, removehostmappings):"},{"line_number":1483,"context_line":"        \"\"\"Ensures that vdisk is not part of FC mapping and deletes it.\"\"\""},{"line_number":1484,"context_line":"        LOG.debug(\u0027Enter: delete_hyperswap_volume: volume %s.\u0027, volume)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f436f4f_c9277912","line":1481,"updated":"2017-08-22 05:13:08.000000000","message":"better to have leave debug log here","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"f819d055e5b6575a458a20a1d7958f301de1c077","unresolved":false,"context_lines":[{"line_number":1478,"context_line":"        LOG.debug(\u0027Enter: convert_hyperswap_volume_to_normal %s.\u0027, name)"},{"line_number":1479,"context_line":"        peer_pool \u003d \u0027%s\u0027 % opts[\u0027peer_pool\u0027]"},{"line_number":1480,"context_line":"        self.ssh.rmvolumecopy(name, peer_pool)"},{"line_number":1481,"context_line":""},{"line_number":1482,"context_line":"    def delete_hyperswap_volume(self, volume, removehostmappings):"},{"line_number":1483,"context_line":"        \"\"\"Ensures that vdisk is not part of FC mapping and deletes it.\"\"\""},{"line_number":1484,"context_line":"        LOG.debug(\u0027Enter: delete_hyperswap_volume: volume %s.\u0027, volume)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_aee5b73a","line":1481,"in_reply_to":"9f436f4f_c9277912","updated":"2017-08-22 08:20:05.000000000","message":"Done","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"1da327217e70d6ebcc7b4c31604398121f7920f9","unresolved":false,"context_lines":[{"line_number":2209,"context_line":"            if state[\u0027topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"},{"line_number":2210,"context_line":"                return True"},{"line_number":2211,"context_line":"            else:"},{"line_number":2212,"context_line":"                msg \u003d (_(\u0027The system topology is not hyperswap\u0027))"},{"line_number":2213,"context_line":"                LOG.error(msg)"},{"line_number":2214,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":2215,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f436f4f_f5481e5d","line":2212,"range":{"start_line":2212,"start_character":22,"end_line":2212,"end_character":23},"updated":"2017-08-18 03:53:15.000000000","message":"remove this ()","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"f819d055e5b6575a458a20a1d7958f301de1c077","unresolved":false,"context_lines":[{"line_number":2209,"context_line":"            if state[\u0027topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"},{"line_number":2210,"context_line":"                return True"},{"line_number":2211,"context_line":"            else:"},{"line_number":2212,"context_line":"                msg \u003d (_(\u0027The system topology is not hyperswap\u0027))"},{"line_number":2213,"context_line":"                LOG.error(msg)"},{"line_number":2214,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":2215,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_4ed65352","line":2212,"range":{"start_line":2212,"start_character":22,"end_line":2212,"end_character":23},"in_reply_to":"9f436f4f_f5481e5d","updated":"2017-08-22 08:20:05.000000000","message":"Done","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":22583,"name":"Cheng Yong Zhao","email":"zhaochy@cn.ibm.com","username":"zhaochy"},"change_message_id":"b2bd9c6f7ef89af4d874b71053fba79742ba70fa","unresolved":false,"context_lines":[{"line_number":2691,"context_line":"            if volume[\u0027group_id\u0027]:"},{"line_number":2692,"context_line":"                group \u003d self.db.group_get(ctxt, volume[\u0027group_id\u0027])"},{"line_number":2693,"context_line":"                rccg_name \u003d \u0027hypergroup\u0027 + group.id"},{"line_number":2694,"context_line":"                if utils.is_group_a_type(group, \"hyperswap_group_enabled\") \\"},{"line_number":2695,"context_line":"                        and self._helpers.get_rccg(rccg_name):"},{"line_number":2696,"context_line":"                    self.update_hyperswap_group(ctxt, group, [volume], [])"},{"line_number":2697,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f436f4f_694acdac","line":2694,"range":{"start_line":2694,"start_character":75,"end_line":2694,"end_character":76},"updated":"2017-08-22 05:13:08.000000000","message":"replace \\","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"f819d055e5b6575a458a20a1d7958f301de1c077","unresolved":false,"context_lines":[{"line_number":2691,"context_line":"            if volume[\u0027group_id\u0027]:"},{"line_number":2692,"context_line":"                group \u003d self.db.group_get(ctxt, volume[\u0027group_id\u0027])"},{"line_number":2693,"context_line":"                rccg_name \u003d \u0027hypergroup\u0027 + group.id"},{"line_number":2694,"context_line":"                if utils.is_group_a_type(group, \"hyperswap_group_enabled\") \\"},{"line_number":2695,"context_line":"                        and self._helpers.get_rccg(rccg_name):"},{"line_number":2696,"context_line":"                    self.update_hyperswap_group(ctxt, group, [volume], [])"},{"line_number":2697,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_eec4df94","line":2694,"range":{"start_line":2694,"start_character":75,"end_line":2694,"end_character":76},"in_reply_to":"9f436f4f_694acdac","updated":"2017-08-22 08:20:05.000000000","message":"Thank you, Chengyong, I have changed it to if.. if... to put different error log","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"1da327217e70d6ebcc7b4c31604398121f7920f9","unresolved":false,"context_lines":[{"line_number":2732,"context_line":"        if hyper_volume:"},{"line_number":2733,"context_line":"            self._helpers.delete_hyperswap_volume(volume[\u0027name\u0027], False)"},{"line_number":2734,"context_line":"            LOG.debug(\u0027The volume is hyperswap volume,\u0027"},{"line_number":2735,"context_line":"                      \u0027leave: delete_volume: volume %s\u0027, volume[\u0027name\u0027])"},{"line_number":2736,"context_line":""},{"line_number":2737,"context_line":"        rep_type \u003d self._get_volume_replicated_type(ctxt, volume)"},{"line_number":2738,"context_line":"        if rep_type:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f436f4f_f5e49e3e","line":2735,"range":{"start_line":2735,"start_character":23,"end_line":2735,"end_character":54},"updated":"2017-08-18 03:53:15.000000000","message":"delete_volume does not return here, why say leave in the message?","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"f819d055e5b6575a458a20a1d7958f301de1c077","unresolved":false,"context_lines":[{"line_number":2732,"context_line":"        if hyper_volume:"},{"line_number":2733,"context_line":"            self._helpers.delete_hyperswap_volume(volume[\u0027name\u0027], False)"},{"line_number":2734,"context_line":"            LOG.debug(\u0027The volume is hyperswap volume,\u0027"},{"line_number":2735,"context_line":"                      \u0027leave: delete_volume: volume %s\u0027, volume[\u0027name\u0027])"},{"line_number":2736,"context_line":""},{"line_number":2737,"context_line":"        rep_type \u003d self._get_volume_replicated_type(ctxt, volume)"},{"line_number":2738,"context_line":"        if rep_type:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_4e09b3db","line":2735,"range":{"start_line":2735,"start_character":23,"end_line":2735,"end_character":54},"in_reply_to":"9f436f4f_f5e49e3e","updated":"2017-08-22 08:20:05.000000000","message":"Done","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"1da327217e70d6ebcc7b4c31604398121f7920f9","unresolved":false,"context_lines":[{"line_number":2913,"context_line":"        LOG.debug(\u0027enter: _extend_volume_op: volume %s\u0027, volume[\u0027id\u0027])"},{"line_number":2914,"context_line":"        volume_name \u003d self._get_target_vol(volume)"},{"line_number":2915,"context_line":"        if self._helpers.is_volume_hyperswap(volume_name):"},{"line_number":2916,"context_line":"            msg \u003d (_(\u0027_extend_volume_op: Extending a hyperswap volume is \u0027"},{"line_number":2917,"context_line":"                     \u0027not supported.\u0027))"},{"line_number":2918,"context_line":"            LOG.error(msg)"},{"line_number":2919,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f436f4f_55cfeaaf","line":2916,"range":{"start_line":2916,"start_character":18,"end_line":2916,"end_character":19},"updated":"2017-08-18 03:53:15.000000000","message":"remove this ()","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"f819d055e5b6575a458a20a1d7958f301de1c077","unresolved":false,"context_lines":[{"line_number":2913,"context_line":"        LOG.debug(\u0027enter: _extend_volume_op: volume %s\u0027, volume[\u0027id\u0027])"},{"line_number":2914,"context_line":"        volume_name \u003d self._get_target_vol(volume)"},{"line_number":2915,"context_line":"        if self._helpers.is_volume_hyperswap(volume_name):"},{"line_number":2916,"context_line":"            msg \u003d (_(\u0027_extend_volume_op: Extending a hyperswap volume is \u0027"},{"line_number":2917,"context_line":"                     \u0027not supported.\u0027))"},{"line_number":2918,"context_line":"            LOG.error(msg)"},{"line_number":2919,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_0e13ab0f","line":2916,"range":{"start_line":2916,"start_character":18,"end_line":2916,"end_character":19},"in_reply_to":"9f436f4f_55cfeaaf","updated":"2017-08-22 08:20:05.000000000","message":"Done","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":22583,"name":"Cheng Yong Zhao","email":"zhaochy@cn.ibm.com","username":"zhaochy"},"change_message_id":"b2bd9c6f7ef89af4d874b71053fba79742ba70fa","unresolved":false,"context_lines":[{"line_number":3798,"context_line":"                new_opts[\u0027peer_topology\u0027] \u003d\u003d \u0027hyperswap\u0027):"},{"line_number":3799,"context_line":"            self._helpers.convert_volume_to_hyperswap(volume[\u0027name\u0027],"},{"line_number":3800,"context_line":"                                                      new_opts, self._state)"},{"line_number":3801,"context_line":"        if (old_opts[\u0027peer_topology\u0027] \u003d\u003d \u0027hyperswap\u0027 and"},{"line_number":3802,"context_line":"                new_opts[\u0027peer_topology\u0027] !\u003d \u0027hyperswap\u0027):"},{"line_number":3803,"context_line":"            self._helpers.convert_hyperswap_volume_to_normal(volume[\u0027name\u0027],"},{"line_number":3804,"context_line":"                                                             old_opts)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f436f4f_89abb11b","line":3801,"range":{"start_line":3801,"start_character":8,"end_line":3801,"end_character":10},"updated":"2017-08-22 05:13:08.000000000","message":"suggest to change to elif","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"f819d055e5b6575a458a20a1d7958f301de1c077","unresolved":false,"context_lines":[{"line_number":3798,"context_line":"                new_opts[\u0027peer_topology\u0027] \u003d\u003d \u0027hyperswap\u0027):"},{"line_number":3799,"context_line":"            self._helpers.convert_volume_to_hyperswap(volume[\u0027name\u0027],"},{"line_number":3800,"context_line":"                                                      new_opts, self._state)"},{"line_number":3801,"context_line":"        if (old_opts[\u0027peer_topology\u0027] \u003d\u003d \u0027hyperswap\u0027 and"},{"line_number":3802,"context_line":"                new_opts[\u0027peer_topology\u0027] !\u003d \u0027hyperswap\u0027):"},{"line_number":3803,"context_line":"            self._helpers.convert_hyperswap_volume_to_normal(volume[\u0027name\u0027],"},{"line_number":3804,"context_line":"                                                             old_opts)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_cef483d2","line":3801,"range":{"start_line":3801,"start_character":8,"end_line":3801,"end_character":10},"in_reply_to":"9f436f4f_89abb11b","updated":"2017-08-22 08:20:05.000000000","message":"Done","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"1da327217e70d6ebcc7b4c31604398121f7920f9","unresolved":false,"context_lines":[{"line_number":4105,"context_line":"                          \u0027a system that does not support hyperswap.\u0027)"},{"line_number":4106,"context_line":"                model_update \u003d {\u0027status\u0027: fields.GroupStatus.ERROR}"},{"line_number":4107,"context_line":""},{"line_number":4108,"context_line":"            for vol_type_id in group.volume_type_ids:"},{"line_number":4109,"context_line":"                vol_type \u003d objects.VolumeType.get_by_name_or_id("},{"line_number":4110,"context_line":"                    context, vol_type_id)"},{"line_number":4111,"context_line":"                opts \u003d self._get_vdisk_params(vol_type_id,"},{"line_number":4112,"context_line":"                                              volume_type\u003dvol_type)"},{"line_number":4113,"context_line":"                if not opts[\u0027peer_topology\u0027]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f436f4f_15f4c2ce","line":4110,"range":{"start_line":4108,"start_character":12,"end_line":4110,"end_character":41},"updated":"2017-08-18 03:53:15.000000000","message":"you can use group.volume_types directly. but it is a little weird that you send both vol_type_id and vol_type to _get_vdisk_params at the same time.","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"f819d055e5b6575a458a20a1d7958f301de1c077","unresolved":false,"context_lines":[{"line_number":4105,"context_line":"                          \u0027a system that does not support hyperswap.\u0027)"},{"line_number":4106,"context_line":"                model_update \u003d {\u0027status\u0027: fields.GroupStatus.ERROR}"},{"line_number":4107,"context_line":""},{"line_number":4108,"context_line":"            for vol_type_id in group.volume_type_ids:"},{"line_number":4109,"context_line":"                vol_type \u003d objects.VolumeType.get_by_name_or_id("},{"line_number":4110,"context_line":"                    context, vol_type_id)"},{"line_number":4111,"context_line":"                opts \u003d self._get_vdisk_params(vol_type_id,"},{"line_number":4112,"context_line":"                                              volume_type\u003dvol_type)"},{"line_number":4113,"context_line":"                if not opts[\u0027peer_topology\u0027]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_6ebb4fe5","line":4110,"range":{"start_line":4108,"start_character":12,"end_line":4110,"end_character":41},"in_reply_to":"9f436f4f_15f4c2ce","updated":"2017-08-22 08:20:05.000000000","message":"Thank you,Jiamin, I modified the function to use only vol_type_id to get_vdisk_params","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":22583,"name":"Cheng Yong Zhao","email":"zhaochy@cn.ibm.com","username":"zhaochy"},"change_message_id":"b2bd9c6f7ef89af4d874b71053fba79742ba70fa","unresolved":false,"context_lines":[{"line_number":4141,"context_line":"        :returns: model_update, volumes_model_update"},{"line_number":4142,"context_line":"        \"\"\""},{"line_number":4143,"context_line":"        LOG.debug(\"Deleting group.\")"},{"line_number":4144,"context_line":"        if not utils.is_group_a_cg_snapshot_type(group) and \\"},{"line_number":4145,"context_line":"                not utils.is_group_a_type(group, \"hyperswap_group_enabled\"):"},{"line_number":4146,"context_line":"            # we\u0027ll rely on the generic group implementation if it is"},{"line_number":4147,"context_line":"            # not a consistency group request."}],"source_content_type":"text/x-python","patch_set":3,"id":"9f436f4f_491a697d","line":4144,"range":{"start_line":4144,"start_character":60,"end_line":4144,"end_character":61},"updated":"2017-08-22 05:13:08.000000000","message":"replace \\","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"f819d055e5b6575a458a20a1d7958f301de1c077","unresolved":false,"context_lines":[{"line_number":4141,"context_line":"        :returns: model_update, volumes_model_update"},{"line_number":4142,"context_line":"        \"\"\""},{"line_number":4143,"context_line":"        LOG.debug(\"Deleting group.\")"},{"line_number":4144,"context_line":"        if not utils.is_group_a_cg_snapshot_type(group) and \\"},{"line_number":4145,"context_line":"                not utils.is_group_a_type(group, \"hyperswap_group_enabled\"):"},{"line_number":4146,"context_line":"            # we\u0027ll rely on the generic group implementation if it is"},{"line_number":4147,"context_line":"            # not a consistency group request."}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_2eb547ef","line":4144,"range":{"start_line":4144,"start_character":60,"end_line":4144,"end_character":61},"in_reply_to":"9f436f4f_491a697d","updated":"2017-08-22 08:20:05.000000000","message":"Done","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":22583,"name":"Cheng Yong Zhao","email":"zhaochy@cn.ibm.com","username":"zhaochy"},"change_message_id":"b2bd9c6f7ef89af4d874b71053fba79742ba70fa","unresolved":false,"context_lines":[{"line_number":4425,"context_line":"            rccg_name \u003d \u0027hypergroup\u0027 + group.id"},{"line_number":4426,"context_line":"            self._helpers.delete_rccg(rccg_name)"},{"line_number":4427,"context_line":"        except exception.VolumeBackendAPIException as err:"},{"line_number":4428,"context_line":"            LOG.error(\"Failed to delete rccg  %(vol)s. \""},{"line_number":4429,"context_line":"                      \"Exception: %(exception)s.\","},{"line_number":4430,"context_line":"                      {\u0027rccg\u0027: group[\u0027name\u0027], \u0027exception\u0027: err})"},{"line_number":4431,"context_line":"            model_update \u003d {\u0027status\u0027: fields.GroupStatus.ERROR_DELETING}"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f436f4f_ac3683e6","line":4428,"range":{"start_line":4428,"start_character":48,"end_line":4428,"end_character":51},"updated":"2017-08-22 05:13:08.000000000","message":"rccg?","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"f819d055e5b6575a458a20a1d7958f301de1c077","unresolved":false,"context_lines":[{"line_number":4425,"context_line":"            rccg_name \u003d \u0027hypergroup\u0027 + group.id"},{"line_number":4426,"context_line":"            self._helpers.delete_rccg(rccg_name)"},{"line_number":4427,"context_line":"        except exception.VolumeBackendAPIException as err:"},{"line_number":4428,"context_line":"            LOG.error(\"Failed to delete rccg  %(vol)s. \""},{"line_number":4429,"context_line":"                      \"Exception: %(exception)s.\","},{"line_number":4430,"context_line":"                      {\u0027rccg\u0027: group[\u0027name\u0027], \u0027exception\u0027: err})"},{"line_number":4431,"context_line":"            model_update \u003d {\u0027status\u0027: fields.GroupStatus.ERROR_DELETING}"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_aec81774","line":4428,"range":{"start_line":4428,"start_character":48,"end_line":4428,"end_character":51},"in_reply_to":"9f436f4f_ac3683e6","updated":"2017-08-22 08:20:05.000000000","message":"Done","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":17564,"name":"jiamin","email":"shljia@cn.ibm.com","username":"jiamin"},"change_message_id":"1da327217e70d6ebcc7b4c31604398121f7920f9","unresolved":false,"context_lines":[{"line_number":4436,"context_line":"                volumes_model_update.append("},{"line_number":4437,"context_line":"                    {\u0027id\u0027: volume.id, \u0027status\u0027: \u0027deleted\u0027})"},{"line_number":4438,"context_line":"            except exception.VolumeDriverException as err:"},{"line_number":4439,"context_line":"                model_update[\u0027status\u0027] \u003d ("},{"line_number":4440,"context_line":"                    fields.GroupStatus.ERROR_DELETING)"},{"line_number":4441,"context_line":"                LOG.error(\"Failed to delete the volume %(vol)s of CG. \""},{"line_number":4442,"context_line":"                          \"Exception: %(exception)s.\","},{"line_number":4443,"context_line":"                          {\u0027vol\u0027: volume.name, \u0027exception\u0027: err})"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f436f4f_95bf92cf","line":4440,"range":{"start_line":4439,"start_character":16,"end_line":4440,"end_character":54},"updated":"2017-08-18 03:53:15.000000000","message":"you can remove this one, because if base cinder find that there is error in volumes_model_update, it will mark group status as error automatically.\n\nhttps://github.com/openstack/cinder/blob/master/cinder/volume/manager.py#L3293","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"f819d055e5b6575a458a20a1d7958f301de1c077","unresolved":false,"context_lines":[{"line_number":4436,"context_line":"                volumes_model_update.append("},{"line_number":4437,"context_line":"                    {\u0027id\u0027: volume.id, \u0027status\u0027: \u0027deleted\u0027})"},{"line_number":4438,"context_line":"            except exception.VolumeDriverException as err:"},{"line_number":4439,"context_line":"                model_update[\u0027status\u0027] \u003d ("},{"line_number":4440,"context_line":"                    fields.GroupStatus.ERROR_DELETING)"},{"line_number":4441,"context_line":"                LOG.error(\"Failed to delete the volume %(vol)s of CG. \""},{"line_number":4442,"context_line":"                          \"Exception: %(exception)s.\","},{"line_number":4443,"context_line":"                          {\u0027vol\u0027: volume.name, \u0027exception\u0027: err})"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_ce900352","line":4440,"range":{"start_line":4439,"start_character":16,"end_line":4440,"end_character":54},"in_reply_to":"9f436f4f_95bf92cf","updated":"2017-08-22 08:20:05.000000000","message":"Thank you, Jiamin, I have remove the line.","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":22583,"name":"Cheng Yong Zhao","email":"zhaochy@cn.ibm.com","username":"zhaochy"},"change_message_id":"b2bd9c6f7ef89af4d874b71053fba79742ba70fa","unresolved":false,"context_lines":[{"line_number":4470,"context_line":"                rcrel \u003d self._helpers.get_relationship_info(volume.name)"},{"line_number":4471,"context_line":"                if not rcrel:"},{"line_number":4472,"context_line":"                    LOG.error(\"Failed to update rccg: remote copy relationship\""},{"line_number":4473,"context_line":"                              \" of %(vol)s does not exit in backend.\","},{"line_number":4474,"context_line":"                              {\u0027vol\u0027: volume.id})"},{"line_number":4475,"context_line":"                    model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"},{"line_number":4476,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f436f4f_2c9e13b8","line":4473,"range":{"start_line":4473,"start_character":52,"end_line":4473,"end_character":56},"updated":"2017-08-22 05:13:08.000000000","message":"should be exist","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"f819d055e5b6575a458a20a1d7958f301de1c077","unresolved":false,"context_lines":[{"line_number":4470,"context_line":"                rcrel \u003d self._helpers.get_relationship_info(volume.name)"},{"line_number":4471,"context_line":"                if not rcrel:"},{"line_number":4472,"context_line":"                    LOG.error(\"Failed to update rccg: remote copy relationship\""},{"line_number":4473,"context_line":"                              \" of %(vol)s does not exit in backend.\","},{"line_number":4474,"context_line":"                              {\u0027vol\u0027: volume.id})"},{"line_number":4475,"context_line":"                    model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"},{"line_number":4476,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_8e9afb6b","line":4473,"range":{"start_line":4473,"start_character":52,"end_line":4473,"end_character":56},"in_reply_to":"9f436f4f_2c9e13b8","updated":"2017-08-22 08:20:05.000000000","message":"Done","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":22583,"name":"Cheng Yong Zhao","email":"zhaochy@cn.ibm.com","username":"zhaochy"},"change_message_id":"b2bd9c6f7ef89af4d874b71053fba79742ba70fa","unresolved":false,"context_lines":[{"line_number":4474,"context_line":"                              {\u0027vol\u0027: volume.id})"},{"line_number":4475,"context_line":"                    model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"},{"line_number":4476,"context_line":"                else:"},{"line_number":4477,"context_line":"                    rccg_name \u003d \u0027hypergroup\u0027 + group.id"},{"line_number":4478,"context_line":"                    self._helpers.chrcrelationship(rcrel[\u0027name\u0027], rccg_name)"},{"line_number":4479,"context_line":"            except exception.VolumeBackendAPIException as err:"},{"line_number":4480,"context_line":"                model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f436f4f_2cecd327","line":4477,"range":{"start_line":4477,"start_character":32,"end_line":4477,"end_character":55},"updated":"2017-08-22 05:13:08.000000000","message":"already defined in line 4453","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"f819d055e5b6575a458a20a1d7958f301de1c077","unresolved":false,"context_lines":[{"line_number":4474,"context_line":"                              {\u0027vol\u0027: volume.id})"},{"line_number":4475,"context_line":"                    model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"},{"line_number":4476,"context_line":"                else:"},{"line_number":4477,"context_line":"                    rccg_name \u003d \u0027hypergroup\u0027 + group.id"},{"line_number":4478,"context_line":"                    self._helpers.chrcrelationship(rcrel[\u0027name\u0027], rccg_name)"},{"line_number":4479,"context_line":"            except exception.VolumeBackendAPIException as err:"},{"line_number":4480,"context_line":"                model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_8e731b4e","line":4477,"range":{"start_line":4477,"start_character":32,"end_line":4477,"end_character":55},"in_reply_to":"9f436f4f_2cecd327","updated":"2017-08-22 08:20:05.000000000","message":"Thank you , Chengyong, I have removed this line.","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":22583,"name":"Cheng Yong Zhao","email":"zhaochy@cn.ibm.com","username":"zhaochy"},"change_message_id":"b2bd9c6f7ef89af4d874b71053fba79742ba70fa","unresolved":false,"context_lines":[{"line_number":4488,"context_line":"                rcrel \u003d self._helpers.get_relationship_info(volume.name)"},{"line_number":4489,"context_line":"                if not rcrel:"},{"line_number":4490,"context_line":"                    LOG.error(\"Failed to update rccg: remote copy relationship\""},{"line_number":4491,"context_line":"                              \" of %(vol)s does not exit in backend.\","},{"line_number":4492,"context_line":"                              {\u0027vol\u0027: volume.id})"},{"line_number":4493,"context_line":"                    model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"},{"line_number":4494,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f436f4f_ccdc2776","line":4491,"range":{"start_line":4491,"start_character":52,"end_line":4491,"end_character":56},"updated":"2017-08-22 05:13:08.000000000","message":"exist","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"21cbebd217abfdf5ac379903c23d18e980c5ca36","unresolved":false,"context_lines":[{"line_number":693,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":694,"context_line":""},{"line_number":695,"context_line":"    def rmvolumecopy(self, name, pool):"},{"line_number":696,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027rmvolumecopy\u0027, \u0027-pool\u0027,"},{"line_number":697,"context_line":"                   \u0027\"%s\"\u0027 % pool] + [\u0027\"%s\"\u0027 % name]"},{"line_number":698,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_073d01dc","line":697,"range":{"start_line":696,"start_character":0,"end_line":697,"end_character":51},"updated":"2017-08-30 08:33:40.000000000","message":"[\u0027svctask\u0027, \u0027rmvolumecopy\u0027, \u0027-pool\u0027, \u0027\"%s\"\u0027 % pool，\u0027\"%s\"\u0027 % name ]？","commit_id":"530b0f1f512cde9435ed1d3460f6483154161ab5"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"bf8cc71b217be55ebb92affdcd73f71490fa3d5d","unresolved":false,"context_lines":[{"line_number":693,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":694,"context_line":""},{"line_number":695,"context_line":"    def rmvolumecopy(self, name, pool):"},{"line_number":696,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027rmvolumecopy\u0027, \u0027-pool\u0027,"},{"line_number":697,"context_line":"                   \u0027\"%s\"\u0027 % pool] + [\u0027\"%s\"\u0027 % name]"},{"line_number":698,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_6fef97b0","line":697,"range":{"start_line":696,"start_character":0,"end_line":697,"end_character":51},"in_reply_to":"7f287b81_073d01dc","updated":"2017-09-04 02:47:31.000000000","message":"Hi Xiaoqin,thank you very much for your comment,  it has been addressed in the new patch","commit_id":"530b0f1f512cde9435ed1d3460f6483154161ab5"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"21cbebd217abfdf5ac379903c23d18e980c5ca36","unresolved":false,"context_lines":[{"line_number":1015,"context_line":""},{"line_number":1016,"context_line":"        LOG.debug(\u0027Leave: get_host_from_connector: host %s.\u0027, host_name)"},{"line_number":1017,"context_line":"        return host_name"},{"line_number":1018,"context_line":""},{"line_number":1019,"context_line":"    def create_host(self, connector, site\u003dNone, iscsi\u003dFalse):"},{"line_number":1020,"context_line":"        \"\"\"Create a new host on the storage system."},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":"        We create a host name and associate it with the given connection"},{"line_number":1023,"context_line":"        information.  The host name will be a cleaned up version of the given"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_331b9c73","line":1020,"range":{"start_line":1018,"start_character":0,"end_line":1020,"end_character":28},"updated":"2017-08-30 08:33:40.000000000","message":"You\u0027d better add new parameters in the end of create_host(self, connector, iscsi\u003dFalse, site\u003dNone)","commit_id":"530b0f1f512cde9435ed1d3460f6483154161ab5"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"bf8cc71b217be55ebb92affdcd73f71490fa3d5d","unresolved":false,"context_lines":[{"line_number":1015,"context_line":""},{"line_number":1016,"context_line":"        LOG.debug(\u0027Leave: get_host_from_connector: host %s.\u0027, host_name)"},{"line_number":1017,"context_line":"        return host_name"},{"line_number":1018,"context_line":""},{"line_number":1019,"context_line":"    def create_host(self, connector, site\u003dNone, iscsi\u003dFalse):"},{"line_number":1020,"context_line":"        \"\"\"Create a new host on the storage system."},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":"        We create a host name and associate it with the given connection"},{"line_number":1023,"context_line":"        information.  The host name will be a cleaned up version of the given"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_0f349349","line":1020,"range":{"start_line":1018,"start_character":0,"end_line":1020,"end_character":28},"in_reply_to":"7f287b81_331b9c73","updated":"2017-09-04 02:47:31.000000000","message":"Done","commit_id":"530b0f1f512cde9435ed1d3460f6483154161ab5"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"21cbebd217abfdf5ac379903c23d18e980c5ca36","unresolved":false,"context_lines":[{"line_number":1442,"context_line":"                # name in volume type. otherwize it will cause two same pool"},{"line_number":1443,"context_line":"                if pool \u003d\u003d opts[\u0027peer_pool\u0027]:"},{"line_number":1444,"context_line":"                    raise exception.InvalidInput("},{"line_number":1445,"context_line":"                        reason\u003d_(\u0027The hyperswap volume must in two \u0027"},{"line_number":1446,"context_line":"                                 \u0027independent sites, the pool %(pool)s is the \u0027"},{"line_number":1447,"context_line":"                                 \u0027same as peer_pool %(peer_pool)s \u0027) %"},{"line_number":1448,"context_line":"                        {\u0027pool\u0027: pool, \u0027peer_pool\u0027: opts[\u0027peer_pool\u0027]})"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_e2430341","line":1445,"range":{"start_line":1445,"start_character":34,"end_line":1445,"end_character":67},"updated":"2017-08-30 08:33:40.000000000","message":"The hyperswap volume must be configured in two...","commit_id":"530b0f1f512cde9435ed1d3460f6483154161ab5"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"bf8cc71b217be55ebb92affdcd73f71490fa3d5d","unresolved":false,"context_lines":[{"line_number":1442,"context_line":"                # name in volume type. otherwize it will cause two same pool"},{"line_number":1443,"context_line":"                if pool \u003d\u003d opts[\u0027peer_pool\u0027]:"},{"line_number":1444,"context_line":"                    raise exception.InvalidInput("},{"line_number":1445,"context_line":"                        reason\u003d_(\u0027The hyperswap volume must in two \u0027"},{"line_number":1446,"context_line":"                                 \u0027independent sites, the pool %(pool)s is the \u0027"},{"line_number":1447,"context_line":"                                 \u0027same as peer_pool %(peer_pool)s \u0027) %"},{"line_number":1448,"context_line":"                        {\u0027pool\u0027: pool, \u0027peer_pool\u0027: opts[\u0027peer_pool\u0027]})"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_ef38273e","line":1445,"range":{"start_line":1445,"start_character":34,"end_line":1445,"end_character":67},"in_reply_to":"7f287b81_e2430341","updated":"2017-09-04 02:47:31.000000000","message":"Done","commit_id":"530b0f1f512cde9435ed1d3460f6483154161ab5"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"21cbebd217abfdf5ac379903c23d18e980c5ca36","unresolved":false,"context_lines":[{"line_number":2198,"context_line":"        self.ssh.migratevdisk(vdisk, dest_pool, copy_id)"},{"line_number":2199,"context_line":""},{"line_number":2200,"context_line":"    def is_system_topology_hyperswap(self, state):"},{"line_number":2201,"context_line":"        \"\"\"Returns True if the system hyperswap topology and release\u003e7.6.\"\"\""},{"line_number":2202,"context_line":"        if state[\u0027code_level\u0027] \u003c (7, 6, 0, 0):"},{"line_number":2203,"context_line":"            msg \u003d (_(\u0027Hyperswap failure as the storage\u0027"},{"line_number":2204,"context_line":"                     \u0027code_level is %(code_level)s, below \u0027"},{"line_number":2205,"context_line":"                     \u0027the required 7.6.0.0.\u0027) %"},{"line_number":2206,"context_line":"                   {\u0027code_level\u0027: state[\u0027code_level\u0027]})"},{"line_number":2207,"context_line":"            LOG.error(msg)"},{"line_number":2208,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":2209,"context_line":"        else:"},{"line_number":2210,"context_line":"            if state[\u0027topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"},{"line_number":2211,"context_line":"                return True"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_c2da4776","line":2208,"range":{"start_line":2201,"start_character":0,"end_line":2208,"end_character":62},"updated":"2017-08-30 08:33:40.000000000","message":"From the function name, this function should just simplely return True or False, so it should return False here, rather than raise exception.","commit_id":"530b0f1f512cde9435ed1d3460f6483154161ab5"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"bf8cc71b217be55ebb92affdcd73f71490fa3d5d","unresolved":false,"context_lines":[{"line_number":2198,"context_line":"        self.ssh.migratevdisk(vdisk, dest_pool, copy_id)"},{"line_number":2199,"context_line":""},{"line_number":2200,"context_line":"    def is_system_topology_hyperswap(self, state):"},{"line_number":2201,"context_line":"        \"\"\"Returns True if the system hyperswap topology and release\u003e7.6.\"\"\""},{"line_number":2202,"context_line":"        if state[\u0027code_level\u0027] \u003c (7, 6, 0, 0):"},{"line_number":2203,"context_line":"            msg \u003d (_(\u0027Hyperswap failure as the storage\u0027"},{"line_number":2204,"context_line":"                     \u0027code_level is %(code_level)s, below \u0027"},{"line_number":2205,"context_line":"                     \u0027the required 7.6.0.0.\u0027) %"},{"line_number":2206,"context_line":"                   {\u0027code_level\u0027: state[\u0027code_level\u0027]})"},{"line_number":2207,"context_line":"            LOG.error(msg)"},{"line_number":2208,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":2209,"context_line":"        else:"},{"line_number":2210,"context_line":"            if state[\u0027topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"},{"line_number":2211,"context_line":"                return True"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_cf3d6b2d","line":2208,"range":{"start_line":2201,"start_character":0,"end_line":2208,"end_character":62},"in_reply_to":"7f287b81_c2da4776","updated":"2017-09-04 02:47:31.000000000","message":"Hi Xiaoqin, thank you very much for your comments, It has been addressed in the new patch","commit_id":"530b0f1f512cde9435ed1d3460f6483154161ab5"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"21cbebd217abfdf5ac379903c23d18e980c5ca36","unresolved":false,"context_lines":[{"line_number":2207,"context_line":"            LOG.error(msg)"},{"line_number":2208,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":2209,"context_line":"        else:"},{"line_number":2210,"context_line":"            if state[\u0027topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"},{"line_number":2211,"context_line":"                return True"},{"line_number":2212,"context_line":"            else:"},{"line_number":2213,"context_line":"                msg \u003d _(\u0027Create hyperswap volume failed, \u0027"},{"line_number":2214,"context_line":"                        \u0027The system topology is not hyperswap\u0027)"},{"line_number":2215,"context_line":"                LOG.error(msg)"},{"line_number":2216,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":2217,"context_line":"        return False"},{"line_number":2218,"context_line":""},{"line_number":2219,"context_line":"    def is_volume_hyperswap(self, name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_e2c8a3a6","line":2216,"range":{"start_line":2210,"start_character":0,"end_line":2216,"end_character":66},"updated":"2017-08-30 08:33:40.000000000","message":"Ditto","commit_id":"530b0f1f512cde9435ed1d3460f6483154161ab5"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"bf8cc71b217be55ebb92affdcd73f71490fa3d5d","unresolved":false,"context_lines":[{"line_number":2207,"context_line":"            LOG.error(msg)"},{"line_number":2208,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":2209,"context_line":"        else:"},{"line_number":2210,"context_line":"            if state[\u0027topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"},{"line_number":2211,"context_line":"                return True"},{"line_number":2212,"context_line":"            else:"},{"line_number":2213,"context_line":"                msg \u003d _(\u0027Create hyperswap volume failed, \u0027"},{"line_number":2214,"context_line":"                        \u0027The system topology is not hyperswap\u0027)"},{"line_number":2215,"context_line":"                LOG.error(msg)"},{"line_number":2216,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":2217,"context_line":"        return False"},{"line_number":2218,"context_line":""},{"line_number":2219,"context_line":"    def is_volume_hyperswap(self, name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_af3a1f31","line":2216,"range":{"start_line":2210,"start_character":0,"end_line":2216,"end_character":66},"in_reply_to":"7f287b81_e2c8a3a6","updated":"2017-09-04 02:47:31.000000000","message":"Done","commit_id":"530b0f1f512cde9435ed1d3460f6483154161ab5"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"21cbebd217abfdf5ac379903c23d18e980c5ca36","unresolved":false,"context_lines":[{"line_number":2680,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":2681,"context_line":"        rep_type \u003d self._get_volume_replicated_type(ctxt, volume)"},{"line_number":2682,"context_line":"        pool \u003d utils.extract_host(volume[\u0027host\u0027], \u0027pool\u0027)"},{"line_number":2683,"context_line":""},{"line_number":2684,"context_line":"        if opts[\u0027peer_topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"},{"line_number":2685,"context_line":"            if opts[\u0027mirror_pool\u0027] or rep_type:"},{"line_number":2686,"context_line":"                reason \u003d _(\u0027Create hyperswap volume with streched cluster or \u0027"},{"line_number":2687,"context_line":"                           \u0027replication enabled is not supported.\u0027)"},{"line_number":2688,"context_line":"                raise exception.InvalidInput(reason\u003dreason)"},{"line_number":2689,"context_line":"            self._helpers.create_hyperswap_volume(volume.name,"},{"line_number":2690,"context_line":"                                                  volume.size,"},{"line_number":2691,"context_line":"                                                  \u0027gb\u0027, pool, opts,"},{"line_number":2692,"context_line":"                                                  self._state)"},{"line_number":2693,"context_line":"            if volume.group_id:"},{"line_number":2694,"context_line":"                rccg_name \u003d (\u0027hsgrp-\u0027 + volume.group_id[0:4]"},{"line_number":2695,"context_line":"                             + volume.group_id[-5:])"},{"line_number":2696,"context_line":"                group \u003d utils.group_get_by_id(volume.group_id)"},{"line_number":2697,"context_line":"                if not utils.is_group_a_type(group, \"hyperswap_group_enabled\"):"},{"line_number":2698,"context_line":"                    msg \u003d (_(\u0027Create hyperswap volume with group_id failed, \u0027"},{"line_number":2699,"context_line":"                             \u0027the group %s is not hyperswap group\u0027) %"},{"line_number":2700,"context_line":"                           group.id)"},{"line_number":2701,"context_line":"                    LOG.error(msg)"},{"line_number":2702,"context_line":"                    raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":2703,"context_line":"                elif not self._helpers.get_rccg(rccg_name):"},{"line_number":2704,"context_line":"                    msg \u003d (_(\u0027Create volume with group_id failed, the group\u0027"},{"line_number":2705,"context_line":"                             \u0027%s is not exist on storwize\u0027) % rccg_name)"},{"line_number":2706,"context_line":"                    LOG.error(msg)"},{"line_number":2707,"context_line":"                    raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":2708,"context_line":"                else:"},{"line_number":2709,"context_line":"                    update_status, add_update, remove_update \u003d ("},{"line_number":2710,"context_line":"                        self.update_hyperswap_group(ctxt, group,"},{"line_number":2711,"context_line":"                                                    [volume], []))"},{"line_number":2712,"context_line":"                    if update_status[\u0027status\u0027] \u003d\u003d \u0027error\u0027:"},{"line_number":2713,"context_line":"                        msg \u003d (_(\u0027Failed to update volume %s to group \u0027)"},{"line_number":2714,"context_line":"                               % volume.name)"},{"line_number":2715,"context_line":"                        LOG.error(msg)"},{"line_number":2716,"context_line":"                        raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":2717,"context_line":""},{"line_number":2718,"context_line":"        else:"},{"line_number":2719,"context_line":"            if opts[\u0027mirror_pool\u0027] and rep_type:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_42be57b4","line":2716,"range":{"start_line":2683,"start_character":0,"end_line":2716,"end_character":74},"updated":"2017-08-30 08:33:40.000000000","message":"Return model_update after create_volume if needed","commit_id":"530b0f1f512cde9435ed1d3460f6483154161ab5"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"bf8cc71b217be55ebb92affdcd73f71490fa3d5d","unresolved":false,"context_lines":[{"line_number":2680,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":2681,"context_line":"        rep_type \u003d self._get_volume_replicated_type(ctxt, volume)"},{"line_number":2682,"context_line":"        pool \u003d utils.extract_host(volume[\u0027host\u0027], \u0027pool\u0027)"},{"line_number":2683,"context_line":""},{"line_number":2684,"context_line":"        if opts[\u0027peer_topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"},{"line_number":2685,"context_line":"            if opts[\u0027mirror_pool\u0027] or rep_type:"},{"line_number":2686,"context_line":"                reason \u003d _(\u0027Create hyperswap volume with streched cluster or \u0027"},{"line_number":2687,"context_line":"                           \u0027replication enabled is not supported.\u0027)"},{"line_number":2688,"context_line":"                raise exception.InvalidInput(reason\u003dreason)"},{"line_number":2689,"context_line":"            self._helpers.create_hyperswap_volume(volume.name,"},{"line_number":2690,"context_line":"                                                  volume.size,"},{"line_number":2691,"context_line":"                                                  \u0027gb\u0027, pool, opts,"},{"line_number":2692,"context_line":"                                                  self._state)"},{"line_number":2693,"context_line":"            if volume.group_id:"},{"line_number":2694,"context_line":"                rccg_name \u003d (\u0027hsgrp-\u0027 + volume.group_id[0:4]"},{"line_number":2695,"context_line":"                             + volume.group_id[-5:])"},{"line_number":2696,"context_line":"                group \u003d utils.group_get_by_id(volume.group_id)"},{"line_number":2697,"context_line":"                if not utils.is_group_a_type(group, \"hyperswap_group_enabled\"):"},{"line_number":2698,"context_line":"                    msg \u003d (_(\u0027Create hyperswap volume with group_id failed, \u0027"},{"line_number":2699,"context_line":"                             \u0027the group %s is not hyperswap group\u0027) %"},{"line_number":2700,"context_line":"                           group.id)"},{"line_number":2701,"context_line":"                    LOG.error(msg)"},{"line_number":2702,"context_line":"                    raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":2703,"context_line":"                elif not self._helpers.get_rccg(rccg_name):"},{"line_number":2704,"context_line":"                    msg \u003d (_(\u0027Create volume with group_id failed, the group\u0027"},{"line_number":2705,"context_line":"                             \u0027%s is not exist on storwize\u0027) % rccg_name)"},{"line_number":2706,"context_line":"                    LOG.error(msg)"},{"line_number":2707,"context_line":"                    raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":2708,"context_line":"                else:"},{"line_number":2709,"context_line":"                    update_status, add_update, remove_update \u003d ("},{"line_number":2710,"context_line":"                        self.update_hyperswap_group(ctxt, group,"},{"line_number":2711,"context_line":"                                                    [volume], []))"},{"line_number":2712,"context_line":"                    if update_status[\u0027status\u0027] \u003d\u003d \u0027error\u0027:"},{"line_number":2713,"context_line":"                        msg \u003d (_(\u0027Failed to update volume %s to group \u0027)"},{"line_number":2714,"context_line":"                               % volume.name)"},{"line_number":2715,"context_line":"                        LOG.error(msg)"},{"line_number":2716,"context_line":"                        raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":2717,"context_line":""},{"line_number":2718,"context_line":"        else:"},{"line_number":2719,"context_line":"            if opts[\u0027mirror_pool\u0027] and rep_type:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_6f4437b8","line":2716,"range":{"start_line":2683,"start_character":0,"end_line":2716,"end_character":74},"in_reply_to":"7f287b81_42be57b4","updated":"2017-09-04 02:47:31.000000000","message":"Hi Xiaoqin, thank you very much for your comment, I have moved the model_update \u003d None to the front of those line","commit_id":"530b0f1f512cde9435ed1d3460f6483154161ab5"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"21cbebd217abfdf5ac379903c23d18e980c5ca36","unresolved":false,"context_lines":[{"line_number":2744,"context_line":"        LOG.debug(\u0027enter: delete_volume: volume %s\u0027, volume[\u0027name\u0027])"},{"line_number":2745,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":2746,"context_line":""},{"line_number":2747,"context_line":"        hyper_volume \u003d self._helpers.is_volume_hyperswap(volume.name)"},{"line_number":2748,"context_line":"        if hyper_volume:"},{"line_number":2749,"context_line":"            self._helpers.delete_hyperswap_volume(volume.name, False)"},{"line_number":2750,"context_line":""},{"line_number":2751,"context_line":"        rep_type \u003d self._get_volume_replicated_type(ctxt, volume)"},{"line_number":2752,"context_line":"        if rep_type:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_a2d97b22","line":2749,"range":{"start_line":2747,"start_character":1,"end_line":2749,"end_character":69},"updated":"2017-08-30 08:33:40.000000000","message":"Just return for this branch， otherwise the hyper_volume will still go the following code.","commit_id":"530b0f1f512cde9435ed1d3460f6483154161ab5"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"bf8cc71b217be55ebb92affdcd73f71490fa3d5d","unresolved":false,"context_lines":[{"line_number":2744,"context_line":"        LOG.debug(\u0027enter: delete_volume: volume %s\u0027, volume[\u0027name\u0027])"},{"line_number":2745,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":2746,"context_line":""},{"line_number":2747,"context_line":"        hyper_volume \u003d self._helpers.is_volume_hyperswap(volume.name)"},{"line_number":2748,"context_line":"        if hyper_volume:"},{"line_number":2749,"context_line":"            self._helpers.delete_hyperswap_volume(volume.name, False)"},{"line_number":2750,"context_line":""},{"line_number":2751,"context_line":"        rep_type \u003d self._get_volume_replicated_type(ctxt, volume)"},{"line_number":2752,"context_line":"        if rep_type:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_4f13bbb9","line":2749,"range":{"start_line":2747,"start_character":1,"end_line":2749,"end_character":69},"in_reply_to":"7f287b81_a2d97b22","updated":"2017-09-04 02:47:31.000000000","message":"Done","commit_id":"530b0f1f512cde9435ed1d3460f6483154161ab5"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"21cbebd217abfdf5ac379903c23d18e980c5ca36","unresolved":false,"context_lines":[{"line_number":3659,"context_line":"                            \u0027volume\u0027)"},{"line_number":3660,"context_line":"                    LOG.error(msg)"},{"line_number":3661,"context_line":"                    raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3662,"context_line":"                elif self._helpers.is_system_topology_hyperswap:"},{"line_number":3663,"context_line":"                    if not new_opts[\u0027peer_pool\u0027]:"},{"line_number":3664,"context_line":"                        msg \u003d _(\u0027Unable to retype: there is no peer pool\u0027"},{"line_number":3665,"context_line":"                                \u0027in the new volume type\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_4a766d40","line":3662,"range":{"start_line":3662,"start_character":0,"end_line":3662,"end_character":64},"updated":"2017-08-30 08:33:40.000000000","message":"self._helpers.is_system_topology_hyperswap()","commit_id":"530b0f1f512cde9435ed1d3460f6483154161ab5"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"bf8cc71b217be55ebb92affdcd73f71490fa3d5d","unresolved":false,"context_lines":[{"line_number":3659,"context_line":"                            \u0027volume\u0027)"},{"line_number":3660,"context_line":"                    LOG.error(msg)"},{"line_number":3661,"context_line":"                    raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3662,"context_line":"                elif self._helpers.is_system_topology_hyperswap:"},{"line_number":3663,"context_line":"                    if not new_opts[\u0027peer_pool\u0027]:"},{"line_number":3664,"context_line":"                        msg \u003d _(\u0027Unable to retype: there is no peer pool\u0027"},{"line_number":3665,"context_line":"                                \u0027in the new volume type\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_ef1147ae","line":3662,"range":{"start_line":3662,"start_character":0,"end_line":3662,"end_character":64},"in_reply_to":"7f287b81_4a766d40","updated":"2017-09-04 02:47:31.000000000","message":"Hi Xiaoqin, thank you very much for your comments, I found the hyperswap pools will be checked in the functionconvert_volume_to_hyperswap. so I removed this lines.","commit_id":"530b0f1f512cde9435ed1d3460f6483154161ab5"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"21cbebd217abfdf5ac379903c23d18e980c5ca36","unresolved":false,"context_lines":[{"line_number":3664,"context_line":"                        msg \u003d _(\u0027Unable to retype: there is no peer pool\u0027"},{"line_number":3665,"context_line":"                                \u0027in the new volume type\u0027)"},{"line_number":3666,"context_line":"                        LOG.error(msg)"},{"line_number":3667,"context_line":"                        raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3668,"context_line":"                    elif not self._helpers.is_pool_defined("},{"line_number":3669,"context_line":"                            new_opts[\u0027peer_pool\u0027]):"},{"line_number":3670,"context_line":"                        msg \u003d (_(\u0027Unable to retype: The stored peer pool %s\u0027"},{"line_number":3671,"context_line":"                                 \u0027is not valid\u0027) % new_opts[\u0027peer_pool\u0027])"},{"line_number":3672,"context_line":"                        LOG.error(msg)"},{"line_number":3673,"context_line":"                        raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3674,"context_line":""},{"line_number":3675,"context_line":"        # There are four options for rep_type: None, metro, global, gmcv"},{"line_number":3676,"context_line":"        if new_rep_type or old_rep_type:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_ed041317","line":3673,"range":{"start_line":3667,"start_character":1,"end_line":3673,"end_character":57},"updated":"2017-08-30 08:33:40.000000000","message":"The peer_pool can be changed during retype or not?","commit_id":"530b0f1f512cde9435ed1d3460f6483154161ab5"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"bf8cc71b217be55ebb92affdcd73f71490fa3d5d","unresolved":false,"context_lines":[{"line_number":3664,"context_line":"                        msg \u003d _(\u0027Unable to retype: there is no peer pool\u0027"},{"line_number":3665,"context_line":"                                \u0027in the new volume type\u0027)"},{"line_number":3666,"context_line":"                        LOG.error(msg)"},{"line_number":3667,"context_line":"                        raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3668,"context_line":"                    elif not self._helpers.is_pool_defined("},{"line_number":3669,"context_line":"                            new_opts[\u0027peer_pool\u0027]):"},{"line_number":3670,"context_line":"                        msg \u003d (_(\u0027Unable to retype: The stored peer pool %s\u0027"},{"line_number":3671,"context_line":"                                 \u0027is not valid\u0027) % new_opts[\u0027peer_pool\u0027])"},{"line_number":3672,"context_line":"                        LOG.error(msg)"},{"line_number":3673,"context_line":"                        raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3674,"context_line":""},{"line_number":3675,"context_line":"        # There are four options for rep_type: None, metro, global, gmcv"},{"line_number":3676,"context_line":"        if new_rep_type or old_rep_type:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_4f785bf7","line":3673,"range":{"start_line":3667,"start_character":1,"end_line":3673,"end_character":57},"in_reply_to":"7f287b81_ed041317","updated":"2017-09-04 02:47:31.000000000","message":"Hi Xiaoqin, thank you very much for your comment, The peer_pool can\u0027t be changed during retype. It has been addressed in the new patch. when the new_opts[\u0027peer_topology\u0027] \u003d\u003d  old_opts[\u0027peer_topology\u0027], it is not allowed to do retype.","commit_id":"530b0f1f512cde9435ed1d3460f6483154161ab5"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"67ba5a5671ba7607712170c22c5af9d6a7fb43cc","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    cfg.StrOpt(\u0027storwize_peer_pool\u0027,"},{"line_number":129,"context_line":"               default\u003dNone,"},{"line_number":130,"context_line":"               help\u003d\u0027Specifies the name of the peer pool for hyperswap \u0027"},{"line_number":131,"context_line":"                    \u0027volume, the peer pool must be at the other site\u0027),"},{"line_number":132,"context_line":"    cfg.StrOpt(\u0027storwize_hyperswap_preferred_host_site\u0027,"},{"line_number":133,"context_line":"               default\u003dNone,"},{"line_number":134,"context_line":"               help\u003d\u0027Specifies the preferred host site for hyperswap host\u0027),"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_f31b9270","line":131,"range":{"start_line":131,"start_character":51,"end_line":131,"end_character":53},"updated":"2017-10-10 11:43:24.000000000","message":"must exist on....","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"7f665dcd66b43b4c2d0d193fbe001982ebe8244a","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    cfg.StrOpt(\u0027storwize_peer_pool\u0027,"},{"line_number":129,"context_line":"               default\u003dNone,"},{"line_number":130,"context_line":"               help\u003d\u0027Specifies the name of the peer pool for hyperswap \u0027"},{"line_number":131,"context_line":"                    \u0027volume, the peer pool must be at the other site\u0027),"},{"line_number":132,"context_line":"    cfg.StrOpt(\u0027storwize_hyperswap_preferred_host_site\u0027,"},{"line_number":133,"context_line":"               default\u003dNone,"},{"line_number":134,"context_line":"               help\u003d\u0027Specifies the preferred host site for hyperswap host\u0027),"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_44d495bd","line":131,"range":{"start_line":131,"start_character":51,"end_line":131,"end_character":53},"in_reply_to":"5f4e5783_f31b9270","updated":"2017-10-12 09:45:08.000000000","message":"Hi Isaac, thank you very much, it has been addressed in the new patch","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"67ba5a5671ba7607712170c22c5af9d6a7fb43cc","unresolved":false,"context_lines":[{"line_number":1438,"context_line":"        LOG.debug(\u0027Leave: _create_vdisk: volume %s.\u0027, name)"},{"line_number":1439,"context_line":""},{"line_number":1440,"context_line":"    def _get_hyperswap_volume_create_params(self, opts):"},{"line_number":1441,"context_line":"        # since we use mkvolume to create hyperswap voulme."},{"line_number":1442,"context_line":"        # the mkvolume doesn\u0027t support rsize, easytier,iogrp,autoexpand."},{"line_number":1443,"context_line":"        # the grainsize and warning must with -thin."},{"line_number":1444,"context_line":"        params \u003d []"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_13386ed1","line":1441,"range":{"start_line":1441,"start_character":52,"end_line":1441,"end_character":58},"updated":"2017-10-10 11:43:24.000000000","message":"typo","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"7f665dcd66b43b4c2d0d193fbe001982ebe8244a","unresolved":false,"context_lines":[{"line_number":1438,"context_line":"        LOG.debug(\u0027Leave: _create_vdisk: volume %s.\u0027, name)"},{"line_number":1439,"context_line":""},{"line_number":1440,"context_line":"    def _get_hyperswap_volume_create_params(self, opts):"},{"line_number":1441,"context_line":"        # since we use mkvolume to create hyperswap voulme."},{"line_number":1442,"context_line":"        # the mkvolume doesn\u0027t support rsize, easytier,iogrp,autoexpand."},{"line_number":1443,"context_line":"        # the grainsize and warning must with -thin."},{"line_number":1444,"context_line":"        params \u003d []"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_e4e4a1ae","line":1441,"range":{"start_line":1441,"start_character":52,"end_line":1441,"end_character":58},"in_reply_to":"5f4e5783_13386ed1","updated":"2017-10-12 09:45:08.000000000","message":"Done","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"67ba5a5671ba7607712170c22c5af9d6a7fb43cc","unresolved":false,"context_lines":[{"line_number":1463,"context_line":"    def convert_volume_to_hyperswap(self, name, opts, state):"},{"line_number":1464,"context_line":"        name \u003d \u0027%s\u0027 % name"},{"line_number":1465,"context_line":"        if not self.is_system_topology_hyperswap(state):"},{"line_number":1466,"context_line":"            reason \u003d _(\u0027The system is blow release 7.6.0.0 or it is not \u0027"},{"line_number":1467,"context_line":"                       \u0027hyperswap topology.\u0027)"},{"line_number":1468,"context_line":"            raise exception.VolumeDriverException(reason\u003dreason)"},{"line_number":1469,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_f3495260","line":1466,"range":{"start_line":1466,"start_character":38,"end_line":1466,"end_character":42},"updated":"2017-10-10 11:43:24.000000000","message":"below","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"7f665dcd66b43b4c2d0d193fbe001982ebe8244a","unresolved":false,"context_lines":[{"line_number":1463,"context_line":"    def convert_volume_to_hyperswap(self, name, opts, state):"},{"line_number":1464,"context_line":"        name \u003d \u0027%s\u0027 % name"},{"line_number":1465,"context_line":"        if not self.is_system_topology_hyperswap(state):"},{"line_number":1466,"context_line":"            reason \u003d _(\u0027The system is blow release 7.6.0.0 or it is not \u0027"},{"line_number":1467,"context_line":"                       \u0027hyperswap topology.\u0027)"},{"line_number":1468,"context_line":"            raise exception.VolumeDriverException(reason\u003dreason)"},{"line_number":1469,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_c4df65d4","line":1466,"range":{"start_line":1466,"start_character":38,"end_line":1466,"end_character":42},"in_reply_to":"5f4e5783_f3495260","updated":"2017-10-12 09:45:08.000000000","message":"Done","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"67ba5a5671ba7607712170c22c5af9d6a7fb43cc","unresolved":false,"context_lines":[{"line_number":1487,"context_line":"    def delete_hyperswap_volume(self, volume, removehostmappings):"},{"line_number":1488,"context_line":"        \"\"\"Ensures that vdisk is not part of FC mapping and deletes it.\"\"\""},{"line_number":1489,"context_line":"        if not self.is_vdisk_defined(volume):"},{"line_number":1490,"context_line":"            LOG.info(\u0027Tried to delete non-existent volume %s.\u0027, volume)"},{"line_number":1491,"context_line":"            return"},{"line_number":1492,"context_line":"        self.ensure_vdisk_no_fc_mappings(volume, allow_snaps\u003dTrue,"},{"line_number":1493,"context_line":"                                         allow_fctgt \u003d True)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_33692abe","line":1490,"range":{"start_line":1490,"start_character":12,"end_line":1490,"end_character":71},"updated":"2017-10-10 11:43:24.000000000","message":"I think this should have \"warning\" level","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"7f665dcd66b43b4c2d0d193fbe001982ebe8244a","unresolved":false,"context_lines":[{"line_number":1487,"context_line":"    def delete_hyperswap_volume(self, volume, removehostmappings):"},{"line_number":1488,"context_line":"        \"\"\"Ensures that vdisk is not part of FC mapping and deletes it.\"\"\""},{"line_number":1489,"context_line":"        if not self.is_vdisk_defined(volume):"},{"line_number":1490,"context_line":"            LOG.info(\u0027Tried to delete non-existent volume %s.\u0027, volume)"},{"line_number":1491,"context_line":"            return"},{"line_number":1492,"context_line":"        self.ensure_vdisk_no_fc_mappings(volume, allow_snaps\u003dTrue,"},{"line_number":1493,"context_line":"                                         allow_fctgt \u003d True)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_24b2b995","line":1490,"range":{"start_line":1490,"start_character":12,"end_line":1490,"end_character":71},"in_reply_to":"5f4e5783_33692abe","updated":"2017-10-12 09:45:08.000000000","message":"Done","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"67ba5a5671ba7607712170c22c5af9d6a7fb43cc","unresolved":false,"context_lines":[{"line_number":2211,"context_line":"            if state[\u0027topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"},{"line_number":2212,"context_line":"                return True"},{"line_number":2213,"context_line":"            else:"},{"line_number":2214,"context_line":"                msg \u003d _(\u0027Create hyperswap volume failed, \u0027"},{"line_number":2215,"context_line":"                        \u0027The system topology is not hyperswap\u0027)"},{"line_number":2216,"context_line":"                LOG.error(msg)"},{"line_number":2217,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_d3b41638","line":2214,"range":{"start_line":2214,"start_character":25,"end_line":2214,"end_character":55},"updated":"2017-10-10 11:43:24.000000000","message":"Failed to create hyperswap volume,","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"7f665dcd66b43b4c2d0d193fbe001982ebe8244a","unresolved":false,"context_lines":[{"line_number":2211,"context_line":"            if state[\u0027topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"},{"line_number":2212,"context_line":"                return True"},{"line_number":2213,"context_line":"            else:"},{"line_number":2214,"context_line":"                msg \u003d _(\u0027Create hyperswap volume failed, \u0027"},{"line_number":2215,"context_line":"                        \u0027The system topology is not hyperswap\u0027)"},{"line_number":2216,"context_line":"                LOG.error(msg)"},{"line_number":2217,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_64eaf175","line":2214,"range":{"start_line":2214,"start_character":25,"end_line":2214,"end_character":55},"in_reply_to":"5f4e5783_d3b41638","updated":"2017-10-12 09:45:08.000000000","message":"Done","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"67ba5a5671ba7607712170c22c5af9d6a7fb43cc","unresolved":false,"context_lines":[{"line_number":3618,"context_line":"                LOG.error(msg)"},{"line_number":3619,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3620,"context_line":"            elif new_rep_type or old_rep_type:"},{"line_number":3621,"context_line":"                msg \u003d _(\u0027Unable to retype: it is not allowed to retype \u0027"},{"line_number":3622,"context_line":"                        \u0027between replication volume and hyperswap volume\u0027)"},{"line_number":3623,"context_line":"                LOG.error(msg)"},{"line_number":3624,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3625,"context_line":"            elif new_opts[\u0027peer_topology\u0027] \u003d\u003d old_opts[\u0027peer_topology\u0027]:"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_7398c269","line":3622,"range":{"start_line":3621,"start_character":43,"end_line":3622,"end_character":73},"updated":"2017-10-10 11:43:24.000000000","message":"retype of replicted volume to an hyperswap volume is not allowed","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"7f665dcd66b43b4c2d0d193fbe001982ebe8244a","unresolved":false,"context_lines":[{"line_number":3618,"context_line":"                LOG.error(msg)"},{"line_number":3619,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3620,"context_line":"            elif new_rep_type or old_rep_type:"},{"line_number":3621,"context_line":"                msg \u003d _(\u0027Unable to retype: it is not allowed to retype \u0027"},{"line_number":3622,"context_line":"                        \u0027between replication volume and hyperswap volume\u0027)"},{"line_number":3623,"context_line":"                LOG.error(msg)"},{"line_number":3624,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3625,"context_line":"            elif new_opts[\u0027peer_topology\u0027] \u003d\u003d old_opts[\u0027peer_topology\u0027]:"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_2404f949","line":3622,"range":{"start_line":3621,"start_character":43,"end_line":3622,"end_character":73},"in_reply_to":"5f4e5783_7398c269","updated":"2017-10-12 09:45:08.000000000","message":"Done","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"67ba5a5671ba7607712170c22c5af9d6a7fb43cc","unresolved":false,"context_lines":[{"line_number":3629,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3630,"context_line":"            elif (new_opts[\u0027peer_topology\u0027] \u003d\u003d \u0027hyperswap\u0027 and"},{"line_number":3631,"context_line":"                    self._helpers._get_vdisk_fc_mappings(volume.name)):"},{"line_number":3632,"context_line":"                # retype the normal volume to hyperswap volume will cause svc"},{"line_number":3633,"context_line":"                # crash on some build. so I disable the operation here."},{"line_number":3634,"context_line":"                msg \u003d _(\u0027Unable to retype: it is not allowed to change a \u0027"},{"line_number":3635,"context_line":"                        \u0027normal volume with snapshot to a hyperswap \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_93a57eb8","line":3632,"range":{"start_line":3632,"start_character":29,"end_line":3632,"end_character":42},"updated":"2017-10-10 11:43:24.000000000","message":"What is normal volume?","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"7f665dcd66b43b4c2d0d193fbe001982ebe8244a","unresolved":false,"context_lines":[{"line_number":3629,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3630,"context_line":"            elif (new_opts[\u0027peer_topology\u0027] \u003d\u003d \u0027hyperswap\u0027 and"},{"line_number":3631,"context_line":"                    self._helpers._get_vdisk_fc_mappings(volume.name)):"},{"line_number":3632,"context_line":"                # retype the normal volume to hyperswap volume will cause svc"},{"line_number":3633,"context_line":"                # crash on some build. so I disable the operation here."},{"line_number":3634,"context_line":"                msg \u003d _(\u0027Unable to retype: it is not allowed to change a \u0027"},{"line_number":3635,"context_line":"                        \u0027normal volume with snapshot to a hyperswap \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_e49261f6","line":3632,"range":{"start_line":3632,"start_character":29,"end_line":3632,"end_character":42},"in_reply_to":"5f4e5783_93a57eb8","updated":"2017-10-12 09:45:08.000000000","message":"Hi Isaac, normal volume in svc means a volume without mirror_copy, hyperswap or replicated. I have modified it to normal volume with snapshot here.","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3023ed8d0165bce3e56de4bffc81e8790f4430bd","unresolved":false,"context_lines":[{"line_number":2239,"context_line":"    def is_system_topology_hyperswap(self, state):"},{"line_number":2240,"context_line":"        \"\"\"Returns True if the system hyperswap topology and release\u003e7.6.\"\"\""},{"line_number":2241,"context_line":"        if state[\u0027code_level\u0027] \u003c (7, 6, 0, 0):"},{"line_number":2242,"context_line":"            msg \u003d (_(\u0027Hyperswap failure as the storage\u0027"},{"line_number":2243,"context_line":"                     \u0027code_level is %(code_level)s, below \u0027"},{"line_number":2244,"context_line":"                     \u0027the required 7.6.0.0.\u0027) %"},{"line_number":2245,"context_line":"                   {\u0027code_level\u0027: state[\u0027code_level\u0027]})"}],"source_content_type":"text/x-python","patch_set":14,"id":"1f485f77_9f2e7da3","line":2242,"range":{"start_line":2242,"start_character":18,"end_line":2242,"end_character":21},"updated":"2017-11-13 04:16:37.000000000","message":"This is only used for the logging, so it shouldn\u0027t be translated. Also move formatting as args to the logger call so the logger takes care of formatting the string.","commit_id":"97adf80f7fc3a2b2b46ebd1818aca2745e013680"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"b9d02a511d61be5da708ac0b30289a6a7b41818e","unresolved":false,"context_lines":[{"line_number":2239,"context_line":"    def is_system_topology_hyperswap(self, state):"},{"line_number":2240,"context_line":"        \"\"\"Returns True if the system hyperswap topology and release\u003e7.6.\"\"\""},{"line_number":2241,"context_line":"        if state[\u0027code_level\u0027] \u003c (7, 6, 0, 0):"},{"line_number":2242,"context_line":"            msg \u003d (_(\u0027Hyperswap failure as the storage\u0027"},{"line_number":2243,"context_line":"                     \u0027code_level is %(code_level)s, below \u0027"},{"line_number":2244,"context_line":"                     \u0027the required 7.6.0.0.\u0027) %"},{"line_number":2245,"context_line":"                   {\u0027code_level\u0027: state[\u0027code_level\u0027]})"}],"source_content_type":"text/x-python","patch_set":14,"id":"1f485f77_13b84674","line":2242,"range":{"start_line":2242,"start_character":18,"end_line":2242,"end_character":21},"in_reply_to":"1f485f77_9f2e7da3","updated":"2017-11-13 08:48:35.000000000","message":"Hi Sean, thank you very much for your comments, it is addressed in the new patch","commit_id":"97adf80f7fc3a2b2b46ebd1818aca2745e013680"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3023ed8d0165bce3e56de4bffc81e8790f4430bd","unresolved":false,"context_lines":[{"line_number":2248,"context_line":"            if state[\u0027topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"},{"line_number":2249,"context_line":"                return True"},{"line_number":2250,"context_line":"            else:"},{"line_number":2251,"context_line":"                msg \u003d _(\u0027Failed to create hyperswap volume, \u0027"},{"line_number":2252,"context_line":"                        \u0027The system topology is not hyperswap\u0027)"},{"line_number":2253,"context_line":"                LOG.error(msg)"},{"line_number":2254,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":14,"id":"1f485f77_7f2bc193","line":2251,"range":{"start_line":2251,"start_character":22,"end_line":2251,"end_character":23},"updated":"2017-11-13 04:16:37.000000000","message":"Same.","commit_id":"97adf80f7fc3a2b2b46ebd1818aca2745e013680"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"b9d02a511d61be5da708ac0b30289a6a7b41818e","unresolved":false,"context_lines":[{"line_number":2248,"context_line":"            if state[\u0027topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"},{"line_number":2249,"context_line":"                return True"},{"line_number":2250,"context_line":"            else:"},{"line_number":2251,"context_line":"                msg \u003d _(\u0027Failed to create hyperswap volume, \u0027"},{"line_number":2252,"context_line":"                        \u0027The system topology is not hyperswap\u0027)"},{"line_number":2253,"context_line":"                LOG.error(msg)"},{"line_number":2254,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":14,"id":"1f485f77_f3bc8a6a","line":2251,"range":{"start_line":2251,"start_character":22,"end_line":2251,"end_character":23},"in_reply_to":"1f485f77_7f2bc193","updated":"2017-11-13 08:48:35.000000000","message":"Done","commit_id":"97adf80f7fc3a2b2b46ebd1818aca2745e013680"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3023ed8d0165bce3e56de4bffc81e8790f4430bd","unresolved":false,"context_lines":[{"line_number":5196,"context_line":"            hyper_volume \u003d self._helpers.is_volume_hyperswap(volume.name)"},{"line_number":5197,"context_line":"            if not hyper_volume:"},{"line_number":5198,"context_line":"                LOG.error(\"Failed to update rccg: the non hyperswap volume \""},{"line_number":5199,"context_line":"                          \" of %(vol)s can\u0027t be added to hyperswap group.\","},{"line_number":5200,"context_line":"                          {\u0027vol\u0027: volume.id})"},{"line_number":5201,"context_line":"                model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"},{"line_number":5202,"context_line":"                return model_update, None, None"}],"source_content_type":"text/x-python","patch_set":14,"id":"1f485f77_ff18d181","line":5199,"range":{"start_line":5199,"start_character":27,"end_line":5199,"end_character":28},"updated":"2017-11-13 04:16:37.000000000","message":"nit:Extra space.","commit_id":"97adf80f7fc3a2b2b46ebd1818aca2745e013680"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"b9d02a511d61be5da708ac0b30289a6a7b41818e","unresolved":false,"context_lines":[{"line_number":5196,"context_line":"            hyper_volume \u003d self._helpers.is_volume_hyperswap(volume.name)"},{"line_number":5197,"context_line":"            if not hyper_volume:"},{"line_number":5198,"context_line":"                LOG.error(\"Failed to update rccg: the non hyperswap volume \""},{"line_number":5199,"context_line":"                          \" of %(vol)s can\u0027t be added to hyperswap group.\","},{"line_number":5200,"context_line":"                          {\u0027vol\u0027: volume.id})"},{"line_number":5201,"context_line":"                model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"},{"line_number":5202,"context_line":"                return model_update, None, None"}],"source_content_type":"text/x-python","patch_set":14,"id":"1f485f77_73a89a1e","line":5199,"range":{"start_line":5199,"start_character":27,"end_line":5199,"end_character":28},"in_reply_to":"1f485f77_ff18d181","updated":"2017-11-13 08:48:35.000000000","message":"Done","commit_id":"97adf80f7fc3a2b2b46ebd1818aca2745e013680"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"d7ae90d89f184883b48c12e447d7e3c1a4090d09","unresolved":false,"context_lines":[{"line_number":871,"context_line":"                             \u0027 group(s) is %(iogrp)s.\u0027)"},{"line_number":872,"context_line":"                    % {\u0027pool\u0027: pool,"},{"line_number":873,"context_line":"                       \u0027site_id\u0027: pool_data[\u0027site_id\u0027],"},{"line_number":874,"context_line":"                       \u0027site_id\u0027: pool_data[\u0027site_id\u0027],"},{"line_number":875,"context_line":"                       \u0027iogrp\u0027: opts[\u0027iogrp\u0027],"},{"line_number":876,"context_line":"                       \u0027site_iogrp\u0027: site_iogrp})"},{"line_number":877,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_8f817d4d","line":874,"range":{"start_line":874,"start_character":0,"end_line":874,"end_character":55},"updated":"2017-11-22 10:14:48.000000000","message":"Duplicate log info.","commit_id":"55b7c39dbcca44fb3714686300db59f780f30bac"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"d7ae90d89f184883b48c12e447d7e3c1a4090d09","unresolved":false,"context_lines":[{"line_number":1488,"context_line":"        LOG.debug(\u0027Leave: _create_vdisk: volume %s.\u0027, name)"},{"line_number":1489,"context_line":""},{"line_number":1490,"context_line":"    def _get_hyperswap_volume_create_params(self, opts):"},{"line_number":1491,"context_line":"        # since we use mkvolume to create hyperswap volume."},{"line_number":1492,"context_line":"        # the mkvolume doesn\u0027t support rsize, easytier,iogrp,autoexpand."},{"line_number":1493,"context_line":"        # the grainsize and warning must with -thin."},{"line_number":1494,"context_line":"        params \u003d []"}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_7ad156cd","line":1491,"range":{"start_line":1491,"start_character":0,"end_line":1491,"end_character":59},"updated":"2017-11-22 10:14:48.000000000","message":"Correct this comment information.","commit_id":"55b7c39dbcca44fb3714686300db59f780f30bac"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"d7ae90d89f184883b48c12e447d7e3c1a4090d09","unresolved":false,"context_lines":[{"line_number":2264,"context_line":"        self.ssh.migratevdisk(vdisk, dest_pool, copy_id)"},{"line_number":2265,"context_line":""},{"line_number":2266,"context_line":"    def is_system_topology_hyperswap(self, state):"},{"line_number":2267,"context_line":"        \"\"\"Returns True if the system hyperswap topology and release\u003e7.6.\"\"\""},{"line_number":2268,"context_line":"        if state[\u0027code_level\u0027] \u003c (7, 6, 0, 0):"},{"line_number":2269,"context_line":"            LOG.error(\u0027Hyperswap failure as the storage\u0027"},{"line_number":2270,"context_line":"                      \u0027code_level is %(code_level)s, below \u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_5affb233","line":2267,"range":{"start_line":2267,"start_character":1,"end_line":2267,"end_character":76},"updated":"2017-11-22 10:14:48.000000000","message":"\u003d\u003e Return True if the system version is higher than 7.6 and the system topology is hyperswap.","commit_id":"55b7c39dbcca44fb3714686300db59f780f30bac"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"d7ae90d89f184883b48c12e447d7e3c1a4090d09","unresolved":false,"context_lines":[{"line_number":2266,"context_line":"    def is_system_topology_hyperswap(self, state):"},{"line_number":2267,"context_line":"        \"\"\"Returns True if the system hyperswap topology and release\u003e7.6.\"\"\""},{"line_number":2268,"context_line":"        if state[\u0027code_level\u0027] \u003c (7, 6, 0, 0):"},{"line_number":2269,"context_line":"            LOG.error(\u0027Hyperswap failure as the storage\u0027"},{"line_number":2270,"context_line":"                      \u0027code_level is %(code_level)s, below \u0027"},{"line_number":2271,"context_line":"                      \u0027the required 7.6.0.0.\u0027,"},{"line_number":2272,"context_line":"                      {\u0027code_level\u0027: state[\u0027code_level\u0027]})"},{"line_number":2273,"context_line":"        else:"},{"line_number":2274,"context_line":"            if state[\u0027topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"},{"line_number":2275,"context_line":"                return True"}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_0f7c8db3","line":2272,"range":{"start_line":2269,"start_character":0,"end_line":2272,"end_character":58},"updated":"2017-11-22 10:14:48.000000000","message":"This should not be error info.","commit_id":"55b7c39dbcca44fb3714686300db59f780f30bac"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"d7ae90d89f184883b48c12e447d7e3c1a4090d09","unresolved":false,"context_lines":[{"line_number":2274,"context_line":"            if state[\u0027topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"},{"line_number":2275,"context_line":"                return True"},{"line_number":2276,"context_line":"            else:"},{"line_number":2277,"context_line":"                LOG.error(\u0027Hyperswap failure as the storage system \u0027"},{"line_number":2278,"context_line":"                          \u0027topology is not hyperswap.\u0027)"},{"line_number":2279,"context_line":"        return False"},{"line_number":2280,"context_line":""},{"line_number":2281,"context_line":"    def check_hyperswap_pool(self, pool, peer_pool):"}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_4f5b7553","line":2278,"range":{"start_line":2277,"start_character":0,"end_line":2278,"end_character":55},"updated":"2017-11-22 10:14:48.000000000","message":"ditto","commit_id":"55b7c39dbcca44fb3714686300db59f780f30bac"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"d7ae90d89f184883b48c12e447d7e3c1a4090d09","unresolved":false,"context_lines":[{"line_number":2287,"context_line":"            raise exception.InvalidInput("},{"line_number":2288,"context_line":"                reason\u003d_(\u0027The hyperswap peer pool %s \u0027"},{"line_number":2289,"context_line":"                         \u0027is invalid.\u0027) % peer_pool)"},{"line_number":2290,"context_line":"        # if set multi pool in cinder.conf, the customer must set pool"},{"line_number":2291,"context_line":"        # name in volume type. otherwize it will cause two same pool"},{"line_number":2292,"context_line":"        elif pool \u003d\u003d peer_pool:"},{"line_number":2293,"context_line":"            raise exception.InvalidInput("},{"line_number":2294,"context_line":"                reason\u003d_(\u0027The hyperswap volume must be configured in two \u0027"},{"line_number":2295,"context_line":"                         \u0027independent sites, the pool %(pool)s is the \u0027"},{"line_number":2296,"context_line":"                         \u0027same as peer_pool %(peer_pool)s. \u0027) %"},{"line_number":2297,"context_line":"                {\u0027pool\u0027: pool, \u0027peer_pool\u0027: peer_pool})"},{"line_number":2298,"context_line":""},{"line_number":2299,"context_line":"    def is_volume_hyperswap(self, name):"},{"line_number":2300,"context_line":"        \"\"\"Returns True if the volume rcrelationship is activeactive.\"\"\""}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_24d653f3","line":2297,"range":{"start_line":2290,"start_character":0,"end_line":2297,"end_character":55},"updated":"2017-11-22 10:14:48.000000000","message":"The pool here is single pool rather than multi pools. So the  comments is confused here. \nThe log here shows it checks the pool site, but the code checks pool name.","commit_id":"55b7c39dbcca44fb3714686300db59f780f30bac"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"d7ae90d89f184883b48c12e447d7e3c1a4090d09","unresolved":false,"context_lines":[{"line_number":2296,"context_line":"                         \u0027same as peer_pool %(peer_pool)s. \u0027) %"},{"line_number":2297,"context_line":"                {\u0027pool\u0027: pool, \u0027peer_pool\u0027: peer_pool})"},{"line_number":2298,"context_line":""},{"line_number":2299,"context_line":"    def is_volume_hyperswap(self, name):"},{"line_number":2300,"context_line":"        \"\"\"Returns True if the volume rcrelationship is activeactive.\"\"\""},{"line_number":2301,"context_line":"        is_hyper_volume \u003d False"},{"line_number":2302,"context_line":"        vol_attrs \u003d self.get_vdisk_attributes(name)"}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_84839fcc","line":2299,"range":{"start_line":2299,"start_character":34,"end_line":2299,"end_character":37},"updated":"2017-11-22 10:14:48.000000000","message":"change name to volume or vol_name is better.","commit_id":"55b7c39dbcca44fb3714686300db59f780f30bac"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"d7ae90d89f184883b48c12e447d7e3c1a4090d09","unresolved":false,"context_lines":[{"line_number":2774,"context_line":"        model_update \u003d None"},{"line_number":2775,"context_line":""},{"line_number":2776,"context_line":"        if opts[\u0027peer_topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"},{"line_number":2777,"context_line":"            LOG.debug(\u0027volume %s to be created is a hyperswap volume. The I/O \u0027"},{"line_number":2778,"context_line":"                      \u0027groups for hyperswap volume will be selected by \u0027"},{"line_number":2779,"context_line":"                      \u0027storage.\u0027, volume.name)"},{"line_number":2780,"context_line":"            if not self._helpers.is_system_topology_hyperswap(self._state):"},{"line_number":2781,"context_line":"                reason \u003d _(\u0027Create hyperswap volume failed, the system is blow\u0027"},{"line_number":2782,"context_line":"                           \u0027 release 7.6.0.0 or it is not hyperswap topology.\u0027)"}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_cf3a2597","line":2779,"range":{"start_line":2777,"start_character":1,"end_line":2779,"end_character":46},"updated":"2017-11-22 10:14:48.000000000","message":"Move this debug info into else branch.","commit_id":"55b7c39dbcca44fb3714686300db59f780f30bac"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"d7ae90d89f184883b48c12e447d7e3c1a4090d09","unresolved":false,"context_lines":[{"line_number":2967,"context_line":"        if opts[\u0027peer_topology\u0027] \u003d\u003d \u0027hyperswap\u0027:"},{"line_number":2968,"context_line":"            LOG.debug(\u0027The source volume %s to be cloned is a hyperswap \u0027"},{"line_number":2969,"context_line":"                      \u0027volume.\u0027, src_volume.name)"},{"line_number":2970,"context_line":"            # make sure the cloned volume has copied finished."},{"line_number":2971,"context_line":"            self._helpers.ensure_vdisk_no_fc_mappings(tgt_volume[\u0027name\u0027],"},{"line_number":2972,"context_line":"                                                      allow_snaps\u003dTrue,"},{"line_number":2973,"context_line":"                                                      allow_fctgt\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_3a898ec9","line":2970,"range":{"start_line":2970,"start_character":0,"end_line":2970,"end_character":62},"updated":"2017-11-22 10:14:48.000000000","message":"Correct the comment information.","commit_id":"55b7c39dbcca44fb3714686300db59f780f30bac"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"d7ae90d89f184883b48c12e447d7e3c1a4090d09","unresolved":false,"context_lines":[{"line_number":4209,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":4210,"context_line":"            elif (new_opts[\u0027peer_topology\u0027] \u003d\u003d \u0027hyperswap\u0027 and"},{"line_number":4211,"context_line":"                    self._helpers._get_vdisk_fc_mappings(volume.name)):"},{"line_number":4212,"context_line":"                # retype a normal volume with snapshot to hyperswap volume will"},{"line_number":4213,"context_line":"                # cause svc crash on some build. so I disable the operation."},{"line_number":4214,"context_line":"                msg \u003d _(\u0027Unable to retype: it is not allowed to change a \u0027"},{"line_number":4215,"context_line":"                        \u0027normal volume with snapshot to a hyperswap \u0027"},{"line_number":4216,"context_line":"                        \u0027volume.\u0027)"}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_ba06fe85","line":4213,"range":{"start_line":4212,"start_character":0,"end_line":4213,"end_character":76},"updated":"2017-11-22 10:14:48.000000000","message":"Correct this comment information.","commit_id":"55b7c39dbcca44fb3714686300db59f780f30bac"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"d7ae90d89f184883b48c12e447d7e3c1a4090d09","unresolved":false,"context_lines":[{"line_number":4521,"context_line":"                        \"be managed is not a hyperswap volume, \""},{"line_number":4522,"context_line":"                        \"mismatch with the provided hyperswap type.\")"},{"line_number":4523,"context_line":"                raise exception.ManageExistingVolumeTypeMismatch(reason\u003dmsg)"},{"line_number":4524,"context_line":"            elif hyper_volume and opts[\u0027peer_topology\u0027] !\u003d \u0027hyperswap\u0027:"},{"line_number":4525,"context_line":"                msg \u003d _(\"Failed to manage existing volume due to \""},{"line_number":4526,"context_line":"                        \"the hyperswap volume to be managed is \""},{"line_number":4527,"context_line":"                        \"mismatch with the provided non-hyperswap type.\")"},{"line_number":4528,"context_line":"                raise exception.ManageExistingVolumeTypeMismatch(reason\u003dmsg)"},{"line_number":4529,"context_line":"            resp \u003d self._helpers.lsvdiskcopy(vdisk[\u0027name\u0027])"},{"line_number":4530,"context_line":"            expected_copy_num \u003d 2 if opts[\u0027mirror_pool\u0027] else 1"},{"line_number":4531,"context_line":"            if len(resp) !\u003d expected_copy_num:"}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_9a70dade","line":4528,"range":{"start_line":4524,"start_character":0,"end_line":4528,"end_character":76},"updated":"2017-11-22 10:14:48.000000000","message":"Peer pool info also need to be checked here.","commit_id":"55b7c39dbcca44fb3714686300db59f780f30bac"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"d7ae90d89f184883b48c12e447d7e3c1a4090d09","unresolved":false,"context_lines":[{"line_number":4698,"context_line":"                opts \u003d self._get_vdisk_params(vol_type_id)"},{"line_number":4699,"context_line":"                if opts[\u0027peer_topology\u0027]:"},{"line_number":4700,"context_line":"                    # An unsupported configuration"},{"line_number":4701,"context_line":"                    LOG.error(\u0027Unable to create group: create snapshot \u0027"},{"line_number":4702,"context_line":"                              \u0027consistent group with a hyperswap volume type\u0027"},{"line_number":4703,"context_line":"                              \u0027 is not supported.\u0027)"},{"line_number":4704,"context_line":"                    model_update \u003d {\u0027status\u0027: fields.GroupStatus.ERROR}"},{"line_number":4705,"context_line":"                    break"}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_1a55aa1d","line":4702,"range":{"start_line":4701,"start_character":62,"end_line":4702,"end_character":61},"updated":"2017-11-22 10:14:48.000000000","message":"\u003d\u003e consistent snapshot group","commit_id":"55b7c39dbcca44fb3714686300db59f780f30bac"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"d7ae90d89f184883b48c12e447d7e3c1a4090d09","unresolved":false,"context_lines":[{"line_number":4748,"context_line":"                    model_update \u003d {\u0027status\u0027: fields.GroupStatus.ERROR}"},{"line_number":4749,"context_line":"                    return model_update"},{"line_number":4750,"context_line":""},{"line_number":4751,"context_line":"            # the rccg name on storwize can\u0027t be longger than 15 ."},{"line_number":4752,"context_line":"            rccg_name \u003d self._get_rccg_name(group, hyper_grp\u003dTrue)"},{"line_number":4753,"context_line":"            try:"},{"line_number":4754,"context_line":"                self._helpers.create_rccg("}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_fa07a61b","line":4751,"range":{"start_line":4751,"start_character":0,"end_line":4751,"end_character":66},"updated":"2017-11-22 10:14:48.000000000","message":"Correct the comment information.","commit_id":"55b7c39dbcca44fb3714686300db59f780f30bac"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"d7ae90d89f184883b48c12e447d7e3c1a4090d09","unresolved":false,"context_lines":[{"line_number":5224,"context_line":"        for volume in add_volumes:"},{"line_number":5225,"context_line":"            hyper_volume \u003d self._helpers.is_volume_hyperswap(volume.name)"},{"line_number":5226,"context_line":"            if not hyper_volume:"},{"line_number":5227,"context_line":"                LOG.error(\"Failed to update rccg: the non hyperswap volume\""},{"line_number":5228,"context_line":"                          \" of %(vol)s can\u0027t be added to hyperswap group.\","},{"line_number":5229,"context_line":"                          {\u0027vol\u0027: volume.id})"},{"line_number":5230,"context_line":"                model_update[\u0027status\u0027] \u003d fields.GroupStatus.ERROR"},{"line_number":5231,"context_line":"                return model_update, None, None"}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_15649be3","line":5228,"range":{"start_line":5227,"start_character":1,"end_line":5228,"end_character":55},"updated":"2017-11-22 10:14:48.000000000","message":"\u003d\u003e non hyperswap volume %(vol)s","commit_id":"55b7c39dbcca44fb3714686300db59f780f30bac"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"ead3a8da4969508aa33bb6f91d2a033c892eddf4","unresolved":false,"context_lines":[{"line_number":2801,"context_line":"            LOG.debug(\u0027Volume %s to be created is a hyperswap volume.\u0027,"},{"line_number":2802,"context_line":"                      volume.name)"},{"line_number":2803,"context_line":"            if not self._helpers.is_system_topology_hyperswap(self._state):"},{"line_number":2804,"context_line":"                reason \u003d _(\u0027Create hyperswap volume failed, the system is blow\u0027"},{"line_number":2805,"context_line":"                           \u0027 release 7.6.0.0 or it is not hyperswap topology.\u0027)"},{"line_number":2806,"context_line":"                raise exception.InvalidInput(reason\u003dreason)"},{"line_number":2807,"context_line":"            if opts[\u0027mirror_pool\u0027] or rep_type:"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf8cb3f7_6e9e7855","line":2804,"range":{"start_line":2804,"start_character":74,"end_line":2804,"end_character":78},"updated":"2017-12-25 16:13:26.000000000","message":"below","commit_id":"5706f24152000214e6b01045d55ba4896d11119f"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"c5d2e9e5eadc59d50181e451fc93ae947bb59305","unresolved":false,"context_lines":[{"line_number":2801,"context_line":"            LOG.debug(\u0027Volume %s to be created is a hyperswap volume.\u0027,"},{"line_number":2802,"context_line":"                      volume.name)"},{"line_number":2803,"context_line":"            if not self._helpers.is_system_topology_hyperswap(self._state):"},{"line_number":2804,"context_line":"                reason \u003d _(\u0027Create hyperswap volume failed, the system is blow\u0027"},{"line_number":2805,"context_line":"                           \u0027 release 7.6.0.0 or it is not hyperswap topology.\u0027)"},{"line_number":2806,"context_line":"                raise exception.InvalidInput(reason\u003dreason)"},{"line_number":2807,"context_line":"            if opts[\u0027mirror_pool\u0027] or rep_type:"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf8cb3f7_80d37938","line":2804,"range":{"start_line":2804,"start_character":74,"end_line":2804,"end_character":78},"in_reply_to":"bf8cb3f7_6e9e7855","updated":"2017-12-27 06:13:29.000000000","message":"Hi Jay, thanks a lot for your comments.It was addressed in the new patch.","commit_id":"5706f24152000214e6b01045d55ba4896d11119f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"ead3a8da4969508aa33bb6f91d2a033c892eddf4","unresolved":false,"context_lines":[{"line_number":3023,"context_line":"            msg \u003d _(\u0027_extend_volume_op: Extending a hyperswap volume is \u0027"},{"line_number":3024,"context_line":"                    \u0027not supported.\u0027)"},{"line_number":3025,"context_line":"            LOG.error(msg)"},{"line_number":3026,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3027,"context_line":""},{"line_number":3028,"context_line":"        ret \u003d self._helpers.ensure_vdisk_no_fc_mappings(volume_name,"},{"line_number":3029,"context_line":"                                                        allow_snaps\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf8cb3f7_eebb68c1","line":3026,"range":{"start_line":3026,"start_character":28,"end_line":3026,"end_character":49},"updated":"2017-12-25 16:13:26.000000000","message":"This would be better as either InvalidVolume or InvalidInput.","commit_id":"5706f24152000214e6b01045d55ba4896d11119f"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"c5d2e9e5eadc59d50181e451fc93ae947bb59305","unresolved":false,"context_lines":[{"line_number":3023,"context_line":"            msg \u003d _(\u0027_extend_volume_op: Extending a hyperswap volume is \u0027"},{"line_number":3024,"context_line":"                    \u0027not supported.\u0027)"},{"line_number":3025,"context_line":"            LOG.error(msg)"},{"line_number":3026,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":3027,"context_line":""},{"line_number":3028,"context_line":"        ret \u003d self._helpers.ensure_vdisk_no_fc_mappings(volume_name,"},{"line_number":3029,"context_line":"                                                        allow_snaps\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf8cb3f7_a0d6bd26","line":3026,"range":{"start_line":3026,"start_character":28,"end_line":3026,"end_character":49},"in_reply_to":"bf8cb3f7_eebb68c1","updated":"2017-12-27 06:13:29.000000000","message":"Hi Jay, thanks a lot for your comments, it is InvalidInput in the new patch.","commit_id":"5706f24152000214e6b01045d55ba4896d11119f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"ead3a8da4969508aa33bb6f91d2a033c892eddf4","unresolved":false,"context_lines":[{"line_number":4154,"context_line":"            msg \u003d _(\u0027migrate_volume: Migrating a hyperswap volume is \u0027"},{"line_number":4155,"context_line":"                    \u0027not supported.\u0027)"},{"line_number":4156,"context_line":"            LOG.error(msg)"},{"line_number":4157,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":4158,"context_line":""},{"line_number":4159,"context_line":"        false_ret \u003d (False, None)"},{"line_number":4160,"context_line":"        dest_pool \u003d self._helpers.can_migrate_to_host(host, self._state)"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf8cb3f7_8eb2dce5","line":4157,"range":{"start_line":4157,"start_character":28,"end_line":4157,"end_character":48},"updated":"2017-12-25 16:13:26.000000000","message":"Same comment here as above.","commit_id":"5706f24152000214e6b01045d55ba4896d11119f"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"c5d2e9e5eadc59d50181e451fc93ae947bb59305","unresolved":false,"context_lines":[{"line_number":4154,"context_line":"            msg \u003d _(\u0027migrate_volume: Migrating a hyperswap volume is \u0027"},{"line_number":4155,"context_line":"                    \u0027not supported.\u0027)"},{"line_number":4156,"context_line":"            LOG.error(msg)"},{"line_number":4157,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":4158,"context_line":""},{"line_number":4159,"context_line":"        false_ret \u003d (False, None)"},{"line_number":4160,"context_line":"        dest_pool \u003d self._helpers.can_migrate_to_host(host, self._state)"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf8cb3f7_40dd7140","line":4157,"range":{"start_line":4157,"start_character":28,"end_line":4157,"end_character":48},"in_reply_to":"bf8cb3f7_8eb2dce5","updated":"2017-12-27 06:13:29.000000000","message":"Done","commit_id":"5706f24152000214e6b01045d55ba4896d11119f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"ead3a8da4969508aa33bb6f91d2a033c892eddf4","unresolved":false,"context_lines":[{"line_number":4256,"context_line":"                     \u0027volume-copy, it is not allowed for hyperswap \u0027"},{"line_number":4257,"context_line":"                     \u0027type.\u0027) % volume.name)"},{"line_number":4258,"context_line":"            LOG.error(msg)"},{"line_number":4259,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":4260,"context_line":"        if new_rep_type or old_rep_type:"},{"line_number":4261,"context_line":"            msg \u003d _(\u0027Retype between replicated volume and hyperswap volume\u0027"},{"line_number":4262,"context_line":"                    \u0027 is not allowed.\u0027)"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf8cb3f7_aeb560cf","line":4259,"range":{"start_line":4259,"start_character":29,"end_line":4259,"end_character":49},"updated":"2017-12-25 16:13:26.000000000","message":"Same here.","commit_id":"5706f24152000214e6b01045d55ba4896d11119f"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"c5d2e9e5eadc59d50181e451fc93ae947bb59305","unresolved":false,"context_lines":[{"line_number":4256,"context_line":"                     \u0027volume-copy, it is not allowed for hyperswap \u0027"},{"line_number":4257,"context_line":"                     \u0027type.\u0027) % volume.name)"},{"line_number":4258,"context_line":"            LOG.error(msg)"},{"line_number":4259,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":4260,"context_line":"        if new_rep_type or old_rep_type:"},{"line_number":4261,"context_line":"            msg \u003d _(\u0027Retype between replicated volume and hyperswap volume\u0027"},{"line_number":4262,"context_line":"                    \u0027 is not allowed.\u0027)"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf8cb3f7_60e0b5fb","line":4259,"range":{"start_line":4259,"start_character":29,"end_line":4259,"end_character":49},"in_reply_to":"bf8cb3f7_aeb560cf","updated":"2017-12-27 06:13:29.000000000","message":"Done","commit_id":"5706f24152000214e6b01045d55ba4896d11119f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"ead3a8da4969508aa33bb6f91d2a033c892eddf4","unresolved":false,"context_lines":[{"line_number":4261,"context_line":"            msg \u003d _(\u0027Retype between replicated volume and hyperswap volume\u0027"},{"line_number":4262,"context_line":"                    \u0027 is not allowed.\u0027)"},{"line_number":4263,"context_line":"            LOG.error(msg)"},{"line_number":4264,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":4265,"context_line":"        if (old_io_grp not in"},{"line_number":4266,"context_line":"                StorwizeHelpers._get_valid_requested_io_groups("},{"line_number":4267,"context_line":"                    self._state, new_opts)):"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf8cb3f7_0ec6cc49","line":4264,"range":{"start_line":4264,"start_character":28,"end_line":4264,"end_character":49},"updated":"2017-12-25 16:13:26.000000000","message":"Same here and I think on all the subsequent exceptions.","commit_id":"5706f24152000214e6b01045d55ba4896d11119f"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"c5d2e9e5eadc59d50181e451fc93ae947bb59305","unresolved":false,"context_lines":[{"line_number":4261,"context_line":"            msg \u003d _(\u0027Retype between replicated volume and hyperswap volume\u0027"},{"line_number":4262,"context_line":"                    \u0027 is not allowed.\u0027)"},{"line_number":4263,"context_line":"            LOG.error(msg)"},{"line_number":4264,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":4265,"context_line":"        if (old_io_grp not in"},{"line_number":4266,"context_line":"                StorwizeHelpers._get_valid_requested_io_groups("},{"line_number":4267,"context_line":"                    self._state, new_opts)):"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf8cb3f7_20e2ad02","line":4264,"range":{"start_line":4264,"start_character":28,"end_line":4264,"end_character":49},"in_reply_to":"bf8cb3f7_0ec6cc49","updated":"2017-12-27 06:13:29.000000000","message":"All the VolumeDriverException in the function were InvalidInput in the new patch","commit_id":"5706f24152000214e6b01045d55ba4896d11119f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"ead3a8da4969508aa33bb6f91d2a033c892eddf4","unresolved":false,"context_lines":[{"line_number":4265,"context_line":"        if (old_io_grp not in"},{"line_number":4266,"context_line":"                StorwizeHelpers._get_valid_requested_io_groups("},{"line_number":4267,"context_line":"                    self._state, new_opts)):"},{"line_number":4268,"context_line":"            msg \u003d (_(\u0027Unable to retype: it is not allowed to change \u0027"},{"line_number":4269,"context_line":"                     \u0027hyperswap type and IO group at the same time.\u0027))"},{"line_number":4270,"context_line":"            LOG.error(msg)"},{"line_number":4271,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf8cb3f7_4eccd469","line":4268,"range":{"start_line":4268,"start_character":18,"end_line":4268,"end_character":19},"updated":"2017-12-25 16:13:26.000000000","message":"extra ()","commit_id":"5706f24152000214e6b01045d55ba4896d11119f"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"c5d2e9e5eadc59d50181e451fc93ae947bb59305","unresolved":false,"context_lines":[{"line_number":4265,"context_line":"        if (old_io_grp not in"},{"line_number":4266,"context_line":"                StorwizeHelpers._get_valid_requested_io_groups("},{"line_number":4267,"context_line":"                    self._state, new_opts)):"},{"line_number":4268,"context_line":"            msg \u003d (_(\u0027Unable to retype: it is not allowed to change \u0027"},{"line_number":4269,"context_line":"                     \u0027hyperswap type and IO group at the same time.\u0027))"},{"line_number":4270,"context_line":"            LOG.error(msg)"},{"line_number":4271,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf8cb3f7_c0f0a1cc","line":4268,"range":{"start_line":4268,"start_character":18,"end_line":4268,"end_character":19},"in_reply_to":"bf8cb3f7_4eccd469","updated":"2017-12-27 06:13:29.000000000","message":"Done","commit_id":"5706f24152000214e6b01045d55ba4896d11119f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"ead3a8da4969508aa33bb6f91d2a033c892eddf4","unresolved":false,"context_lines":[{"line_number":4607,"context_line":"                if opts[\u0027volume_topology\u0027] !\u003d \u0027hyperswap\u0027:"},{"line_number":4608,"context_line":"                    msg \u003d _(\"Failed to manage existing volume due to \""},{"line_number":4609,"context_line":"                            \"the hyperswap volume to be managed is \""},{"line_number":4610,"context_line":"                            \"mismatch with the provided non-hyperswap type.\")"},{"line_number":4611,"context_line":"                    raise exception.ManageExistingVolumeTypeMismatch("},{"line_number":4612,"context_line":"                        reason\u003dmsg)"},{"line_number":4613,"context_line":"                aux_vdisk \u003d rel_info[\u0027aux_vdisk_name\u0027]"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf8cb3f7_cedd4415","line":4610,"range":{"start_line":4610,"start_character":29,"end_line":4610,"end_character":37},"updated":"2017-12-25 16:13:26.000000000","message":"mismatched","commit_id":"5706f24152000214e6b01045d55ba4896d11119f"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"c5d2e9e5eadc59d50181e451fc93ae947bb59305","unresolved":false,"context_lines":[{"line_number":4607,"context_line":"                if opts[\u0027volume_topology\u0027] !\u003d \u0027hyperswap\u0027:"},{"line_number":4608,"context_line":"                    msg \u003d _(\"Failed to manage existing volume due to \""},{"line_number":4609,"context_line":"                            \"the hyperswap volume to be managed is \""},{"line_number":4610,"context_line":"                            \"mismatch with the provided non-hyperswap type.\")"},{"line_number":4611,"context_line":"                    raise exception.ManageExistingVolumeTypeMismatch("},{"line_number":4612,"context_line":"                        reason\u003dmsg)"},{"line_number":4613,"context_line":"                aux_vdisk \u003d rel_info[\u0027aux_vdisk_name\u0027]"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf8cb3f7_e0eb65d9","line":4610,"range":{"start_line":4610,"start_character":29,"end_line":4610,"end_character":37},"in_reply_to":"bf8cb3f7_cedd4415","updated":"2017-12-27 06:13:29.000000000","message":"Done","commit_id":"5706f24152000214e6b01045d55ba4896d11119f"}],"cinder/volume/drivers/ibm/storwize_svc/storwize_svc_fc.py":[{"author":{"_account_id":22583,"name":"Cheng Yong Zhao","email":"zhaochy@cn.ibm.com","username":"zhaochy"},"change_message_id":"b2bd9c6f7ef89af4d874b71053fba79742ba70fa","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        opts \u003d self._get_vdisk_params(volume[\u0027volume_type_id\u0027],"},{"line_number":140,"context_line":"                                      volume_metadata\u003d"},{"line_number":141,"context_line":"                                      volume.get(\u0027volume_metadata\u0027))"},{"line_number":142,"context_line":"        host_site \u003d opts[\u0027host_site\u0027]"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        # Check if a host object is defined for this host name"},{"line_number":145,"context_line":"        host_name \u003d self._helpers.get_host_from_connector(connector)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f436f4f_499b89c8","line":142,"updated":"2017-08-22 05:13:08.000000000","message":"Do we have a check if host_site is configured for non-hyperswap volume? Cuz host_site will be updated here if it happens","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"7affbf88885f8bb59a46a36f44d1989e284eb8bb","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        opts \u003d self._get_vdisk_params(volume[\u0027volume_type_id\u0027],"},{"line_number":140,"context_line":"                                      volume_metadata\u003d"},{"line_number":141,"context_line":"                                      volume.get(\u0027volume_metadata\u0027))"},{"line_number":142,"context_line":"        host_site \u003d opts[\u0027host_site\u0027]"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        # Check if a host object is defined for this host name"},{"line_number":145,"context_line":"        host_name \u003d self._helpers.get_host_from_connector(connector)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_31212aa1","line":142,"in_reply_to":"9f436f4f_499b89c8","updated":"2017-08-22 08:24:27.000000000","message":"Hi Chengyong, if host_site not configured for non-hyper volume when the host was created. it will be update, the host_site will be update in the function update_host at line152","commit_id":"90b31b6becddb80632d40837f9f0f0c9c3483f38"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"67ba5a5671ba7607712170c22c5af9d6a7fb43cc","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        LOG.debug(\u0027enter: initialize_connection: volume %(vol)s with connector\u0027"},{"line_number":138,"context_line":"                  \u0027 %(conn)s\u0027, {\u0027vol\u0027: volume[\u0027id\u0027], \u0027conn\u0027: connector})"},{"line_number":139,"context_line":"        volume_name \u003d self._get_target_vol(volume)"},{"line_number":140,"context_line":"        opts \u003d self._get_vdisk_params(volume[\u0027volume_type_id\u0027])"},{"line_number":141,"context_line":"        host_site \u003d opts[\u0027host_site\u0027]"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        # Check if a host object is defined for this host name"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_9319ff89","line":140,"range":{"start_line":140,"start_character":38,"end_line":140,"end_character":62},"updated":"2017-10-10 11:43:24.000000000","message":"volume.volume_type_id","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"7f665dcd66b43b4c2d0d193fbe001982ebe8244a","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        LOG.debug(\u0027enter: initialize_connection: volume %(vol)s with connector\u0027"},{"line_number":138,"context_line":"                  \u0027 %(conn)s\u0027, {\u0027vol\u0027: volume[\u0027id\u0027], \u0027conn\u0027: connector})"},{"line_number":139,"context_line":"        volume_name \u003d self._get_target_vol(volume)"},{"line_number":140,"context_line":"        opts \u003d self._get_vdisk_params(volume[\u0027volume_type_id\u0027])"},{"line_number":141,"context_line":"        host_site \u003d opts[\u0027host_site\u0027]"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        # Check if a host object is defined for this host name"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_04721de4","line":140,"range":{"start_line":140,"start_character":38,"end_line":140,"end_character":62},"in_reply_to":"5f4e5783_9319ff89","updated":"2017-10-12 09:45:08.000000000","message":"Hi Isaac, thank you very much for your comments, It has been addressed in the new patch","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"67ba5a5671ba7607712170c22c5af9d6a7fb43cc","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            # The hyperswap volume asked for host_site configured"},{"line_number":148,"context_line":"            if self._helpers.is_volume_hyperswap("},{"line_number":149,"context_line":"                    volume_name) and host_site is None:"},{"line_number":150,"context_line":"                msg \u003d (_(\u0027The is no host_site configured for a hyperswap\u0027"},{"line_number":151,"context_line":"                         \u0027 volume %s.\u0027) % volume_name)"},{"line_number":152,"context_line":"                LOG.error(msg)"},{"line_number":153,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_53138767","line":150,"range":{"start_line":150,"start_character":26,"end_line":150,"end_character":29},"updated":"2017-10-10 11:43:24.000000000","message":"there","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"7f665dcd66b43b4c2d0d193fbe001982ebe8244a","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            # The hyperswap volume asked for host_site configured"},{"line_number":148,"context_line":"            if self._helpers.is_volume_hyperswap("},{"line_number":149,"context_line":"                    volume_name) and host_site is None:"},{"line_number":150,"context_line":"                msg \u003d (_(\u0027The is no host_site configured for a hyperswap\u0027"},{"line_number":151,"context_line":"                         \u0027 volume %s.\u0027) % volume_name)"},{"line_number":152,"context_line":"                LOG.error(msg)"},{"line_number":153,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_c47be5bb","line":150,"range":{"start_line":150,"start_character":26,"end_line":150,"end_character":29},"in_reply_to":"5f4e5783_53138767","updated":"2017-10-12 09:45:08.000000000","message":"Done","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3023ed8d0165bce3e56de4bffc81e8790f4430bd","unresolved":false,"context_lines":[{"line_number":188,"context_line":"            elif host_info[0][\u0027site_name\u0027]:"},{"line_number":189,"context_line":"                ref_host_site \u003d host_info[0][\u0027site_name\u0027]"},{"line_number":190,"context_line":"                if host_site and host_site !\u003d ref_host_site:"},{"line_number":191,"context_line":"                    msg \u003d (_(\u0027The existing host site is %(ref_host_site)s,\u0027"},{"line_number":192,"context_line":"                             \u0027but the new host site is %(host_site)s\u0027) %"},{"line_number":193,"context_line":"                           {\u0027ref_host_site\u0027: ref_host_site,"},{"line_number":194,"context_line":"                            \u0027host_site\u0027: host_site})"}],"source_content_type":"text/x-python","patch_set":14,"id":"1f485f77_2209b22b","line":191,"range":{"start_line":191,"start_character":74,"end_line":191,"end_character":75},"updated":"2017-11-13 04:16:37.000000000","message":"Missing space.","commit_id":"97adf80f7fc3a2b2b46ebd1818aca2745e013680"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"b9d02a511d61be5da708ac0b30289a6a7b41818e","unresolved":false,"context_lines":[{"line_number":188,"context_line":"            elif host_info[0][\u0027site_name\u0027]:"},{"line_number":189,"context_line":"                ref_host_site \u003d host_info[0][\u0027site_name\u0027]"},{"line_number":190,"context_line":"                if host_site and host_site !\u003d ref_host_site:"},{"line_number":191,"context_line":"                    msg \u003d (_(\u0027The existing host site is %(ref_host_site)s,\u0027"},{"line_number":192,"context_line":"                             \u0027but the new host site is %(host_site)s\u0027) %"},{"line_number":193,"context_line":"                           {\u0027ref_host_site\u0027: ref_host_site,"},{"line_number":194,"context_line":"                            \u0027host_site\u0027: host_site})"}],"source_content_type":"text/x-python","patch_set":14,"id":"1f485f77_ce69e5be","line":191,"range":{"start_line":191,"start_character":74,"end_line":191,"end_character":75},"in_reply_to":"1f485f77_2209b22b","updated":"2017-11-13 08:48:35.000000000","message":"Done","commit_id":"97adf80f7fc3a2b2b46ebd1818aca2745e013680"}],"cinder/volume/drivers/ibm/storwize_svc/storwize_svc_iscsi.py":[{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"67ba5a5671ba7607712170c22c5af9d6a7fb43cc","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        LOG.debug(\u0027enter: initialize_connection: volume %(vol)s with connector\u0027"},{"line_number":135,"context_line":"                  \u0027 %(conn)s\u0027, {\u0027vol\u0027: volume[\u0027id\u0027], \u0027conn\u0027: connector})"},{"line_number":136,"context_line":"        volume_name \u003d self._get_target_vol(volume)"},{"line_number":137,"context_line":"        opts \u003d self._get_vdisk_params(volume[\u0027volume_type_id\u0027])"},{"line_number":138,"context_line":"        host_site \u003d opts[\u0027host_site\u0027]"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        # Check if a host object is defined for this host name"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_b3551b20","line":137,"range":{"start_line":137,"start_character":38,"end_line":137,"end_character":62},"updated":"2017-10-10 11:43:24.000000000","message":"volume.volume_type_id","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"7f665dcd66b43b4c2d0d193fbe001982ebe8244a","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        LOG.debug(\u0027enter: initialize_connection: volume %(vol)s with connector\u0027"},{"line_number":135,"context_line":"                  \u0027 %(conn)s\u0027, {\u0027vol\u0027: volume[\u0027id\u0027], \u0027conn\u0027: connector})"},{"line_number":136,"context_line":"        volume_name \u003d self._get_target_vol(volume)"},{"line_number":137,"context_line":"        opts \u003d self._get_vdisk_params(volume[\u0027volume_type_id\u0027])"},{"line_number":138,"context_line":"        host_site \u003d opts[\u0027host_site\u0027]"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        # Check if a host object is defined for this host name"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_276abbb2","line":137,"range":{"start_line":137,"start_character":38,"end_line":137,"end_character":62},"in_reply_to":"5f4e5783_b3551b20","updated":"2017-10-12 09:45:08.000000000","message":"Done","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"67ba5a5671ba7607712170c22c5af9d6a7fb43cc","unresolved":false,"context_lines":[{"line_number":145,"context_line":"            # The hyperswap volume asked for host_site configured"},{"line_number":146,"context_line":"            if self._helpers.is_volume_hyperswap("},{"line_number":147,"context_line":"                    volume_name) and host_site is None:"},{"line_number":148,"context_line":"                msg \u003d (_(\u0027The is no host_site configured for a hyperswap\u0027"},{"line_number":149,"context_line":"                         \u0027 volume %s.\u0027) % volume_name)"},{"line_number":150,"context_line":"                LOG.error(msg)"},{"line_number":151,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_93bd7f6a","line":148,"range":{"start_line":148,"start_character":26,"end_line":148,"end_character":29},"updated":"2017-10-10 11:43:24.000000000","message":"There","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"7f665dcd66b43b4c2d0d193fbe001982ebe8244a","unresolved":false,"context_lines":[{"line_number":145,"context_line":"            # The hyperswap volume asked for host_site configured"},{"line_number":146,"context_line":"            if self._helpers.is_volume_hyperswap("},{"line_number":147,"context_line":"                    volume_name) and host_site is None:"},{"line_number":148,"context_line":"                msg \u003d (_(\u0027The is no host_site configured for a hyperswap\u0027"},{"line_number":149,"context_line":"                         \u0027 volume %s.\u0027) % volume_name)"},{"line_number":150,"context_line":"                LOG.error(msg)"},{"line_number":151,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_07657fe1","line":148,"range":{"start_line":148,"start_character":26,"end_line":148,"end_character":29},"in_reply_to":"5f4e5783_93bd7f6a","updated":"2017-10-12 09:45:08.000000000","message":"Done","commit_id":"cfb5108f6faab9b418ecebfda69a75c2308801e0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3023ed8d0165bce3e56de4bffc81e8790f4430bd","unresolved":false,"context_lines":[{"line_number":187,"context_line":"            elif host_info[0][\u0027site_name\u0027]:"},{"line_number":188,"context_line":"                ref_host_site \u003d host_info[0][\u0027site_name\u0027]"},{"line_number":189,"context_line":"                if host_site and host_site !\u003d ref_host_site:"},{"line_number":190,"context_line":"                    msg \u003d (_(\u0027The existing host site is %(ref_host_site)s,\u0027"},{"line_number":191,"context_line":"                             \u0027but the new host site is %(host_site)s\u0027) %"},{"line_number":192,"context_line":"                           {\u0027ref_host_site\u0027: ref_host_site,"},{"line_number":193,"context_line":"                            \u0027host_site\u0027: host_site})"}],"source_content_type":"text/x-python","patch_set":14,"id":"1f485f77_a21c826a","line":190,"range":{"start_line":190,"start_character":74,"end_line":190,"end_character":75},"updated":"2017-11-13 04:16:37.000000000","message":"Missing space.","commit_id":"97adf80f7fc3a2b2b46ebd1818aca2745e013680"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"b9d02a511d61be5da708ac0b30289a6a7b41818e","unresolved":false,"context_lines":[{"line_number":187,"context_line":"            elif host_info[0][\u0027site_name\u0027]:"},{"line_number":188,"context_line":"                ref_host_site \u003d host_info[0][\u0027site_name\u0027]"},{"line_number":189,"context_line":"                if host_site and host_site !\u003d ref_host_site:"},{"line_number":190,"context_line":"                    msg \u003d (_(\u0027The existing host site is %(ref_host_site)s,\u0027"},{"line_number":191,"context_line":"                             \u0027but the new host site is %(host_site)s\u0027) %"},{"line_number":192,"context_line":"                           {\u0027ref_host_site\u0027: ref_host_site,"},{"line_number":193,"context_line":"                            \u0027host_site\u0027: host_site})"}],"source_content_type":"text/x-python","patch_set":14,"id":"1f485f77_4e9bb5c8","line":190,"range":{"start_line":190,"start_character":74,"end_line":190,"end_character":75},"in_reply_to":"1f485f77_a21c826a","updated":"2017-11-13 08:48:35.000000000","message":"Done","commit_id":"97adf80f7fc3a2b2b46ebd1818aca2745e013680"}],"releasenotes/notes/storwize-hyperswap-support-b830182e1058cb4f.yaml":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3023ed8d0165bce3e56de4bffc81e8790f4430bd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add hyperswap volume and group support in Storwize cinder driver"},{"line_number":4,"context_line":"    Storwize/svc versions prior to 7.6 do not support this feature."},{"line_number":5,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":14,"id":"1f485f77_8219867a","line":3,"range":{"start_line":3,"start_character":67,"end_line":3,"end_character":68},"updated":"2017-11-13 04:16:37.000000000","message":"Missing period at the end.","commit_id":"97adf80f7fc3a2b2b46ebd1818aca2745e013680"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3023ed8d0165bce3e56de4bffc81e8790f4430bd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add hyperswap volume and group support in Storwize cinder driver"},{"line_number":4,"context_line":"    Storwize/svc versions prior to 7.6 do not support this feature."},{"line_number":5,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":14,"id":"1f485f77_0227d6b5","line":3,"range":{"start_line":3,"start_character":4,"end_line":3,"end_character":7},"updated":"2017-11-13 04:16:37.000000000","message":"s/Add/Added/\n\nShould be past tense as the release notes are read after the release that includes the change.","commit_id":"97adf80f7fc3a2b2b46ebd1818aca2745e013680"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"b9d02a511d61be5da708ac0b30289a6a7b41818e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add hyperswap volume and group support in Storwize cinder driver"},{"line_number":4,"context_line":"    Storwize/svc versions prior to 7.6 do not support this feature."},{"line_number":5,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":14,"id":"1f485f77_73041a18","line":3,"range":{"start_line":3,"start_character":4,"end_line":3,"end_character":7},"in_reply_to":"1f485f77_0227d6b5","updated":"2017-11-13 08:48:35.000000000","message":"Hi Sean, thank you very much for your comment, it is addressed in the new patch.","commit_id":"97adf80f7fc3a2b2b46ebd1818aca2745e013680"},{"author":{"_account_id":11186,"name":"yixuan zhang","email":"yixuan_z@hotmail.com","username":"yixuanzhang"},"change_message_id":"b9d02a511d61be5da708ac0b30289a6a7b41818e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add hyperswap volume and group support in Storwize cinder driver"},{"line_number":4,"context_line":"    Storwize/svc versions prior to 7.6 do not support this feature."},{"line_number":5,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":14,"id":"1f485f77_4eff3501","line":3,"range":{"start_line":3,"start_character":67,"end_line":3,"end_character":68},"in_reply_to":"1f485f77_8219867a","updated":"2017-11-13 08:48:35.000000000","message":"Done","commit_id":"97adf80f7fc3a2b2b46ebd1818aca2745e013680"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"d7ae90d89f184883b48c12e447d7e3c1a4090d09","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added hyperswap volume and group support in Storwize cinder driver."},{"line_number":4,"context_line":"    Storwize/svc versions prior to 7.6 do not support this feature."},{"line_number":5,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":16,"id":"ff82abbf_8fae5d96","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":16},"updated":"2017-11-22 10:14:48.000000000","message":"svc \u003d\u003e SVC","commit_id":"55b7c39dbcca44fb3714686300db59f780f30bac"}]}
