)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"346b232f48db1649eafeaa9e156440202702dcd5","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Clean up failed clones in VMAX driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If the clone operation fails, clean up is not done properly in"},{"line_number":10,"context_line":"the VMAX driver. This patched fixed the problem."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I548d5da09cb66077f04b1c5f1aa168c5bd5cf02e"},{"line_number":13,"context_line":"Closes-Bug: #1440154"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bab921fb_e4898327","line":10,"updated":"2015-04-25 16:24:29.000000000","message":"Since you have a pep8 failure and will need to push again could you provide some more detail here as to what the fix actually was?\n\nThanks!","commit_id":"37b8d3bfcb8739eaf05b1a53ca66b0662ec9732e"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"96e1c6d22011a6701ae4005e556edae7d26311a7","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Clean up failed clones in VMAX driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If the clone operation fails, clean up is not done properly in"},{"line_number":10,"context_line":"the VMAX driver. This patched fixed the problem."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I548d5da09cb66077f04b1c5f1aa168c5bd5cf02e"},{"line_number":13,"context_line":"Closes-Bug: #1440154"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bab921fb_16b26606","line":10,"in_reply_to":"bab921fb_e4898327","updated":"2015-04-25 20:44:53.000000000","message":"Sure, I described what the fix is doing in the next patch set. Hope it explained it:).  Thanks!","commit_id":"37b8d3bfcb8739eaf05b1a53ca66b0662ec9732e"}],"cinder/tests/unit/test_emc_vmax.py":[{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"9c42c6416fc3eea3088c7f9c291e4f21b04c4994","unresolved":false,"context_lines":[{"line_number":2574,"context_line":"        emc_vmax_utils.EMCVMAXUtils,"},{"line_number":2575,"context_line":"        \u0027find_sync_sv_by_target\u0027,"},{"line_number":2576,"context_line":"        return_value\u003d(None, None))"},{"line_number":2577,"context_line":"    def test_create_clone_no_fast_bug_1440154("},{"line_number":2578,"context_line":"            self, mock_sync, mock_create_replica, mock_volume_type,"},{"line_number":2579,"context_line":"            mock_volume, mock_capacities, mock_pool, mock_meta_volume):"},{"line_number":2580,"context_line":"        self.data.test_volume[\u0027volume_name\u0027] \u003d \"vmax-1234567\""}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_c7f54fed","line":2577,"updated":"2015-04-27 06:24:53.000000000","message":"Can we change the test name ?","commit_id":"b9dab3801d66df76978b7aba000c9685d3511dbb"}],"cinder/volume/drivers/emc/emc_vmax_common.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"346b232f48db1649eafeaa9e156440202702dcd5","unresolved":false,"context_lines":[{"line_number":3738,"context_line":"                \"Clone failed on V3. Cleaning up the target volume. \""},{"line_number":3739,"context_line":"                \"Clone name: %(cloneName)s \"),"},{"line_number":3740,"context_line":"                {\u0027cloneName\u0027: cloneName})"},{"line_number":3741,"context_line":"                # Check if the copy session exists."},{"line_number":3742,"context_line":"            storageSystem \u003d targetInstance[\u0027SystemName\u0027]"},{"line_number":3743,"context_line":"            syncInstanceName \u003d self.utils.find_sync_sv_by_target("},{"line_number":3744,"context_line":"                self.conn, storageSystem, targetInstance, False)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab921fb_849be765","line":3741,"updated":"2015-04-25 16:24:29.000000000","message":"This is over indented.","commit_id":"37b8d3bfcb8739eaf05b1a53ca66b0662ec9732e"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"96e1c6d22011a6701ae4005e556edae7d26311a7","unresolved":false,"context_lines":[{"line_number":3738,"context_line":"                \"Clone failed on V3. Cleaning up the target volume. \""},{"line_number":3739,"context_line":"                \"Clone name: %(cloneName)s \"),"},{"line_number":3740,"context_line":"                {\u0027cloneName\u0027: cloneName})"},{"line_number":3741,"context_line":"                # Check if the copy session exists."},{"line_number":3742,"context_line":"            storageSystem \u003d targetInstance[\u0027SystemName\u0027]"},{"line_number":3743,"context_line":"            syncInstanceName \u003d self.utils.find_sync_sv_by_target("},{"line_number":3744,"context_line":"                self.conn, storageSystem, targetInstance, False)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab921fb_f6f5b2ec","line":3741,"in_reply_to":"bab921fb_849be765","updated":"2015-04-25 20:44:53.000000000","message":"Done","commit_id":"37b8d3bfcb8739eaf05b1a53ca66b0662ec9732e"},{"author":{"_account_id":12802,"name":"Carl Pecinovsky","email":"csky@us.ibm.com","username":"carl-sky"},"change_message_id":"106f9a771b69a4fbb7a066c2ea821027861de656","unresolved":false,"context_lines":[{"line_number":3497,"context_line":"                    storageConfigService \u003d ("},{"line_number":3498,"context_line":"                        self.utils.find_storage_configuration_service("},{"line_number":3499,"context_line":"                            self.conn, storageSystemName))"},{"line_number":3500,"context_line":"                    unboundVolumeInstance \u003d ("},{"line_number":3501,"context_line":"                        self._create_and_get_unbound_volume("},{"line_number":3502,"context_line":"                            self.conn, storageConfigService,"},{"line_number":3503,"context_line":"                            baseTargetVolumeInstance.path, volumeSizeInbits,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_517c5db4","line":3500,"updated":"2015-04-27 03:13:32.000000000","message":"What if this _create_and_get_unbound_volume() fails? Won\u0027t that leave the base volume dangling?","commit_id":"b9dab3801d66df76978b7aba000c9685d3511dbb"},{"author":{"_account_id":12802,"name":"Carl Pecinovsky","email":"csky@us.ibm.com","username":"carl-sky"},"change_message_id":"106f9a771b69a4fbb7a066c2ea821027861de656","unresolved":false,"context_lines":[{"line_number":3518,"context_line":"                            self.conn, storageSystemName))"},{"line_number":3519,"context_line":"                    compositeType \u003d self.utils.get_composite_type("},{"line_number":3520,"context_line":"                        extraSpecs[COMPOSITETYPE])"},{"line_number":3521,"context_line":"                    _rc, modifiedVolumeDict \u003d ("},{"line_number":3522,"context_line":"                        self._modify_and_get_composite_volume_instance("},{"line_number":3523,"context_line":"                            self.conn,"},{"line_number":3524,"context_line":"                            elementCompositionService,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_7156412b","line":3521,"updated":"2015-04-27 03:13:32.000000000","message":"Same question here. I think if anything fails here before the _create_v2_replica_and_delete_clone_relationship() call, then you will have a partial baseTargetVolumeInstance that needs to be cleaned up.","commit_id":"b9dab3801d66df76978b7aba000c9685d3511dbb"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5ed08c395c7ec33d81a3c028389f635129809152","unresolved":false,"context_lines":[{"line_number":3565,"context_line":"                self.conn, repServiceInstanceName, cloneName, sourceName,"},{"line_number":3566,"context_line":"                sourceInstance, targetInstance, extraSpecs)"},{"line_number":3567,"context_line":"        except Exception as exc:"},{"line_number":3568,"context_line":"            LOG.warn(_LW("},{"line_number":3569,"context_line":"                \"Clone failed. Cleaning up the target volume. \""},{"line_number":3570,"context_line":"                \"Clone name: %(cloneName)s \""},{"line_number":3571,"context_line":"                \"Source name: %(sourceName)s \"),"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_5dc35657","line":3568,"updated":"2015-04-26 14:41:30.000000000","message":"LOG.warn is deprecated, please use LOG.warning.","commit_id":"b9dab3801d66df76978b7aba000c9685d3511dbb"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"9c42c6416fc3eea3088c7f9c291e4f21b04c4994","unresolved":false,"context_lines":[{"line_number":3565,"context_line":"                self.conn, repServiceInstanceName, cloneName, sourceName,"},{"line_number":3566,"context_line":"                sourceInstance, targetInstance, extraSpecs)"},{"line_number":3567,"context_line":"        except Exception as exc:"},{"line_number":3568,"context_line":"            LOG.warn(_LW("},{"line_number":3569,"context_line":"                \"Clone failed. Cleaning up the target volume. \""},{"line_number":3570,"context_line":"                \"Clone name: %(cloneName)s \""},{"line_number":3571,"context_line":"                \"Source name: %(sourceName)s \"),"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_2739aba4","line":3568,"in_reply_to":"bab921fb_5dc35657","updated":"2015-04-27 06:24:53.000000000","message":"+1","commit_id":"b9dab3801d66df76978b7aba000c9685d3511dbb"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5ed08c395c7ec33d81a3c028389f635129809152","unresolved":false,"context_lines":[{"line_number":3568,"context_line":"            LOG.warn(_LW("},{"line_number":3569,"context_line":"                \"Clone failed. Cleaning up the target volume. \""},{"line_number":3570,"context_line":"                \"Clone name: %(cloneName)s \""},{"line_number":3571,"context_line":"                \"Source name: %(sourceName)s \"),"},{"line_number":3572,"context_line":"                {\u0027cloneName\u0027: cloneName,"},{"line_number":3573,"context_line":"                 \u0027sourceName\u0027: sourceName})"},{"line_number":3574,"context_line":"            if targetInstance is not None:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_1da83e8c","line":3571,"updated":"2015-04-26 14:41:30.000000000","message":"Extra space at the end?","commit_id":"b9dab3801d66df76978b7aba000c9685d3511dbb"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5ed08c395c7ec33d81a3c028389f635129809152","unresolved":false,"context_lines":[{"line_number":3592,"context_line":"                                            extraSpecs[FASTPOLICY],"},{"line_number":3593,"context_line":"                                            extraSpecs)"},{"line_number":3594,"context_line":"            # Re-throw the exception."},{"line_number":3595,"context_line":"            raise exc"},{"line_number":3596,"context_line":"        cloneDict \u003d self.provision.get_volume_dict_from_job("},{"line_number":3597,"context_line":"            self.conn, job[\u0027Job\u0027])"},{"line_number":3598,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_fda8ea8d","line":3595,"updated":"2015-04-26 14:41:30.000000000","message":"Should just be \"raise\" to reraise the exception.","commit_id":"b9dab3801d66df76978b7aba000c9685d3511dbb"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5ed08c395c7ec33d81a3c028389f635129809152","unresolved":false,"context_lines":[{"line_number":3734,"context_line":"                    self.conn, repServiceInstanceName, cloneName, syncType,"},{"line_number":3735,"context_line":"                    sourceInstance, extraSpecs, targetInstance))"},{"line_number":3736,"context_line":"        except Exception as exc:"},{"line_number":3737,"context_line":"            LOG.warn(_LW("},{"line_number":3738,"context_line":"                \"Clone failed on V3. Cleaning up the target volume. \""},{"line_number":3739,"context_line":"                \"Clone name: %(cloneName)s \"),"},{"line_number":3740,"context_line":"                {\u0027cloneName\u0027: cloneName})"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_9d944e43","line":3737,"updated":"2015-04-26 14:41:30.000000000","message":"/warn/warning/","commit_id":"b9dab3801d66df76978b7aba000c9685d3511dbb"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"9c42c6416fc3eea3088c7f9c291e4f21b04c4994","unresolved":false,"context_lines":[{"line_number":3734,"context_line":"                    self.conn, repServiceInstanceName, cloneName, syncType,"},{"line_number":3735,"context_line":"                    sourceInstance, extraSpecs, targetInstance))"},{"line_number":3736,"context_line":"        except Exception as exc:"},{"line_number":3737,"context_line":"            LOG.warn(_LW("},{"line_number":3738,"context_line":"                \"Clone failed on V3. Cleaning up the target volume. \""},{"line_number":3739,"context_line":"                \"Clone name: %(cloneName)s \"),"},{"line_number":3740,"context_line":"                {\u0027cloneName\u0027: cloneName})"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_073ea78b","line":3737,"in_reply_to":"bab921fb_9d944e43","updated":"2015-04-27 06:24:53.000000000","message":"+1","commit_id":"b9dab3801d66df76978b7aba000c9685d3511dbb"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5ed08c395c7ec33d81a3c028389f635129809152","unresolved":false,"context_lines":[{"line_number":3736,"context_line":"        except Exception as exc:"},{"line_number":3737,"context_line":"            LOG.warn(_LW("},{"line_number":3738,"context_line":"                \"Clone failed on V3. Cleaning up the target volume. \""},{"line_number":3739,"context_line":"                \"Clone name: %(cloneName)s \"),"},{"line_number":3740,"context_line":"                {\u0027cloneName\u0027: cloneName})"},{"line_number":3741,"context_line":"            # Check if the copy session exists."},{"line_number":3742,"context_line":"            storageSystem \u003d targetInstance[\u0027SystemName\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_7d9dfa64","line":3739,"updated":"2015-04-26 14:41:30.000000000","message":"Extra space at the end?","commit_id":"b9dab3801d66df76978b7aba000c9685d3511dbb"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5ed08c395c7ec33d81a3c028389f635129809152","unresolved":false,"context_lines":[{"line_number":3759,"context_line":"                storageConfigService, targetInstance, volumeName,"},{"line_number":3760,"context_line":"                deviceId, storageGroupName, extraSpecs)"},{"line_number":3761,"context_line":"            # Re-throw the exception."},{"line_number":3762,"context_line":"            raise exc"},{"line_number":3763,"context_line":""},{"line_number":3764,"context_line":"        cloneDict \u003d self.provisionv3.get_volume_dict_from_job("},{"line_number":3765,"context_line":"            self.conn, job[\u0027Job\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_5d9a366f","line":3762,"updated":"2015-04-26 14:41:30.000000000","message":"/raise exc/raise/","commit_id":"b9dab3801d66df76978b7aba000c9685d3511dbb"},{"author":{"_account_id":12802,"name":"Carl Pecinovsky","email":"csky@us.ibm.com","username":"carl-sky"},"change_message_id":"76e0bb1b56774f2ef5c3ab1eed6f4515718aea0d","unresolved":false,"context_lines":[{"line_number":3539,"context_line":"                                compositeType,"},{"line_number":3540,"context_line":"                                extraSpecs))"},{"line_number":3541,"context_line":"                        if modifiedVolumeDict is None:"},{"line_number":3542,"context_line":"                            exceptionMessage \u003d (_("},{"line_number":3543,"context_line":"                                \"Error appending volume %(volumename)s to \""},{"line_number":3544,"context_line":"                                \"target base volume.\")"},{"line_number":3545,"context_line":"                                % {\u0027volumename\u0027: targetVolumeName})"}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_45c53f8c","line":3542,"updated":"2015-04-30 19:22:39.000000000","message":"_ --\u003e _LE","commit_id":"2612e139562afb9605342b2435b36167de5c372e"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fe9ae5d9151708e17dd3e9916a37840f3553605f","unresolved":false,"context_lines":[{"line_number":3539,"context_line":"                                compositeType,"},{"line_number":3540,"context_line":"                                extraSpecs))"},{"line_number":3541,"context_line":"                        if modifiedVolumeDict is None:"},{"line_number":3542,"context_line":"                            exceptionMessage \u003d (_("},{"line_number":3543,"context_line":"                                \"Error appending volume %(volumename)s to \""},{"line_number":3544,"context_line":"                                \"target base volume.\")"},{"line_number":3545,"context_line":"                                % {\u0027volumename\u0027: targetVolumeName})"}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_85b0f7de","line":3542,"in_reply_to":"3acd31a7_45c53f8c","updated":"2015-04-30 19:43:31.000000000","message":"This is used for the exception, so _() is the correct decorator to use.","commit_id":"2612e139562afb9605342b2435b36167de5c372e"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"59bcafecd560502f96476140857fa6e53e842357","unresolved":false,"context_lines":[{"line_number":3539,"context_line":"                                compositeType,"},{"line_number":3540,"context_line":"                                extraSpecs))"},{"line_number":3541,"context_line":"                        if modifiedVolumeDict is None:"},{"line_number":3542,"context_line":"                            exceptionMessage \u003d (_("},{"line_number":3543,"context_line":"                                \"Error appending volume %(volumename)s to \""},{"line_number":3544,"context_line":"                                \"target base volume.\")"},{"line_number":3545,"context_line":"                                % {\u0027volumename\u0027: targetVolumeName})"}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_56ef2c87","line":3542,"in_reply_to":"3acd31a7_85b0f7de","updated":"2015-05-01 04:45:45.000000000","message":"Sean is right.  This is used for exception, so it has to be _().","commit_id":"2612e139562afb9605342b2435b36167de5c372e"},{"author":{"_account_id":12802,"name":"Carl Pecinovsky","email":"csky@us.ibm.com","username":"carl-sky"},"change_message_id":"76e0bb1b56774f2ef5c3ab1eed6f4515718aea0d","unresolved":false,"context_lines":[{"line_number":3547,"context_line":"                            raise exception.VolumeBackendAPIException("},{"line_number":3548,"context_line":"                                data\u003dexceptionMessage)"},{"line_number":3549,"context_line":"                    except Exception:"},{"line_number":3550,"context_line":"                        exceptionMessage \u003d (_("},{"line_number":3551,"context_line":"                            \"Exception appending meta volume to target volume \""},{"line_number":3552,"context_line":"                            \"%(volumename)s.\")"},{"line_number":3553,"context_line":"                            % {\u0027volumename\u0027: baseVolumeName})"}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_05bf47fc","line":3550,"updated":"2015-04-30 19:22:39.000000000","message":"_ --\u003e _LE","commit_id":"2612e139562afb9605342b2435b36167de5c372e"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fe9ae5d9151708e17dd3e9916a37840f3553605f","unresolved":false,"context_lines":[{"line_number":3547,"context_line":"                            raise exception.VolumeBackendAPIException("},{"line_number":3548,"context_line":"                                data\u003dexceptionMessage)"},{"line_number":3549,"context_line":"                    except Exception:"},{"line_number":3550,"context_line":"                        exceptionMessage \u003d (_("},{"line_number":3551,"context_line":"                            \"Exception appending meta volume to target volume \""},{"line_number":3552,"context_line":"                            \"%(volumename)s.\")"},{"line_number":3553,"context_line":"                            % {\u0027volumename\u0027: baseVolumeName})"}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_85359747","line":3550,"in_reply_to":"3acd31a7_05bf47fc","updated":"2015-04-30 19:43:31.000000000","message":"Here it is only used for the logging, so Carl is correct that it should use _LE().\n\nAlso, since it is only used for logging, please get rid of the temporary variable and just place this directly in the LOG call.\nChange LOG.error to LOG.exception so the exception details get captured in the log.\nChange the % formatting to use , so the string formatting arguments are passed in to the logger. Then the logger will handle the actual string formatting if and when needed.","commit_id":"2612e139562afb9605342b2435b36167de5c372e"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"59bcafecd560502f96476140857fa6e53e842357","unresolved":false,"context_lines":[{"line_number":3547,"context_line":"                            raise exception.VolumeBackendAPIException("},{"line_number":3548,"context_line":"                                data\u003dexceptionMessage)"},{"line_number":3549,"context_line":"                    except Exception:"},{"line_number":3550,"context_line":"                        exceptionMessage \u003d (_("},{"line_number":3551,"context_line":"                            \"Exception appending meta volume to target volume \""},{"line_number":3552,"context_line":"                            \"%(volumename)s.\")"},{"line_number":3553,"context_line":"                            % {\u0027volumename\u0027: baseVolumeName})"}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_d6033c41","line":3550,"in_reply_to":"3acd31a7_85359747","updated":"2015-05-01 04:45:45.000000000","message":"We\u0027re going to change \"raise\" to \"raise exception.VolumeBackendAPIException\" below. So _() should stay.","commit_id":"2612e139562afb9605342b2435b36167de5c372e"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fe9ae5d9151708e17dd3e9916a37840f3553605f","unresolved":false,"context_lines":[{"line_number":3560,"context_line":"                            storageConfigService, baseTargetVolumeInstance,"},{"line_number":3561,"context_line":"                            extraSpecs)"},{"line_number":3562,"context_line":""},{"line_number":3563,"context_line":"                        raise"},{"line_number":3564,"context_line":""},{"line_number":3565,"context_line":"            LOG.debug(\"Create V2 replica for meta members of different sizes.\")"},{"line_number":3566,"context_line":"            return self._create_v2_replica_and_delete_clone_relationship("}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_25d923f4","line":3563,"updated":"2015-04-30 19:43:31.000000000","message":"Not sure we want to just raise here. The previous behavior was that a VolumeBackendAPIException is raised. Since this exception handling block catches any type of Exception we could end up raising an unexpected type.","commit_id":"2612e139562afb9605342b2435b36167de5c372e"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"59bcafecd560502f96476140857fa6e53e842357","unresolved":false,"context_lines":[{"line_number":3560,"context_line":"                            storageConfigService, baseTargetVolumeInstance,"},{"line_number":3561,"context_line":"                            extraSpecs)"},{"line_number":3562,"context_line":""},{"line_number":3563,"context_line":"                        raise"},{"line_number":3564,"context_line":""},{"line_number":3565,"context_line":"            LOG.debug(\"Create V2 replica for meta members of different sizes.\")"},{"line_number":3566,"context_line":"            return self._create_v2_replica_and_delete_clone_relationship("}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_16e9b480","line":3563,"in_reply_to":"3acd31a7_25d923f4","updated":"2015-05-01 04:45:45.000000000","message":"Hmm, I agree it is better to keep the original VolumeBackendAPIException here.","commit_id":"2612e139562afb9605342b2435b36167de5c372e"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fe9ae5d9151708e17dd3e9916a37840f3553605f","unresolved":false,"context_lines":[{"line_number":3616,"context_line":"                    storageConfigService, targetInstance, extraSpecs)"},{"line_number":3617,"context_line":""},{"line_number":3618,"context_line":"            # Re-throw the exception."},{"line_number":3619,"context_line":"            raise"},{"line_number":3620,"context_line":"        cloneDict \u003d self.provision.get_volume_dict_from_job("},{"line_number":3621,"context_line":"            self.conn, job[\u0027Job\u0027])"},{"line_number":3622,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_05fd073a","line":3619,"updated":"2015-04-30 19:43:31.000000000","message":"Same question here as in above. Do we need to limit the type of exception caught so only a Cinder exception can be raised rather than any type of Exception?","commit_id":"2612e139562afb9605342b2435b36167de5c372e"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"59bcafecd560502f96476140857fa6e53e842357","unresolved":false,"context_lines":[{"line_number":3616,"context_line":"                    storageConfigService, targetInstance, extraSpecs)"},{"line_number":3617,"context_line":""},{"line_number":3618,"context_line":"            # Re-throw the exception."},{"line_number":3619,"context_line":"            raise"},{"line_number":3620,"context_line":"        cloneDict \u003d self.provision.get_volume_dict_from_job("},{"line_number":3621,"context_line":"            self.conn, job[\u0027Job\u0027])"},{"line_number":3622,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_b6fe8036","line":3619,"in_reply_to":"3acd31a7_05fd073a","updated":"2015-05-01 04:45:45.000000000","message":"Sure, change to raise exception.VolumeBackendAPIException","commit_id":"2612e139562afb9605342b2435b36167de5c372e"},{"author":{"_account_id":12802,"name":"Carl Pecinovsky","email":"csky@us.ibm.com","username":"carl-sky"},"change_message_id":"1250fb43c7abf2a0bbaea19e86d6d1f5a3ea9de5","unresolved":false,"context_lines":[{"line_number":3641,"context_line":""},{"line_number":3642,"context_line":"        # Remove the Clone relationship so it can be used as a regular lun."},{"line_number":3643,"context_line":"        # 8 - Detach operation."},{"line_number":3644,"context_line":"        rc, job \u003d self.provision.delete_clone_relationship("},{"line_number":3645,"context_line":"            self.conn, repServiceInstanceName, syncInstanceName,"},{"line_number":3646,"context_line":"            extraSpecs)"},{"line_number":3647,"context_line":"        if fastPolicyName is not None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_f14e7f95","line":3644,"updated":"2015-04-29 17:45:23.000000000","message":"This operation could fail, or the FAST operation below could fail. If they do, the target replica instance (looked up cloneVolume?) still needs to be cleaned up, right?","commit_id":"2612e139562afb9605342b2435b36167de5c372e"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"458476cdb24e0e10084fc38da165a347a7016d51","unresolved":false,"context_lines":[{"line_number":3641,"context_line":""},{"line_number":3642,"context_line":"        # Remove the Clone relationship so it can be used as a regular lun."},{"line_number":3643,"context_line":"        # 8 - Detach operation."},{"line_number":3644,"context_line":"        rc, job \u003d self.provision.delete_clone_relationship("},{"line_number":3645,"context_line":"            self.conn, repServiceInstanceName, syncInstanceName,"},{"line_number":3646,"context_line":"            extraSpecs)"},{"line_number":3647,"context_line":"        if fastPolicyName is not None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_a9c5f08e","line":3644,"in_reply_to":"3acd31a7_96fdc43c","updated":"2015-05-02 02:22:58.000000000","message":"We\u0027ll have to keep this as is.  If delete_clone_relationship fails, we can\u0027t do further clean up because we can\u0027t delete any volume in the clone relationship.","commit_id":"2612e139562afb9605342b2435b36167de5c372e"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"59bcafecd560502f96476140857fa6e53e842357","unresolved":false,"context_lines":[{"line_number":3641,"context_line":""},{"line_number":3642,"context_line":"        # Remove the Clone relationship so it can be used as a regular lun."},{"line_number":3643,"context_line":"        # 8 - Detach operation."},{"line_number":3644,"context_line":"        rc, job \u003d self.provision.delete_clone_relationship("},{"line_number":3645,"context_line":"            self.conn, repServiceInstanceName, syncInstanceName,"},{"line_number":3646,"context_line":"            extraSpecs)"},{"line_number":3647,"context_line":"        if fastPolicyName is not None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_96fdc43c","line":3644,"in_reply_to":"3acd31a7_f14e7f95","updated":"2015-05-01 04:45:45.000000000","message":"Ok, we\u0027ll take a look.","commit_id":"2612e139562afb9605342b2435b36167de5c372e"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"7df37bc7006d75b969da9ac109cc25e458f8ee5f","unresolved":false,"context_lines":[{"line_number":3550,"context_line":"                        exceptionMessage \u003d (_("},{"line_number":3551,"context_line":"                            \"Exception appending meta volume to target volume \""},{"line_number":3552,"context_line":"                            \"%(volumename)s.\")"},{"line_number":3553,"context_line":"                            % {\u0027volumename\u0027: baseVolumeName})"},{"line_number":3554,"context_line":"                        LOG.error(exceptionMessage)"},{"line_number":3555,"context_line":"                        # Remove append volume and target base volume"},{"line_number":3556,"context_line":"                        self._delete_target_volume_v2("}],"source_content_type":"text/x-python","patch_set":5,"id":"3acd31a7_f5a044a1","line":3553,"updated":"2015-05-04 13:08:31.000000000","message":"why we need to change targetVolumeName to baseVolumeName?","commit_id":"5490bddf804281f76fc9ae8289c1f44976f4b5a4"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2e7683800ece61dee1dfe38f8273109413006f69","unresolved":false,"context_lines":[{"line_number":3550,"context_line":"                        exceptionMessage \u003d (_("},{"line_number":3551,"context_line":"                            \"Exception appending meta volume to target volume \""},{"line_number":3552,"context_line":"                            \"%(volumename)s.\")"},{"line_number":3553,"context_line":"                            % {\u0027volumename\u0027: baseVolumeName})"},{"line_number":3554,"context_line":"                        LOG.error(exceptionMessage)"},{"line_number":3555,"context_line":"                        # Remove append volume and target base volume"},{"line_number":3556,"context_line":"                        self._delete_target_volume_v2("}],"source_content_type":"text/x-python","patch_set":5,"id":"1aca2d91_2703a211","line":3553,"in_reply_to":"3acd31a7_f5a044a1","updated":"2015-05-06 05:05:09.000000000","message":"baseVolumeName is actually the correct variable name here.  The one on the left is wrong.","commit_id":"5490bddf804281f76fc9ae8289c1f44976f4b5a4"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"72676dd44fbdbb51151e61e3ac09cde09724f7d7","unresolved":false,"context_lines":[{"line_number":3600,"context_line":"                % {\u0027cloneName\u0027: cloneName,"},{"line_number":3601,"context_line":"                   \u0027sourceName\u0027: sourceName,"},{"line_number":3602,"context_line":"                   \u0027extraSpecs\u0027: extraSpecs})"},{"line_number":3603,"context_line":"            LOG.error(exceptionMessage)"},{"line_number":3604,"context_line":""},{"line_number":3605,"context_line":"            if targetInstance is not None:"},{"line_number":3606,"context_line":"                # Check if the copy session exists."}],"source_content_type":"text/x-python","patch_set":5,"id":"1aca2d91_36e0e9f9","line":3603,"updated":"2015-05-09 10:14:52.000000000","message":"Can we handle more specific exception here and below?","commit_id":"5490bddf804281f76fc9ae8289c1f44976f4b5a4"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7f8eeb75c26ac52f52819519326195875da64ef1","unresolved":false,"context_lines":[{"line_number":3600,"context_line":"                % {\u0027cloneName\u0027: cloneName,"},{"line_number":3601,"context_line":"                   \u0027sourceName\u0027: sourceName,"},{"line_number":3602,"context_line":"                   \u0027extraSpecs\u0027: extraSpecs})"},{"line_number":3603,"context_line":"            LOG.error(exceptionMessage)"},{"line_number":3604,"context_line":""},{"line_number":3605,"context_line":"            if targetInstance is not None:"},{"line_number":3606,"context_line":"                # Check if the copy session exists."}],"source_content_type":"text/x-python","patch_set":5,"id":"9af37de9_5209d230","line":3603,"in_reply_to":"1aca2d91_36e0e9f9","updated":"2015-05-10 01:20:56.000000000","message":"Hi Ivan,\n\nWe do need to catch all exceptions and do cleanups. Thanks.","commit_id":"5490bddf804281f76fc9ae8289c1f44976f4b5a4"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"7df37bc7006d75b969da9ac109cc25e458f8ee5f","unresolved":false,"context_lines":[{"line_number":3884,"context_line":"        :param extraSpecs: extra specifications"},{"line_number":3885,"context_line":"        \"\"\""},{"line_number":3886,"context_line":"        deviceId \u003d targetVolumeInstance[\u0027DeviceID\u0027]"},{"line_number":3887,"context_line":"        volumeName \u003d targetVolumeInstance[\u0027Name\u0027]"},{"line_number":3888,"context_line":"        rc \u003d self._delete_from_pool(storageConfigService,"},{"line_number":3889,"context_line":"                                    targetVolumeInstance,"},{"line_number":3890,"context_line":"                                    volumeName, deviceId,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3acd31a7_ac672c24","line":3887,"updated":"2015-05-04 13:08:31.000000000","message":"Do we need a log message here?","commit_id":"5490bddf804281f76fc9ae8289c1f44976f4b5a4"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2e7683800ece61dee1dfe38f8273109413006f69","unresolved":false,"context_lines":[{"line_number":3884,"context_line":"        :param extraSpecs: extra specifications"},{"line_number":3885,"context_line":"        \"\"\""},{"line_number":3886,"context_line":"        deviceId \u003d targetVolumeInstance[\u0027DeviceID\u0027]"},{"line_number":3887,"context_line":"        volumeName \u003d targetVolumeInstance[\u0027Name\u0027]"},{"line_number":3888,"context_line":"        rc \u003d self._delete_from_pool(storageConfigService,"},{"line_number":3889,"context_line":"                                    targetVolumeInstance,"},{"line_number":3890,"context_line":"                                    volumeName, deviceId,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aca2d91_6723da06","line":3887,"in_reply_to":"3acd31a7_ac672c24","updated":"2015-05-06 05:05:09.000000000","message":"There\u0027s logging in _delete_from_pool, so I think it is fine not to do extra logging here as this is a very simple wrapper.","commit_id":"5490bddf804281f76fc9ae8289c1f44976f4b5a4"}]}
