)]}'
{"cinder/tests/unit/volume/drivers/hpe/test_hpe3par.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"c079cbb8cdeb7b9e0ba38a288a609e97fa175bfa","unresolved":false,"context_lines":[{"line_number":4821,"context_line":"            group.volume_types \u003d [self.volume_type_tiramisu]"},{"line_number":4822,"context_line":"            group.status \u003d fields.GroupStatus.DELETING"},{"line_number":4823,"context_line":""},{"line_number":4824,"context_line":"            model_update, volume_model_updates \u003d \\"},{"line_number":4825,"context_line":"                self.driver.delete_group(context.get_admin_context(),"},{"line_number":4826,"context_line":"                                         group, [self.volume])"},{"line_number":4827,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"df87a7cf_d8503ad8","line":4824,"updated":"2017-12-20 09:45:00.000000000","message":"Please, do not use \u0027\\\u0027 in tests. use \u0027(\u0027 and \u0027)\u0027 instead","commit_id":"9f3c2bc3f32edbb46171a932beab311e724b4f59"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"1b701397c214ac10022be182a4dc2ed0eb2926ba","unresolved":false,"context_lines":[{"line_number":4821,"context_line":"            group.volume_types \u003d [self.volume_type_tiramisu]"},{"line_number":4822,"context_line":"            group.status \u003d fields.GroupStatus.DELETING"},{"line_number":4823,"context_line":""},{"line_number":4824,"context_line":"            model_update, volume_model_updates \u003d \\"},{"line_number":4825,"context_line":"                self.driver.delete_group(context.get_admin_context(),"},{"line_number":4826,"context_line":"                                         group, [self.volume])"},{"line_number":4827,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"df87a7cf_8effc8ff","line":4824,"in_reply_to":"df87a7cf_d8503ad8","updated":"2017-12-20 11:13:48.000000000","message":"Thanks Ivan,\nDone","commit_id":"9f3c2bc3f32edbb46171a932beab311e724b4f59"}],"cinder/volume/drivers/hpe/hpe_3par_base.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":352,"context_line":"        common \u003d self._login(timeout\u003d30)"},{"line_number":353,"context_line":"        try:"},{"line_number":354,"context_line":"            # Update the active_backend_id in the driver and return it."},{"line_number":355,"context_line":"            active_backend_id, volume_updates, group_update_list \u003d \\"},{"line_number":356,"context_line":"                common.failover_host("},{"line_number":357,"context_line":"                    context, volumes, secondary_id, groups)"},{"line_number":358,"context_line":"            self._active_backend_id \u003d active_backend_id"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_def39de6","line":355,"range":{"start_line":355,"start_character":67,"end_line":355,"end_character":68},"updated":"2017-12-16 04:57:00.000000000","message":"Use ()","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"69a90fad1fa38cd50ff309482980b144fe290acb","unresolved":false,"context_lines":[{"line_number":352,"context_line":"        common \u003d self._login(timeout\u003d30)"},{"line_number":353,"context_line":"        try:"},{"line_number":354,"context_line":"            # Update the active_backend_id in the driver and return it."},{"line_number":355,"context_line":"            active_backend_id, volume_updates, group_update_list \u003d \\"},{"line_number":356,"context_line":"                common.failover_host("},{"line_number":357,"context_line":"                    context, volumes, secondary_id, groups)"},{"line_number":358,"context_line":"            self._active_backend_id \u003d active_backend_id"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_3a4cf0c6","line":355,"range":{"start_line":355,"start_character":67,"end_line":355,"end_character":68},"in_reply_to":"df87a7cf_def39de6","updated":"2017-12-18 13:25:59.000000000","message":"Thanks,\nDone","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"}],"cinder/volume/drivers/hpe/hpe_3par_common.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":630,"context_line":""},{"line_number":631,"context_line":"        for i, volume in enumerate(volumes):"},{"line_number":632,"context_line":"            snap_name \u003d snap_base + \"-\" + six.text_type(i)"},{"line_number":633,"context_line":"            volume_name \u003d self._get_3par_vol_name(volume.get(\u0027id\u0027))"},{"line_number":634,"context_line":"            type_info \u003d self.get_volume_settings_from_type(volume)"},{"line_number":635,"context_line":"            cpg \u003d type_info[\u0027cpg\u0027]"},{"line_number":636,"context_line":"            snapcpg \u003d type_info[\u0027snap_cpg\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_3e4de971","line":633,"range":{"start_line":633,"start_character":50,"end_line":633,"end_character":66},"updated":"2017-12-16 04:57:00.000000000","message":"Why do you change this?  volume.id is right.  volume should be an object here.","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":653,"context_line":"            self.client.addVolumeToVolumeSet(vvs_name, volume_name)"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"            volume_model_update \u003d self._get_model_update("},{"line_number":656,"context_line":"                volume.get(\u0027host\u0027), cpg, replication\u003dreplication_flag,"},{"line_number":657,"context_line":"                provider_location\u003dself.client.id)"},{"line_number":658,"context_line":""},{"line_number":659,"context_line":"            if volume_model_update is not None:"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_1e5a6529","line":656,"range":{"start_line":656,"start_character":16,"end_line":656,"end_character":34},"updated":"2017-12-16 04:57:00.000000000","message":"volume.host","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":657,"context_line":"                provider_location\u003dself.client.id)"},{"line_number":658,"context_line":""},{"line_number":659,"context_line":"            if volume_model_update is not None:"},{"line_number":660,"context_line":"                volume_model_update.update({\u0027id\u0027: volume[\u0027id\u0027]})"},{"line_number":661,"context_line":"                # Update volumes_model_update"},{"line_number":662,"context_line":"                volumes_model_update.append(volume_model_update)"},{"line_number":663,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_7e35b1d9","line":660,"range":{"start_line":660,"start_character":50,"end_line":660,"end_character":62},"updated":"2017-12-16 04:57:00.000000000","message":"volume.id","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":692,"context_line":""},{"line_number":693,"context_line":"        volume_model_updates \u003d []"},{"line_number":694,"context_line":"        for volume in volumes:"},{"line_number":695,"context_line":"            volume_update \u003d {\u0027id\u0027: volume.get(\u0027id\u0027)}"},{"line_number":696,"context_line":"            try:"},{"line_number":697,"context_line":"                self.delete_volume(volume)"},{"line_number":698,"context_line":"                volume_update[\u0027status\u0027] \u003d \u0027deleted\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_de3b9dc5","line":695,"range":{"start_line":695,"start_character":35,"end_line":695,"end_character":51},"updated":"2017-12-16 04:57:00.000000000","message":"volume.id","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":726,"context_line":"            self._stop_remote_copy_group(group)"},{"line_number":727,"context_line":""},{"line_number":728,"context_line":"        for volume in add_volumes:"},{"line_number":729,"context_line":"            volume_name \u003d self._get_3par_vol_name(volume.get(\u0027id\u0027))"},{"line_number":730,"context_line":"            vol_snap_enable \u003d self.is_volume_group_snap_type("},{"line_number":731,"context_line":"                volume.get(\u0027volume_type\u0027))"},{"line_number":732,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_3e7649a6","line":729,"range":{"start_line":729,"start_character":50,"end_line":729,"end_character":66},"updated":"2017-12-16 04:57:00.000000000","message":"volume.id","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"69a90fad1fa38cd50ff309482980b144fe290acb","unresolved":false,"context_lines":[{"line_number":726,"context_line":"            self._stop_remote_copy_group(group)"},{"line_number":727,"context_line":""},{"line_number":728,"context_line":"        for volume in add_volumes:"},{"line_number":729,"context_line":"            volume_name \u003d self._get_3par_vol_name(volume.get(\u0027id\u0027))"},{"line_number":730,"context_line":"            vol_snap_enable \u003d self.is_volume_group_snap_type("},{"line_number":731,"context_line":"                volume.get(\u0027volume_type\u0027))"},{"line_number":732,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_9aaf3c29","line":729,"range":{"start_line":729,"start_character":50,"end_line":729,"end_character":66},"in_reply_to":"df87a7cf_3e7649a6","updated":"2017-12-18 13:25:59.000000000","message":"I do understand your point.\nCurrently, we have a design of treating volume as dictionary not an object in hpe 3par unit test.\nto over come this, We need to inline hpe unit test cases file and hpe driver file to treat volume as object then only all problem will be resolved.\n\nThis we can do later.\n\ni have added TODO in hpe driver file:\n\n# TODO(kushal) : we will use volume as object when we re-write\n# the design for unit tests to use objects instead of dicts.","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"11db3248f43a7f93e4f8b2758208deefa2a943c4","unresolved":false,"context_lines":[{"line_number":726,"context_line":"            self._stop_remote_copy_group(group)"},{"line_number":727,"context_line":""},{"line_number":728,"context_line":"        for volume in add_volumes:"},{"line_number":729,"context_line":"            volume_name \u003d self._get_3par_vol_name(volume.get(\u0027id\u0027))"},{"line_number":730,"context_line":"            vol_snap_enable \u003d self.is_volume_group_snap_type("},{"line_number":731,"context_line":"                volume.get(\u0027volume_type\u0027))"},{"line_number":732,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_55715a75","line":729,"range":{"start_line":729,"start_character":50,"end_line":729,"end_character":66},"in_reply_to":"df87a7cf_9aaf3c29","updated":"2017-12-21 21:56:06.000000000","message":"Ok.","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":728,"context_line":"        for volume in add_volumes:"},{"line_number":729,"context_line":"            volume_name \u003d self._get_3par_vol_name(volume.get(\u0027id\u0027))"},{"line_number":730,"context_line":"            vol_snap_enable \u003d self.is_volume_group_snap_type("},{"line_number":731,"context_line":"                volume.get(\u0027volume_type\u0027))"},{"line_number":732,"context_line":"            try:"},{"line_number":733,"context_line":"                if vol_snap_enable:"},{"line_number":734,"context_line":"                    self._check_replication_matched(volume, group)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_5e79cd90","line":731,"range":{"start_line":731,"start_character":16,"end_line":731,"end_character":41},"updated":"2017-12-16 04:57:00.000000000","message":"volume.volume_type","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":740,"context_line":"                        # replication on 3par,so when a volume from this type"},{"line_number":741,"context_line":"                        # is added into group we need to set replication_status"},{"line_number":742,"context_line":"                        # on a volume."},{"line_number":743,"context_line":"                        update \u003d {\u0027id\u0027: volume.get(\u0027id\u0027),"},{"line_number":744,"context_line":"                                  \u0027replication_status\u0027: vol_rep_status}"},{"line_number":745,"context_line":"                        add_volume.append(update)"},{"line_number":746,"context_line":"                    self.client.addVolumeToVolumeSet(volume_set_name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_fe6f81c2","line":743,"range":{"start_line":743,"start_character":40,"end_line":743,"end_character":56},"updated":"2017-12-16 04:57:00.000000000","message":"volume.id","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":760,"context_line":"                raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":761,"context_line":""},{"line_number":762,"context_line":"        for volume in remove_volumes:"},{"line_number":763,"context_line":"            volume_name \u003d self._get_3par_vol_name(volume.get(\u0027id\u0027))"},{"line_number":764,"context_line":""},{"line_number":765,"context_line":"            if group.is_replicated:"},{"line_number":766,"context_line":"                # Remove a volume from remote copy group"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_1e7345b3","line":763,"range":{"start_line":763,"start_character":50,"end_line":763,"end_character":66},"updated":"2017-12-16 04:57:00.000000000","message":"volume.id","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":766,"context_line":"                # Remove a volume from remote copy group"},{"line_number":767,"context_line":"                self._remove_vol_from_remote_copy_group("},{"line_number":768,"context_line":"                    group, volume)"},{"line_number":769,"context_line":"                update \u003d {\u0027id\u0027: volume.get(\u0027id\u0027),"},{"line_number":770,"context_line":"                          \u0027replication_status\u0027: None}"},{"line_number":771,"context_line":"                remove_volume.append(update)"},{"line_number":772,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_be69f9be","line":769,"range":{"start_line":769,"start_character":32,"end_line":769,"end_character":48},"updated":"2017-12-16 04:57:00.000000000","message":"volume.id","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":1161,"context_line":"        rcg_name \u003d self._get_3par_rcg_name(volume[\u0027id\u0027])"},{"line_number":1162,"context_line":"        is_volume_replicated \u003d self._volume_of_replicated_type("},{"line_number":1163,"context_line":"            volume, hpe_tiramisu_check\u003dTrue)"},{"line_number":1164,"context_line":"        volume_part_of_group \u003d \\"},{"line_number":1165,"context_line":"            self._volume_of_hpe_tiramisu_type_and_part_of_group(volume)"},{"line_number":1166,"context_line":"        if volume_part_of_group:"},{"line_number":1167,"context_line":"            group \u003d volume.get(\u0027group\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_7e6371dd","line":1164,"range":{"start_line":1164,"start_character":31,"end_line":1164,"end_character":32},"updated":"2017-12-16 04:57:00.000000000","message":"Use ()","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"69a90fad1fa38cd50ff309482980b144fe290acb","unresolved":false,"context_lines":[{"line_number":1161,"context_line":"        rcg_name \u003d self._get_3par_rcg_name(volume[\u0027id\u0027])"},{"line_number":1162,"context_line":"        is_volume_replicated \u003d self._volume_of_replicated_type("},{"line_number":1163,"context_line":"            volume, hpe_tiramisu_check\u003dTrue)"},{"line_number":1164,"context_line":"        volume_part_of_group \u003d \\"},{"line_number":1165,"context_line":"            self._volume_of_hpe_tiramisu_type_and_part_of_group(volume)"},{"line_number":1166,"context_line":"        if volume_part_of_group:"},{"line_number":1167,"context_line":"            group \u003d volume.get(\u0027group\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_1acd6c30","line":1164,"range":{"start_line":1164,"start_character":31,"end_line":1164,"end_character":32},"in_reply_to":"df87a7cf_7e6371dd","updated":"2017-12-18 13:25:59.000000000","message":"Thanks,Done","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":1164,"context_line":"        volume_part_of_group \u003d \\"},{"line_number":1165,"context_line":"            self._volume_of_hpe_tiramisu_type_and_part_of_group(volume)"},{"line_number":1166,"context_line":"        if volume_part_of_group:"},{"line_number":1167,"context_line":"            group \u003d volume.get(\u0027group\u0027)"},{"line_number":1168,"context_line":"            rcg_name \u003d self._get_3par_rcg_name_of_group(group.id)"},{"line_number":1169,"context_line":"        try:"},{"line_number":1170,"context_line":"            if _convert_to_base:"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_9e5e7510","line":1167,"range":{"start_line":1167,"start_character":20,"end_line":1167,"end_character":39},"updated":"2017-12-16 04:57:00.000000000","message":"volume.group","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":1531,"context_line":"                    \u0027multiattach\u0027: False,"},{"line_number":1532,"context_line":"                    \u0027consistent_group_snapshot_enabled\u0027: True,"},{"line_number":1533,"context_line":"                    \u0027compression\u0027: compression_support,"},{"line_number":1534,"context_line":"                    \u0027group_replication_enabled\u0027: self._replication_enabled,"},{"line_number":1535,"context_line":"                    \u0027consistent_group_replication_enabled\u0027:"},{"line_number":1536,"context_line":"                        self._replication_enabled"},{"line_number":1537,"context_line":"                    }"},{"line_number":1538,"context_line":""},{"line_number":1539,"context_line":"            if remotecopy_support:"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_5e9eadb8","line":1536,"range":{"start_line":1534,"start_character":20,"end_line":1536,"end_character":49},"updated":"2017-12-16 04:57:00.000000000","message":"Are you supporting both?  How do you differentiate them?","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"69a90fad1fa38cd50ff309482980b144fe290acb","unresolved":false,"context_lines":[{"line_number":1531,"context_line":"                    \u0027multiattach\u0027: False,"},{"line_number":1532,"context_line":"                    \u0027consistent_group_snapshot_enabled\u0027: True,"},{"line_number":1533,"context_line":"                    \u0027compression\u0027: compression_support,"},{"line_number":1534,"context_line":"                    \u0027group_replication_enabled\u0027: self._replication_enabled,"},{"line_number":1535,"context_line":"                    \u0027consistent_group_replication_enabled\u0027:"},{"line_number":1536,"context_line":"                        self._replication_enabled"},{"line_number":1537,"context_line":"                    }"},{"line_number":1538,"context_line":""},{"line_number":1539,"context_line":"            if remotecopy_support:"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_7adb58ec","line":1536,"range":{"start_line":1534,"start_character":20,"end_line":1536,"end_character":49},"in_reply_to":"df87a7cf_5e9eadb8","updated":"2017-12-18 13:25:59.000000000","message":"It is my bad.\nDone the changes","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":2099,"context_line":"                consis_group_snap_type \u003d self.is_volume_group_snap_type("},{"line_number":2100,"context_line":"                    volume_type)"},{"line_number":2101,"context_line":""},{"line_number":2102,"context_line":"            cg_id \u003d volume.get(\u0027group_id\u0027, None)"},{"line_number":2103,"context_line":"            group \u003d volume.get(\u0027group\u0027, None)"},{"line_number":2104,"context_line":"            if cg_id and consis_group_snap_type:"},{"line_number":2105,"context_line":"                vvs_name \u003d self._get_3par_vvs_name(cg_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_beaed9e4","line":2102,"range":{"start_line":2102,"start_character":20,"end_line":2102,"end_character":48},"updated":"2017-12-16 04:57:00.000000000","message":"volume.group_id should work as volume should be an object here.","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":2100,"context_line":"                    volume_type)"},{"line_number":2101,"context_line":""},{"line_number":2102,"context_line":"            cg_id \u003d volume.get(\u0027group_id\u0027, None)"},{"line_number":2103,"context_line":"            group \u003d volume.get(\u0027group\u0027, None)"},{"line_number":2104,"context_line":"            if cg_id and consis_group_snap_type:"},{"line_number":2105,"context_line":"                vvs_name \u003d self._get_3par_vvs_name(cg_id)"},{"line_number":2106,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_1ea825d9","line":2103,"range":{"start_line":2103,"start_character":20,"end_line":2103,"end_character":45},"updated":"2017-12-16 04:57:00.000000000","message":"volume should be an object here.  volume.group should work.","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":3373,"context_line":"                vol_list \u003d []"},{"line_number":3374,"context_line":"                vols_obj \u003d []"},{"line_number":3375,"context_line":"                for index, vol in enumerate(volumes):"},{"line_number":3376,"context_line":"                    if vol.get(\u0027group_id\u0027) \u003d\u003d group.id:"},{"line_number":3377,"context_line":"                        vols_obj.append(vol)"},{"line_number":3378,"context_line":"                        vol_list.append(volumes[index])"},{"line_number":3379,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_fe7d416e","line":3376,"range":{"start_line":3376,"start_character":23,"end_line":3376,"end_character":42},"updated":"2017-12-16 04:57:00.000000000","message":"vol.group_id","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":3636,"context_line":"    def _volume_of_hpe_tiramisu_type(self, volume):"},{"line_number":3637,"context_line":"        hpe_tiramisu_type \u003d False"},{"line_number":3638,"context_line":"        replicated_type \u003d False"},{"line_number":3639,"context_line":"        volume_type_id \u003d volume.get(\u0027volume_type_id\u0027)"},{"line_number":3640,"context_line":"        if volume_type_id:"},{"line_number":3641,"context_line":"            volume_type \u003d self._get_volume_type(volume_type_id)"},{"line_number":3642,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_de92bd9f","line":3639,"range":{"start_line":3639,"start_character":25,"end_line":3639,"end_character":53},"updated":"2017-12-16 04:57:00.000000000","message":"volume.volume_type_id","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":3657,"context_line":"        volume_part_of_group \u003d False"},{"line_number":3658,"context_line":"        hpe_tiramisu_type \u003d self._volume_of_hpe_tiramisu_type(volume)"},{"line_number":3659,"context_line":"        if hpe_tiramisu_type:"},{"line_number":3660,"context_line":"            if volume.get(\u0027group\u0027):"},{"line_number":3661,"context_line":"                volume_part_of_group \u003d True"},{"line_number":3662,"context_line":"        return volume_part_of_group"},{"line_number":3663,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_3ee96919","line":3660,"range":{"start_line":3660,"start_character":15,"end_line":3660,"end_character":34},"updated":"2017-12-16 04:57:00.000000000","message":"volume.group","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":4078,"context_line":"                      \u0027skip status check.\u0027, group.id)"},{"line_number":4079,"context_line":""},{"line_number":4080,"context_line":"    def _get_replication_mode_from_volume(self, volume):"},{"line_number":4081,"context_line":"        volume_type \u003d self._get_volume_type(volume[\"volume_type_id\"])"},{"line_number":4082,"context_line":"        replication_mode_num \u003d \\"},{"line_number":4083,"context_line":"            self._get_replication_mode_from_volume_type(volume_type)"},{"line_number":4084,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_ded71d4f","line":4081,"range":{"start_line":4081,"start_character":44,"end_line":4081,"end_character":68},"updated":"2017-12-16 04:57:00.000000000","message":"volume.volume_type_id","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":4079,"context_line":""},{"line_number":4080,"context_line":"    def _get_replication_mode_from_volume(self, volume):"},{"line_number":4081,"context_line":"        volume_type \u003d self._get_volume_type(volume[\"volume_type_id\"])"},{"line_number":4082,"context_line":"        replication_mode_num \u003d \\"},{"line_number":4083,"context_line":"            self._get_replication_mode_from_volume_type(volume_type)"},{"line_number":4084,"context_line":""},{"line_number":4085,"context_line":"        return replication_mode_num"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_7ee61147","line":4082,"range":{"start_line":4082,"start_character":31,"end_line":4082,"end_character":32},"updated":"2017-12-16 04:57:00.000000000","message":"Use ()","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"69a90fad1fa38cd50ff309482980b144fe290acb","unresolved":false,"context_lines":[{"line_number":4079,"context_line":""},{"line_number":4080,"context_line":"    def _get_replication_mode_from_volume(self, volume):"},{"line_number":4081,"context_line":"        volume_type \u003d self._get_volume_type(volume[\"volume_type_id\"])"},{"line_number":4082,"context_line":"        replication_mode_num \u003d \\"},{"line_number":4083,"context_line":"            self._get_replication_mode_from_volume_type(volume_type)"},{"line_number":4084,"context_line":""},{"line_number":4085,"context_line":"        return replication_mode_num"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_faf0c869","line":4082,"range":{"start_line":4082,"start_character":31,"end_line":4082,"end_character":32},"in_reply_to":"df87a7cf_7ee61147","updated":"2017-12-18 13:25:59.000000000","message":"Thanks,Done","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":4098,"context_line":"        return replication_mode_num"},{"line_number":4099,"context_line":""},{"line_number":4100,"context_line":"    def _get_replication_sync_period_from_volume(self, volume):"},{"line_number":4101,"context_line":"        volume_type \u003d self._get_volume_type(volume[\"volume_type_id\"])"},{"line_number":4102,"context_line":"        replication_sync_period \u003d \\"},{"line_number":4103,"context_line":"            self._get_replication_sync_period_from_volume_type(volume_type)"},{"line_number":4104,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_3ed2c95d","line":4101,"range":{"start_line":4101,"start_character":44,"end_line":4101,"end_character":68},"updated":"2017-12-16 04:57:00.000000000","message":"volume.volume_type_id","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":4099,"context_line":""},{"line_number":4100,"context_line":"    def _get_replication_sync_period_from_volume(self, volume):"},{"line_number":4101,"context_line":"        volume_type \u003d self._get_volume_type(volume[\"volume_type_id\"])"},{"line_number":4102,"context_line":"        replication_sync_period \u003d \\"},{"line_number":4103,"context_line":"            self._get_replication_sync_period_from_volume_type(volume_type)"},{"line_number":4104,"context_line":""},{"line_number":4105,"context_line":"        return replication_sync_period"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_5ed54d42","line":4102,"range":{"start_line":4102,"start_character":34,"end_line":4102,"end_character":35},"updated":"2017-12-16 04:57:00.000000000","message":"Use ()","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"69a90fad1fa38cd50ff309482980b144fe290acb","unresolved":false,"context_lines":[{"line_number":4099,"context_line":""},{"line_number":4100,"context_line":"    def _get_replication_sync_period_from_volume(self, volume):"},{"line_number":4101,"context_line":"        volume_type \u003d self._get_volume_type(volume[\"volume_type_id\"])"},{"line_number":4102,"context_line":"        replication_sync_period \u003d \\"},{"line_number":4103,"context_line":"            self._get_replication_sync_period_from_volume_type(volume_type)"},{"line_number":4104,"context_line":""},{"line_number":4105,"context_line":"        return replication_sync_period"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_bae6c0af","line":4102,"range":{"start_line":4102,"start_character":34,"end_line":4102,"end_character":35},"in_reply_to":"df87a7cf_5ed54d42","updated":"2017-12-18 13:25:59.000000000","message":"Thanks,Done","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":4148,"context_line":""},{"line_number":4149,"context_line":"    def _remove_vol_from_remote_copy_group(self, group, volume):"},{"line_number":4150,"context_line":"        rcg_name \u003d self._get_3par_rcg_name_of_group(group.id)"},{"line_number":4151,"context_line":"        vol_name \u003d self._get_3par_vol_name(volume.get(\u0027id\u0027))"},{"line_number":4152,"context_line":""},{"line_number":4153,"context_line":"        try:"},{"line_number":4154,"context_line":"            # Delete volume from remote copy group on secondary array."}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_fecb01a2","line":4151,"range":{"start_line":4151,"start_character":43,"end_line":4151,"end_character":59},"updated":"2017-12-16 04:57:00.000000000","message":"volume.id","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":4159,"context_line":"            self._start_remote_copy_group(group)"},{"line_number":4160,"context_line":"            msg \u003d (_(\"There was an error removing a volume: %(volume)s from \""},{"line_number":4161,"context_line":"                     \"Group: %(group)s : %(err)s\") %"},{"line_number":4162,"context_line":"                   {\u0027volume\u0027: volume.get(\u0027id\u0027), \u0027group\u0027: group.id,"},{"line_number":4163,"context_line":"                    \u0027err\u0027: six.text_type(ex)})"},{"line_number":4164,"context_line":"            LOG.error(msg)"},{"line_number":4165,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_7ebff1fa","line":4162,"range":{"start_line":4162,"start_character":30,"end_line":4162,"end_character":46},"updated":"2017-12-16 04:57:00.000000000","message":"volume.id","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":4189,"context_line":"            self._start_remote_copy_group(group)"},{"line_number":4190,"context_line":"            msg \u003d (_(\"There was an error adding a volume: %(volume)s to \""},{"line_number":4191,"context_line":"                     \"Group: %(group)s : %(err)s\") %"},{"line_number":4192,"context_line":"                   {\u0027volume\u0027: volume.get(\u0027id\u0027), \u0027group\u0027: group.id,"},{"line_number":4193,"context_line":"                    \u0027err\u0027: six.text_type(ex)})"},{"line_number":4194,"context_line":"            LOG.error(msg)"},{"line_number":4195,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_9ebaf507","line":4192,"range":{"start_line":4192,"start_character":30,"end_line":4192,"end_character":46},"updated":"2017-12-16 04:57:00.000000000","message":"volume.id","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":4197,"context_line":"    def _set_rcg_sync_period(self, volume, rcg_name):"},{"line_number":4198,"context_line":"        sync_targets \u003d []"},{"line_number":4199,"context_line":"        replication_mode_num \u003d self._get_replication_mode_from_volume(volume)"},{"line_number":4200,"context_line":"        replication_sync_period \u003d \\"},{"line_number":4201,"context_line":"            self._get_replication_sync_period_from_volume(volume)"},{"line_number":4202,"context_line":"        if not (replication_mode_num \u003d\u003d self.PERIODIC):"},{"line_number":4203,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_3e3729b3","line":4200,"range":{"start_line":4200,"start_character":34,"end_line":4200,"end_character":35},"updated":"2017-12-16 04:57:00.000000000","message":"()","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"69a90fad1fa38cd50ff309482980b144fe290acb","unresolved":false,"context_lines":[{"line_number":4197,"context_line":"    def _set_rcg_sync_period(self, volume, rcg_name):"},{"line_number":4198,"context_line":"        sync_targets \u003d []"},{"line_number":4199,"context_line":"        replication_mode_num \u003d self._get_replication_mode_from_volume(volume)"},{"line_number":4200,"context_line":"        replication_sync_period \u003d \\"},{"line_number":4201,"context_line":"            self._get_replication_sync_period_from_volume(volume)"},{"line_number":4202,"context_line":"        if not (replication_mode_num \u003d\u003d self.PERIODIC):"},{"line_number":4203,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_daeb8475","line":4200,"range":{"start_line":4200,"start_character":34,"end_line":4200,"end_character":35},"in_reply_to":"df87a7cf_3e3729b3","updated":"2017-12-18 13:25:59.000000000","message":"Thanks,Done","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":4256,"context_line":"    def _add_vol_to_remote(self, volume, rcg_name):"},{"line_number":4257,"context_line":"        # Add a volume to remote copy group."},{"line_number":4258,"context_line":"        rcg_targets \u003d []"},{"line_number":4259,"context_line":"        vol_name \u003d self._get_3par_vol_name(volume.get(\u0027id\u0027))"},{"line_number":4260,"context_line":"        replication_mode_num \u003d self._get_replication_mode_from_volume(volume)"},{"line_number":4261,"context_line":"        for target in self._replication_targets:"},{"line_number":4262,"context_line":"            if target[\u0027replication_mode\u0027] \u003d\u003d replication_mode_num:"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_1e44a51a","line":4259,"range":{"start_line":4259,"start_character":43,"end_line":4259,"end_character":59},"updated":"2017-12-16 04:57:00.000000000","message":"volume.id","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":4295,"context_line":"            pass"},{"line_number":4296,"context_line":""},{"line_number":4297,"context_line":"        for volume in volumes:"},{"line_number":4298,"context_line":"            vol_name \u003d self._get_3par_vol_name(volume.get(\u0027id\u0027))"},{"line_number":4299,"context_line":"            # Delete volume from remote copy group on secondary array."},{"line_number":4300,"context_line":"            try:"},{"line_number":4301,"context_line":"                self.client.removeVolumeFromRemoteCopyGroup("}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_7e54d1ca","line":4298,"range":{"start_line":4298,"start_character":47,"end_line":4298,"end_character":63},"updated":"2017-12-16 04:57:00.000000000","message":"volume.id","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":4339,"context_line":"        rep_sync_periods \u003d []"},{"line_number":4340,"context_line":""},{"line_number":4341,"context_line":"        for volume_type in group.volume_types:"},{"line_number":4342,"context_line":"            replication_mode_num \u003d \\"},{"line_number":4343,"context_line":"                self._get_replication_mode_from_volume_type(volume_type)"},{"line_number":4344,"context_line":"            rep_modes.append(replication_mode_num)"},{"line_number":4345,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_5e630db2","line":4342,"range":{"start_line":4342,"start_character":35,"end_line":4342,"end_character":36},"updated":"2017-12-16 04:57:00.000000000","message":"()","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":4344,"context_line":"            rep_modes.append(replication_mode_num)"},{"line_number":4345,"context_line":""},{"line_number":4346,"context_line":"            if replication_mode_num \u003d\u003d self.PERIODIC:"},{"line_number":4347,"context_line":"                rep_sync_period \u003d \\"},{"line_number":4348,"context_line":"                    self._get_replication_sync_period_from_volume_type("},{"line_number":4349,"context_line":"                        volume_type)"},{"line_number":4350,"context_line":"                rep_sync_periods.append(rep_sync_period)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_fe59c1fd","line":4347,"range":{"start_line":4347,"start_character":34,"end_line":4347,"end_character":35},"updated":"2017-12-16 04:57:00.000000000","message":"()","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":4370,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":4371,"context_line":""},{"line_number":4372,"context_line":"        rcg_name \u003d self._get_3par_rcg_name_of_group(group.id)"},{"line_number":4373,"context_line":"        replication_mode_num \u003d \\"},{"line_number":4374,"context_line":"            self._get_replication_mode_from_volume_type(group.volume_types[0])"},{"line_number":4375,"context_line":""},{"line_number":4376,"context_line":"        for target in self._replication_targets:"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_be733980","line":4373,"range":{"start_line":4373,"start_character":31,"end_line":4373,"end_character":32},"updated":"2017-12-16 04:57:00.000000000","message":"()","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"69a90fad1fa38cd50ff309482980b144fe290acb","unresolved":false,"context_lines":[{"line_number":4370,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":4371,"context_line":""},{"line_number":4372,"context_line":"        rcg_name \u003d self._get_3par_rcg_name_of_group(group.id)"},{"line_number":4373,"context_line":"        replication_mode_num \u003d \\"},{"line_number":4374,"context_line":"            self._get_replication_mode_from_volume_type(group.volume_types[0])"},{"line_number":4375,"context_line":""},{"line_number":4376,"context_line":"        for target in self._replication_targets:"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_9a017c3b","line":4373,"range":{"start_line":4373,"start_character":31,"end_line":4373,"end_character":32},"in_reply_to":"df87a7cf_be733980","updated":"2017-12-18 13:25:59.000000000","message":"Thanks,Done","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":4575,"context_line":"            LOG.error(msg)"},{"line_number":4576,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":4577,"context_line":"        try:"},{"line_number":4578,"context_line":"            provider_location \u003d volumes[0].get(\u0027provider_location\u0027)"},{"line_number":4579,"context_line":"            replication_driver_data \u003d volumes[0].get(\u0027replication_driver_data\u0027)"},{"line_number":4580,"context_line":""},{"line_number":4581,"context_line":"            failover \u003d False if secondary_backend_id \u003d\u003d \u0027default\u0027 else True"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_3e05e9c2","line":4578,"range":{"start_line":4578,"start_character":32,"end_line":4578,"end_character":67},"updated":"2017-12-16 04:57:00.000000000","message":"volumes[0].provider_location","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":4576,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":4577,"context_line":"        try:"},{"line_number":4578,"context_line":"            provider_location \u003d volumes[0].get(\u0027provider_location\u0027)"},{"line_number":4579,"context_line":"            replication_driver_data \u003d volumes[0].get(\u0027replication_driver_data\u0027)"},{"line_number":4580,"context_line":""},{"line_number":4581,"context_line":"            failover \u003d False if secondary_backend_id \u003d\u003d \u0027default\u0027 else True"},{"line_number":4582,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_fe0ea1e3","line":4579,"updated":"2017-12-16 04:57:00.000000000","message":"Same","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":4626,"context_line":"        rep_data \u003d target[\u0027id\u0027]"},{"line_number":4627,"context_line":"        for vol in volumes:"},{"line_number":4628,"context_line":"            loc \u003d vol.get(\u0027provider_location\u0027)"},{"line_number":4629,"context_line":"            update \u003d {\u0027id\u0027: vol.get(\u0027id\u0027),"},{"line_number":4630,"context_line":"                      \u0027replication_status\u0027: vol_rep_status,"},{"line_number":4631,"context_line":"                      \u0027provider_location\u0027: loc,"},{"line_number":4632,"context_line":"                      \u0027replication_driver_data\u0027: rep_data}"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_1e12650a","line":4629,"range":{"start_line":4629,"start_character":28,"end_line":4629,"end_character":41},"updated":"2017-12-16 04:57:00.000000000","message":"vol.id","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7d09beb6cc4fd99619766c57729fcf3ef746ff5d","unresolved":false,"context_lines":[{"line_number":4631,"context_line":"                      \u0027provider_location\u0027: loc,"},{"line_number":4632,"context_line":"                      \u0027replication_driver_data\u0027: rep_data}"},{"line_number":4633,"context_line":"            if host:"},{"line_number":4634,"context_line":"                update \u003d {\u0027volume_id\u0027: vol.get(\u0027id\u0027), \u0027updates\u0027: update}"},{"line_number":4635,"context_line":"            vol_model_updates.append(update)"},{"line_number":4636,"context_line":"        return model_update, vol_model_updates"},{"line_number":4637,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_bef819c4","line":4634,"range":{"start_line":4634,"start_character":39,"end_line":4634,"end_character":52},"updated":"2017-12-16 04:57:00.000000000","message":"vol.id","commit_id":"11af06d0d18996b21a7a05982066f977801431a0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4ebeaa28a5a4664f7755e465556a5697f8377cdf","unresolved":false,"context_lines":[{"line_number":575,"context_line":"            self._check_replication_configuration_on_volume_types("},{"line_number":576,"context_line":"                group.volume_types)"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":"            # Check hpe3par:tiramisu flag in each volume type."},{"line_number":579,"context_line":"            self._check_tiramisu_configuration_on_volume_types("},{"line_number":580,"context_line":"                group.volume_types)"},{"line_number":581,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"df87a7cf_c06fef25","line":578,"range":{"start_line":578,"start_character":28,"end_line":578,"end_character":36},"updated":"2017-12-19 20:10:20.000000000","message":"Tiramisu is the code name we\u0027ve used within Cinder to refer to this type of replication. Not sure you really want to use that as your publicly facing way to configure this.","commit_id":"a7bd4a57cbfebfa1210a31134296b56476fe2454"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"0cb30776d00764fc3b4d4d2c71abc05a171236f2","unresolved":false,"context_lines":[{"line_number":575,"context_line":"            self._check_replication_configuration_on_volume_types("},{"line_number":576,"context_line":"                group.volume_types)"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":"            # Check hpe3par:tiramisu flag in each volume type."},{"line_number":579,"context_line":"            self._check_tiramisu_configuration_on_volume_types("},{"line_number":580,"context_line":"                group.volume_types)"},{"line_number":581,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bf8cb3f7_0cffedaa","line":578,"range":{"start_line":578,"start_character":28,"end_line":578,"end_character":36},"in_reply_to":"bf8cb3f7_81ee6686","updated":"2017-12-21 07:36:31.000000000","message":"Sean,\nFor uniformity purpose i have used like this.\nAlso, I thought it will be easy for user to know he needs to add hpe3par:tiramisu flag in extra spec of volume_type for tiramisu functionality.\n\nI may be wrong over here.\nSo,I have changed flag from \"hpe3par:tiramisu\" to hpe3par:group_replication\" for tiramisu functionality.\n\nThank you so much for your inputs.","commit_id":"a7bd4a57cbfebfa1210a31134296b56476fe2454"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"72271086ef6c1b03d283565d61df39d0d6c67109","unresolved":false,"context_lines":[{"line_number":575,"context_line":"            self._check_replication_configuration_on_volume_types("},{"line_number":576,"context_line":"                group.volume_types)"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":"            # Check hpe3par:tiramisu flag in each volume type."},{"line_number":579,"context_line":"            self._check_tiramisu_configuration_on_volume_types("},{"line_number":580,"context_line":"                group.volume_types)"},{"line_number":581,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bf8cb3f7_81ee6686","line":578,"range":{"start_line":578,"start_character":28,"end_line":578,"end_character":36},"in_reply_to":"df87a7cf_84cd71b8","updated":"2017-12-21 06:50:49.000000000","message":"OK, but none of that has anything to do with my comment of not using our internal code name for the way you identify this functionality to users.","commit_id":"a7bd4a57cbfebfa1210a31134296b56476fe2454"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"480b02cc33d5f5c8e0c428fde57266df40c1e527","unresolved":false,"context_lines":[{"line_number":575,"context_line":"            self._check_replication_configuration_on_volume_types("},{"line_number":576,"context_line":"                group.volume_types)"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":"            # Check hpe3par:tiramisu flag in each volume type."},{"line_number":579,"context_line":"            self._check_tiramisu_configuration_on_volume_types("},{"line_number":580,"context_line":"                group.volume_types)"},{"line_number":581,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"df87a7cf_84cd71b8","line":578,"range":{"start_line":578,"start_character":28,"end_line":578,"end_character":36},"in_reply_to":"df87a7cf_c06fef25","updated":"2017-12-20 06:30:06.000000000","message":"Sean ,\nHPE has remote copy group concept for replication of volumes.\nand it has a limitation that one volume can not be a part of multiple remote copy group.\nIn cheesecake we creates a remote copy group and add a volume to it.(meaning one to one relationship between remote copy group and volume)\nIn tiramisu, We have introduced one flag hpe3par:tiramisu in\nextra_spec of volume_type,which denotes group level\nreplication on 3par. which means volumes from this volume types can be grouped to single remote copy group.","commit_id":"a7bd4a57cbfebfa1210a31134296b56476fe2454"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4ebeaa28a5a4664f7755e465556a5697f8377cdf","unresolved":false,"context_lines":[{"line_number":2137,"context_line":"                    hpe_tiramisu \u003d True"},{"line_number":2138,"context_line":""},{"line_number":2139,"context_line":"            # Add volume to remote group."},{"line_number":2140,"context_line":"            if ((group is not None) and hpe_tiramisu):"},{"line_number":2141,"context_line":"                if group.is_replicated:"},{"line_number":2142,"context_line":"                    self._check_rep_status_enabled_on_group(group)"},{"line_number":2143,"context_line":"                    self._add_vol_to_remote_group(group, volume)"}],"source_content_type":"text/x-python","patch_set":5,"id":"df87a7cf_a04bcbae","line":2140,"range":{"start_line":2140,"start_character":15,"end_line":2140,"end_character":17},"updated":"2017-12-19 20:10:20.000000000","message":"All of these () are unnecessary.","commit_id":"a7bd4a57cbfebfa1210a31134296b56476fe2454"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"480b02cc33d5f5c8e0c428fde57266df40c1e527","unresolved":false,"context_lines":[{"line_number":2137,"context_line":"                    hpe_tiramisu \u003d True"},{"line_number":2138,"context_line":""},{"line_number":2139,"context_line":"            # Add volume to remote group."},{"line_number":2140,"context_line":"            if ((group is not None) and hpe_tiramisu):"},{"line_number":2141,"context_line":"                if group.is_replicated:"},{"line_number":2142,"context_line":"                    self._check_rep_status_enabled_on_group(group)"},{"line_number":2143,"context_line":"                    self._add_vol_to_remote_group(group, volume)"}],"source_content_type":"text/x-python","patch_set":5,"id":"df87a7cf_306dc431","line":2140,"range":{"start_line":2140,"start_character":15,"end_line":2140,"end_character":17},"in_reply_to":"df87a7cf_a04bcbae","updated":"2017-12-20 06:30:06.000000000","message":"Thanks,Done","commit_id":"a7bd4a57cbfebfa1210a31134296b56476fe2454"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4ebeaa28a5a4664f7755e465556a5697f8377cdf","unresolved":false,"context_lines":[{"line_number":2156,"context_line":""},{"line_number":2157,"context_line":"            if (self._volume_of_replicated_type(volume,"},{"line_number":2158,"context_line":"                                                hpe_tiramisu_check\u003dTrue)"},{"line_number":2159,"context_line":"               and (self._do_volume_replication_setup(volume))):"},{"line_number":2160,"context_line":"                replication_flag \u003d True"},{"line_number":2161,"context_line":""},{"line_number":2162,"context_line":"        except hpeexceptions.HTTPConflict:"}],"source_content_type":"text/x-python","patch_set":5,"id":"df87a7cf_80cc8735","line":2159,"range":{"start_line":2159,"start_character":19,"end_line":2159,"end_character":20},"updated":"2017-12-19 20:10:20.000000000","message":"Not needed.","commit_id":"a7bd4a57cbfebfa1210a31134296b56476fe2454"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"480b02cc33d5f5c8e0c428fde57266df40c1e527","unresolved":false,"context_lines":[{"line_number":2156,"context_line":""},{"line_number":2157,"context_line":"            if (self._volume_of_replicated_type(volume,"},{"line_number":2158,"context_line":"                                                hpe_tiramisu_check\u003dTrue)"},{"line_number":2159,"context_line":"               and (self._do_volume_replication_setup(volume))):"},{"line_number":2160,"context_line":"                replication_flag \u003d True"},{"line_number":2161,"context_line":""},{"line_number":2162,"context_line":"        except hpeexceptions.HTTPConflict:"}],"source_content_type":"text/x-python","patch_set":5,"id":"df87a7cf_506ac819","line":2159,"range":{"start_line":2159,"start_character":19,"end_line":2159,"end_character":20},"in_reply_to":"df87a7cf_80cc8735","updated":"2017-12-20 06:30:06.000000000","message":"Thanks,Done","commit_id":"a7bd4a57cbfebfa1210a31134296b56476fe2454"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4ebeaa28a5a4664f7755e465556a5697f8377cdf","unresolved":false,"context_lines":[{"line_number":2346,"context_line":"                replication_flag \u003d False"},{"line_number":2347,"context_line":"                if (self._volume_of_replicated_type(volume,"},{"line_number":2348,"context_line":"                                                    hpe_tiramisu_check\u003dTrue)"},{"line_number":2349,"context_line":"                   and (self._do_volume_replication_setup(volume))):"},{"line_number":2350,"context_line":"                    replication_flag \u003d True"},{"line_number":2351,"context_line":""},{"line_number":2352,"context_line":"                if self._volume_of_hpe_tiramisu_type(volume):"}],"source_content_type":"text/x-python","patch_set":5,"id":"df87a7cf_40d2ffd2","line":2349,"range":{"start_line":2349,"start_character":23,"end_line":2349,"end_character":24},"updated":"2017-12-19 20:10:20.000000000","message":"Not needed.","commit_id":"a7bd4a57cbfebfa1210a31134296b56476fe2454"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"480b02cc33d5f5c8e0c428fde57266df40c1e527","unresolved":false,"context_lines":[{"line_number":2346,"context_line":"                replication_flag \u003d False"},{"line_number":2347,"context_line":"                if (self._volume_of_replicated_type(volume,"},{"line_number":2348,"context_line":"                                                    hpe_tiramisu_check\u003dTrue)"},{"line_number":2349,"context_line":"                   and (self._do_volume_replication_setup(volume))):"},{"line_number":2350,"context_line":"                    replication_flag \u003d True"},{"line_number":2351,"context_line":""},{"line_number":2352,"context_line":"                if self._volume_of_hpe_tiramisu_type(volume):"}],"source_content_type":"text/x-python","patch_set":5,"id":"df87a7cf_f072fc11","line":2349,"range":{"start_line":2349,"start_character":23,"end_line":2349,"end_character":24},"in_reply_to":"df87a7cf_40d2ffd2","updated":"2017-12-20 06:30:06.000000000","message":"Thanks, Done","commit_id":"a7bd4a57cbfebfa1210a31134296b56476fe2454"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4ebeaa28a5a4664f7755e465556a5697f8377cdf","unresolved":false,"context_lines":[{"line_number":2575,"context_line":"            # v2 replication check"},{"line_number":2576,"context_line":"            if (self._volume_of_replicated_type(volume,"},{"line_number":2577,"context_line":"                                                hpe_tiramisu_check\u003dTrue)"},{"line_number":2578,"context_line":"               and (self._do_volume_replication_setup(volume))):"},{"line_number":2579,"context_line":"                model_update[\u0027replication_status\u0027] \u003d \u0027enabled\u0027"},{"line_number":2580,"context_line":"                model_update[\u0027provider_location\u0027] \u003d self.client.id"},{"line_number":2581,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"df87a7cf_a0e0ab98","line":2578,"range":{"start_line":2578,"start_character":19,"end_line":2578,"end_character":20},"updated":"2017-12-19 20:10:20.000000000","message":"Not needed.","commit_id":"a7bd4a57cbfebfa1210a31134296b56476fe2454"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"480b02cc33d5f5c8e0c428fde57266df40c1e527","unresolved":false,"context_lines":[{"line_number":2575,"context_line":"            # v2 replication check"},{"line_number":2576,"context_line":"            if (self._volume_of_replicated_type(volume,"},{"line_number":2577,"context_line":"                                                hpe_tiramisu_check\u003dTrue)"},{"line_number":2578,"context_line":"               and (self._do_volume_replication_setup(volume))):"},{"line_number":2579,"context_line":"                model_update[\u0027replication_status\u0027] \u003d \u0027enabled\u0027"},{"line_number":2580,"context_line":"                model_update[\u0027provider_location\u0027] \u003d self.client.id"},{"line_number":2581,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"df87a7cf_1070c007","line":2578,"range":{"start_line":2578,"start_character":19,"end_line":2578,"end_character":20},"in_reply_to":"df87a7cf_a0e0ab98","updated":"2017-12-20 06:30:06.000000000","message":"Thanks,Done","commit_id":"a7bd4a57cbfebfa1210a31134296b56476fe2454"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4ebeaa28a5a4664f7755e465556a5697f8377cdf","unresolved":false,"context_lines":[{"line_number":3442,"context_line":"                        {\u0027volume_id\u0027: volume[\u0027id\u0027],"},{"line_number":3443,"context_line":"                         \u0027updates\u0027: {\u0027status\u0027: \u0027error\u0027}})"},{"line_number":3444,"context_line":""},{"line_number":3445,"context_line":"        volumes[:] \u003d volumes_copy"},{"line_number":3446,"context_line":"        return target_id, volume_update_list, group_update_list"},{"line_number":3447,"context_line":""},{"line_number":3448,"context_line":"    def _replication_failback(self, volumes):"}],"source_content_type":"text/x-python","patch_set":5,"id":"df87a7cf_00015738","line":3445,"updated":"2017-12-19 20:10:20.000000000","message":"This doesn\u0027t appear to be needed.","commit_id":"a7bd4a57cbfebfa1210a31134296b56476fe2454"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"480b02cc33d5f5c8e0c428fde57266df40c1e527","unresolved":false,"context_lines":[{"line_number":3442,"context_line":"                        {\u0027volume_id\u0027: volume[\u0027id\u0027],"},{"line_number":3443,"context_line":"                         \u0027updates\u0027: {\u0027status\u0027: \u0027error\u0027}})"},{"line_number":3444,"context_line":""},{"line_number":3445,"context_line":"        volumes[:] \u003d volumes_copy"},{"line_number":3446,"context_line":"        return target_id, volume_update_list, group_update_list"},{"line_number":3447,"context_line":""},{"line_number":3448,"context_line":"    def _replication_failback(self, volumes):"}],"source_content_type":"text/x-python","patch_set":5,"id":"df87a7cf_d01fb869","line":3445,"in_reply_to":"df87a7cf_00015738","updated":"2017-12-20 06:30:06.000000000","message":"Sean, I feel it is very much needed.\nWhen i was doing functional testing of failover and failback operations of cheesecake having group volumes and volumes, i have seen incorrect updates(replication_status and status) of volumes even if volume_update_list was proper.\nAfter making volume like previous one with help of volume_copy,\nI have seen update of volumes are proper.","commit_id":"a7bd4a57cbfebfa1210a31134296b56476fe2454"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"c079cbb8cdeb7b9e0ba38a288a609e97fa175bfa","unresolved":false,"context_lines":[{"line_number":3442,"context_line":"                        {\u0027volume_id\u0027: volume[\u0027id\u0027],"},{"line_number":3443,"context_line":"                         \u0027updates\u0027: {\u0027status\u0027: \u0027error\u0027}})"},{"line_number":3444,"context_line":""},{"line_number":3445,"context_line":"        volumes[:] \u003d volumes_copy"},{"line_number":3446,"context_line":"        return target_id, volume_update_list, group_update_list"},{"line_number":3447,"context_line":""},{"line_number":3448,"context_line":"    def _replication_failback(self, volumes):"}],"source_content_type":"text/x-python","patch_set":6,"id":"df87a7cf_18f9c2c6","line":3445,"updated":"2017-12-20 09:45:00.000000000","message":"We don\u0027t need it","commit_id":"9f3c2bc3f32edbb46171a932beab311e724b4f59"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"1b701397c214ac10022be182a4dc2ed0eb2926ba","unresolved":false,"context_lines":[{"line_number":3442,"context_line":"                        {\u0027volume_id\u0027: volume[\u0027id\u0027],"},{"line_number":3443,"context_line":"                         \u0027updates\u0027: {\u0027status\u0027: \u0027error\u0027}})"},{"line_number":3444,"context_line":""},{"line_number":3445,"context_line":"        volumes[:] \u003d volumes_copy"},{"line_number":3446,"context_line":"        return target_id, volume_update_list, group_update_list"},{"line_number":3447,"context_line":""},{"line_number":3448,"context_line":"    def _replication_failback(self, volumes):"}],"source_content_type":"text/x-python","patch_set":6,"id":"df87a7cf_ae3c0c93","line":3445,"in_reply_to":"df87a7cf_18f9c2c6","updated":"2017-12-20 11:13:48.000000000","message":"Thanks,\ni have modified \u0027volumes\u0027 list in the \u0027failover_host\u0027 method\nbecause of this, updates of volumes was incorrect. this is due to python passes list param to methods by reference.\n\nHence making volumes like previous one with the help of volume_copy.\n\nThanks for discussing this point in hex chat.","commit_id":"9f3c2bc3f32edbb46171a932beab311e724b4f59"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"c079cbb8cdeb7b9e0ba38a288a609e97fa175bfa","unresolved":false,"context_lines":[{"line_number":4015,"context_line":"    def _get_3par_rcg_name_of_group(self, group_id):"},{"line_number":4016,"context_line":"        rcg_name \u003d self._encode_name(group_id)"},{"line_number":4017,"context_line":"        rcg \u003d \"rcg-%s\" % rcg_name"},{"line_number":4018,"context_line":"        return rcg[:22]"},{"line_number":4019,"context_line":""},{"line_number":4020,"context_line":"    def _get_3par_remote_rcg_name_of_group(self, group_id, provider_location):"},{"line_number":4021,"context_line":"        return self._get_3par_rcg_name_of_group(group_id) + \".r\" + ("}],"source_content_type":"text/x-python","patch_set":6,"id":"df87a7cf_b833f6aa","line":4018,"updated":"2017-12-20 09:45:00.000000000","message":"is it enough to return rgc_name here?","commit_id":"9f3c2bc3f32edbb46171a932beab311e724b4f59"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"1b701397c214ac10022be182a4dc2ed0eb2926ba","unresolved":false,"context_lines":[{"line_number":4015,"context_line":"    def _get_3par_rcg_name_of_group(self, group_id):"},{"line_number":4016,"context_line":"        rcg_name \u003d self._encode_name(group_id)"},{"line_number":4017,"context_line":"        rcg \u003d \"rcg-%s\" % rcg_name"},{"line_number":4018,"context_line":"        return rcg[:22]"},{"line_number":4019,"context_line":""},{"line_number":4020,"context_line":"    def _get_3par_remote_rcg_name_of_group(self, group_id, provider_location):"},{"line_number":4021,"context_line":"        return self._get_3par_rcg_name_of_group(group_id) + \".r\" + ("}],"source_content_type":"text/x-python","patch_set":6,"id":"df87a7cf_6e7124a8","line":4018,"in_reply_to":"df87a7cf_b833f6aa","updated":"2017-12-20 11:13:48.000000000","message":"HPE 3par only allows 22 charterers to set for \"remote copy group\" name.\nHence we are just returning 22 character.\nThanks","commit_id":"9f3c2bc3f32edbb46171a932beab311e724b4f59"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"c079cbb8cdeb7b9e0ba38a288a609e97fa175bfa","unresolved":false,"context_lines":[{"line_number":4035,"context_line":"        try:"},{"line_number":4036,"context_line":"            self.client.stopRemoteCopy(rcg_name)"},{"line_number":4037,"context_line":"        except Exception:"},{"line_number":4038,"context_line":"            pass"},{"line_number":4039,"context_line":""},{"line_number":4040,"context_line":"    def _start_remote_copy_group(self, group):"},{"line_number":4041,"context_line":"        # Start remote copy."}],"source_content_type":"text/x-python","patch_set":6,"id":"df87a7cf_7829ee34","line":4038,"updated":"2017-12-20 09:45:00.000000000","message":"Do we need any logging here?","commit_id":"9f3c2bc3f32edbb46171a932beab311e724b4f59"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"1b701397c214ac10022be182a4dc2ed0eb2926ba","unresolved":false,"context_lines":[{"line_number":4035,"context_line":"        try:"},{"line_number":4036,"context_line":"            self.client.stopRemoteCopy(rcg_name)"},{"line_number":4037,"context_line":"        except Exception:"},{"line_number":4038,"context_line":"            pass"},{"line_number":4039,"context_line":""},{"line_number":4040,"context_line":"    def _start_remote_copy_group(self, group):"},{"line_number":4041,"context_line":"        # Start remote copy."}],"source_content_type":"text/x-python","patch_set":6,"id":"df87a7cf_ce5f100d","line":4038,"in_reply_to":"df87a7cf_7829ee34","updated":"2017-12-20 11:13:48.000000000","message":"Thanks, not really needed but\ni have added debug message.","commit_id":"9f3c2bc3f32edbb46171a932beab311e724b4f59"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"11db3248f43a7f93e4f8b2758208deefa2a943c4","unresolved":false,"context_lines":[{"line_number":2245,"context_line":"            model_update[\u0027host\u0027] \u003d host_and_pool"},{"line_number":2246,"context_line":"        if replication:"},{"line_number":2247,"context_line":"            model_update[\u0027replication_status\u0027] \u003d \u0027enabled\u0027"},{"line_number":2248,"context_line":"        if replication and provider_location:"},{"line_number":2249,"context_line":"            model_update[\u0027provider_location\u0027] \u003d provider_location"},{"line_number":2250,"context_line":"        if hpe_tiramisu and provider_location:"},{"line_number":2251,"context_line":"            model_update[\u0027provider_location\u0027] \u003d provider_location"},{"line_number":2252,"context_line":"        if not model_update:"},{"line_number":2253,"context_line":"            model_update \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf8cb3f7_43d7f1ee","line":2250,"range":{"start_line":2248,"start_character":0,"end_line":2250,"end_character":46},"updated":"2017-12-21 21:56:06.000000000","message":"Can you combine these two conditions?","commit_id":"6514b0c45dda7ac89aa42c5505902173a1ac77c9"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"406d3267f07a9670f33ee945eb2ff230aec09cdf","unresolved":false,"context_lines":[{"line_number":2245,"context_line":"            model_update[\u0027host\u0027] \u003d host_and_pool"},{"line_number":2246,"context_line":"        if replication:"},{"line_number":2247,"context_line":"            model_update[\u0027replication_status\u0027] \u003d \u0027enabled\u0027"},{"line_number":2248,"context_line":"        if replication and provider_location:"},{"line_number":2249,"context_line":"            model_update[\u0027provider_location\u0027] \u003d provider_location"},{"line_number":2250,"context_line":"        if hpe_tiramisu and provider_location:"},{"line_number":2251,"context_line":"            model_update[\u0027provider_location\u0027] \u003d provider_location"},{"line_number":2252,"context_line":"        if not model_update:"},{"line_number":2253,"context_line":"            model_update \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf8cb3f7_522b3593","line":2250,"range":{"start_line":2248,"start_character":0,"end_line":2250,"end_character":46},"in_reply_to":"bf8cb3f7_43d7f1ee","updated":"2017-12-22 03:43:18.000000000","message":"Thanks,Done","commit_id":"6514b0c45dda7ac89aa42c5505902173a1ac77c9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"11db3248f43a7f93e4f8b2758208deefa2a943c4","unresolved":false,"context_lines":[{"line_number":4499,"context_line":"                raise exception.GroupNotFound(group_id\u003dgroup.id)"},{"line_number":4500,"context_line":"        except hpeexceptions.HTTPForbidden as ex:"},{"line_number":4501,"context_line":"            # The remote-copy group has already been started."},{"line_number":4502,"context_line":"            if (ex.get_code() \u003d\u003d 215):"},{"line_number":4503,"context_line":"                pass"},{"line_number":4504,"context_line":"        except Exception as ex:"},{"line_number":4505,"context_line":"            model_update.update({"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf8cb3f7_2348adca","line":4502,"range":{"start_line":4502,"start_character":15,"end_line":4502,"end_character":37},"updated":"2017-12-21 21:56:06.000000000","message":"Outer () not needed.","commit_id":"6514b0c45dda7ac89aa42c5505902173a1ac77c9"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"406d3267f07a9670f33ee945eb2ff230aec09cdf","unresolved":false,"context_lines":[{"line_number":4499,"context_line":"                raise exception.GroupNotFound(group_id\u003dgroup.id)"},{"line_number":4500,"context_line":"        except hpeexceptions.HTTPForbidden as ex:"},{"line_number":4501,"context_line":"            # The remote-copy group has already been started."},{"line_number":4502,"context_line":"            if (ex.get_code() \u003d\u003d 215):"},{"line_number":4503,"context_line":"                pass"},{"line_number":4504,"context_line":"        except Exception as ex:"},{"line_number":4505,"context_line":"            model_update.update({"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf8cb3f7_121fed6c","line":4502,"range":{"start_line":4502,"start_character":15,"end_line":4502,"end_character":37},"in_reply_to":"bf8cb3f7_2348adca","updated":"2017-12-22 03:43:18.000000000","message":"Thanks,Done","commit_id":"6514b0c45dda7ac89aa42c5505902173a1ac77c9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"11db3248f43a7f93e4f8b2758208deefa2a943c4","unresolved":false,"context_lines":[{"line_number":4506,"context_line":"                \u0027replication_status\u0027: fields.ReplicationStatus.ERROR})"},{"line_number":4507,"context_line":"            LOG.error(\"Error enabling replication on group %(group)s. \""},{"line_number":4508,"context_line":"                      \"Exception received: %(e)s.\","},{"line_number":4509,"context_line":"                      {\u0027group\u0027: group.id, \u0027e\u0027: six.text_type(ex)})"},{"line_number":4510,"context_line":""},{"line_number":4511,"context_line":"        return model_update, None"},{"line_number":4512,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bf8cb3f7_8324190f","line":4509,"range":{"start_line":4509,"start_character":47,"end_line":4509,"end_character":60},"updated":"2017-12-21 21:56:06.000000000","message":"six.text_type is not needed here as LOG will do the conversion if needed.","commit_id":"6514b0c45dda7ac89aa42c5505902173a1ac77c9"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"406d3267f07a9670f33ee945eb2ff230aec09cdf","unresolved":false,"context_lines":[{"line_number":4506,"context_line":"                \u0027replication_status\u0027: fields.ReplicationStatus.ERROR})"},{"line_number":4507,"context_line":"            LOG.error(\"Error enabling replication on group %(group)s. \""},{"line_number":4508,"context_line":"                      \"Exception received: %(e)s.\","},{"line_number":4509,"context_line":"                      {\u0027group\u0027: group.id, \u0027e\u0027: six.text_type(ex)})"},{"line_number":4510,"context_line":""},{"line_number":4511,"context_line":"        return model_update, None"},{"line_number":4512,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bf8cb3f7_b213a166","line":4509,"range":{"start_line":4509,"start_character":47,"end_line":4509,"end_character":60},"in_reply_to":"bf8cb3f7_8324190f","updated":"2017-12-22 03:43:18.000000000","message":"Thanks,Done","commit_id":"6514b0c45dda7ac89aa42c5505902173a1ac77c9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"11db3248f43a7f93e4f8b2758208deefa2a943c4","unresolved":false,"context_lines":[{"line_number":4546,"context_line":"                \u0027replication_status\u0027: fields.ReplicationStatus.ERROR})"},{"line_number":4547,"context_line":"            LOG.error(\"Error disabling replication on group %(group)s. \""},{"line_number":4548,"context_line":"                      \"Exception received: %(e)s.\","},{"line_number":4549,"context_line":"                      {\u0027group\u0027: group.id, \u0027e\u0027: six.text_type(ex)})"},{"line_number":4550,"context_line":""},{"line_number":4551,"context_line":"        return model_update, None"},{"line_number":4552,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bf8cb3f7_e37885f9","line":4549,"range":{"start_line":4549,"start_character":47,"end_line":4549,"end_character":60},"updated":"2017-12-21 21:56:06.000000000","message":"Same","commit_id":"6514b0c45dda7ac89aa42c5505902173a1ac77c9"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"406d3267f07a9670f33ee945eb2ff230aec09cdf","unresolved":false,"context_lines":[{"line_number":4546,"context_line":"                \u0027replication_status\u0027: fields.ReplicationStatus.ERROR})"},{"line_number":4547,"context_line":"            LOG.error(\"Error disabling replication on group %(group)s. \""},{"line_number":4548,"context_line":"                      \"Exception received: %(e)s.\","},{"line_number":4549,"context_line":"                      {\u0027group\u0027: group.id, \u0027e\u0027: six.text_type(ex)})"},{"line_number":4550,"context_line":""},{"line_number":4551,"context_line":"        return model_update, None"},{"line_number":4552,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bf8cb3f7_920a1d24","line":4549,"range":{"start_line":4549,"start_character":47,"end_line":4549,"end_character":60},"in_reply_to":"bf8cb3f7_e37885f9","updated":"2017-12-22 03:43:18.000000000","message":"Thanks,Done","commit_id":"6514b0c45dda7ac89aa42c5505902173a1ac77c9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"11db3248f43a7f93e4f8b2758208deefa2a943c4","unresolved":false,"context_lines":[{"line_number":4626,"context_line":"            vol_rep_status \u003d fields.ReplicationStatus.ERROR"},{"line_number":4627,"context_line":"            LOG.error(\"Error failover replication on group %(group)s. \""},{"line_number":4628,"context_line":"                      \"Exception received: %(e)s.\","},{"line_number":4629,"context_line":"                      {\u0027group\u0027: group.id, \u0027e\u0027: six.text_type(ex)})"},{"line_number":4630,"context_line":""},{"line_number":4631,"context_line":"        rep_data \u003d target[\u0027id\u0027]"},{"line_number":4632,"context_line":"        for vol in volumes:"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf8cb3f7_c38781d7","line":4629,"range":{"start_line":4629,"start_character":47,"end_line":4629,"end_character":60},"updated":"2017-12-21 21:56:06.000000000","message":"same","commit_id":"6514b0c45dda7ac89aa42c5505902173a1ac77c9"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"406d3267f07a9670f33ee945eb2ff230aec09cdf","unresolved":false,"context_lines":[{"line_number":4626,"context_line":"            vol_rep_status \u003d fields.ReplicationStatus.ERROR"},{"line_number":4627,"context_line":"            LOG.error(\"Error failover replication on group %(group)s. \""},{"line_number":4628,"context_line":"                      \"Exception received: %(e)s.\","},{"line_number":4629,"context_line":"                      {\u0027group\u0027: group.id, \u0027e\u0027: six.text_type(ex)})"},{"line_number":4630,"context_line":""},{"line_number":4631,"context_line":"        rep_data \u003d target[\u0027id\u0027]"},{"line_number":4632,"context_line":"        for vol in volumes:"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf8cb3f7_0d04b214","line":4629,"range":{"start_line":4629,"start_character":47,"end_line":4629,"end_character":60},"in_reply_to":"bf8cb3f7_c38781d7","updated":"2017-12-22 03:43:18.000000000","message":"Thanks,Done","commit_id":"6514b0c45dda7ac89aa42c5505902173a1ac77c9"}],"releasenotes/notes/hpe3par-replication-group-a18a28d18de09e95.yaml":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4ebeaa28a5a4664f7755e465556a5697f8377cdf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add consistent replication group support in HPE 3PAR cinder driver."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"df87a7cf_6031430b","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":7},"updated":"2017-12-19 20:10:20.000000000","message":"Added replication group...","commit_id":"a7bd4a57cbfebfa1210a31134296b56476fe2454"}]}
