public boolean cgCreateRollbackStep(URI rpSystemId,List<VolumeDescriptor> volumeDescriptors,String token) throws WorkflowException {
  _log.info("Start cg create rollback step");
  WorkflowStepCompleter.stepExecuting(token);
  List<VolumeDescriptor> sourceVolumeDescriptors=VolumeDescriptor.filterByType(volumeDescriptors,new VolumeDescriptor.Type[]{VolumeDescriptor.Type.RP_SOURCE,VolumeDescriptor.Type.RP_EXISTING_SOURCE,VolumeDescriptor.Type.RP_VPLEX_VIRT_SOURCE},new VolumeDescriptor.Type[]{});
  List<VolumeDescriptor> journalVolumeDescriptors=VolumeDescriptor.filterByType(volumeDescriptors,new VolumeDescriptor.Type[]{VolumeDescriptor.Type.RP_JOURNAL,VolumeDescriptor.Type.RP_VPLEX_VIRT_JOURNAL},new VolumeDescriptor.Type[]{});
  if (sourceVolumeDescriptors == null || sourceVolumeDescriptors.isEmpty()) {
    WorkflowStepCompleter.stepSucceded(token);
    return true;
  }
  List<URI> volumeIDs=new ArrayList<URI>();
  for (  VolumeDescriptor descriptor : sourceVolumeDescriptors) {
    volumeIDs.add(descriptor.getVolumeURI());
  }
  List<URI> journalVolumeIDs=new ArrayList<URI>();
  for (  VolumeDescriptor journalDescriptor : journalVolumeDescriptors) {
    journalVolumeIDs.add(journalDescriptor.getVolumeURI());
  }
  return cgDeleteStep(rpSystemId,volumeIDs,journalVolumeIDs,token);
}

public boolean cgCreateRollbackStep ( URI rpSystemId , List < VolumeDescriptor > volumeDescriptors , String token ) throws WorkflowException { _log . info ( "Start cg create rollback step" ) ; WorkflowStepCompleter . stepExecuting ( token ) ; List < VolumeDescriptor > sourceVolumeDescriptors = VolumeDescriptor . filterByType ( volumeDescriptors , new VolumeDescriptor . Type [ ] { VolumeDescriptor . Type . RP_SOURCE , VolumeDescriptor . Type . RP_EXISTING_SOURCE , VolumeDescriptor . Type . RP_VPLEX_VIRT_SOURCE } , new VolumeDescriptor . Type [ ] { } ) ; List < VolumeDescriptor > journalVolumeDescriptors = VolumeDescriptor . filterByType ( volumeDescriptors , new VolumeDescriptor . Type [ ] { VolumeDescriptor . Type . RP_JOURNAL , VolumeDescriptor . Type . RP_VPLEX_VIRT_JOURNAL } , new VolumeDescriptor . Type [ ] { } ) ; if ( sourceVolumeDescriptors == null || sourceVolumeDescriptors . isEmpty ( ) ) { WorkflowStepCompleter . stepSucceded ( token ) ; return true ; } List < URI > volumeIDs = new ArrayList < URI > ( ) ; for ( VolumeDescriptor descriptor : sourceVolumeDescriptors ) { volumeIDs . add ( descriptor . getVolumeURI ( ) ) ; } List < URI > journalVolumeIDs = new ArrayList < URI > ( ) ; for ( VolumeDescriptor journalDescriptor : journalVolumeDescriptors ) { journalVolumeIDs . add ( journalDescriptor . getVolumeURI ( ) ) ; } return cgDeleteStep ( rpSystemId , volumeIDs , journalVolumeIDs , token ) ; }
workflow step method for cg create rollback
