private String createNonCGSrdfPairStepsOnPopulatedGroup(List<VolumeDescriptor> sourceDescriptors,List<VolumeDescriptor> targetDescriptors,RemoteDirectorGroup group,Map<URI,Volume> uriVolumeMap,String waitFor,Workflow workflow){
  StorageSystem system=dbClient.queryObject(StorageSystem.class,group.getSourceStorageSystemUri());
  URI vpoolChangeUri=getVirtualPoolChangeVolume(sourceDescriptors);
  log.info("VPoolChange URI {}",vpoolChangeUri);
  List<URI> sourceURIs=VolumeDescriptor.getVolumeURIs(sourceDescriptors);
  List<URI> targetURIs=new ArrayList<>();
  for (  URI sourceURI : sourceURIs) {
    Volume source=uriVolumeMap.get(sourceURI);
    StringSet srdfTargets=source.getSrdfTargets();
    for (    String targetStr : srdfTargets) {
      URI targetURI=URI.create(targetStr);
      targetURIs.add(targetURI);
    }
  }
  Method suspendGroupMethod=suspendSRDFGroupMethod(system.getId(),group,sourceURIs,targetURIs);
  Method resumeRollbackMethod=resumeSRDFGroupMethod(system.getId(),group,sourceURIs,targetURIs);
  String suspendGroupStep=workflow.createStep(CREATE_SRDF_ACTIVE_VOLUME_PAIR_STEP_GROUP,SUSPEND_SRDF_MIRRORS_STEP_DESC,waitFor,system.getId(),system.getSystemType(),getClass(),suspendGroupMethod,resumeRollbackMethod,null);
  Method createListMethod=createListReplicasMethod(system.getId(),sourceURIs,targetURIs,vpoolChangeUri,false);
  Method rollbackMethod=rollbackSRDFLinksMethod(system.getId(),sourceURIs,targetURIs,false);
  String createListReplicaStep=workflow.createStep(CREATE_SRDF_ACTIVE_VOLUME_PAIR_STEP_GROUP,CREATE_SRDF_ACTIVE_VOLUME_PAIR_STEP_DESC,suspendGroupStep,system.getId(),system.getSystemType(),getClass(),createListMethod,rollbackMethod,null);
  Method resumeGroupMethod=resumeSRDFGroupMethod(system.getId(),group,sourceURIs,targetURIs);
  String resumeGroupStep=workflow.createStep(CREATE_SRDF_ACTIVE_VOLUME_PAIR_STEP_GROUP,RESUME_SRDF_MIRRORS_STEP_DESC,createListReplicaStep,system.getId(),system.getSystemType(),getClass(),resumeGroupMethod,rollbackMethodNullMethod(),null);
  return resumeGroupStep;
}

private String createNonCGSrdfPairStepsOnPopulatedGroup ( List < VolumeDescriptor > sourceDescriptors , List < VolumeDescriptor > targetDescriptors , RemoteDirectorGroup group , Map < URI , Volume > uriVolumeMap , String waitFor , Workflow workflow ) { StorageSystem system = dbClient . queryObject ( StorageSystem . class , group . getSourceStorageSystemUri ( ) ) ; URI vpoolChangeUri = getVirtualPoolChangeVolume ( sourceDescriptors ) ; log . info ( "VPoolChange URI {}" , vpoolChangeUri ) ; List < URI > sourceURIs = VolumeDescriptor . getVolumeURIs ( sourceDescriptors ) ; List < URI > targetURIs = new ArrayList < > ( ) ; for ( URI sourceURI : sourceURIs ) { Volume source = uriVolumeMap . get ( sourceURI ) ; StringSet srdfTargets = source . getSrdfTargets ( ) ; for ( String targetStr : srdfTargets ) { URI targetURI = URI . create ( targetStr ) ; targetURIs . add ( targetURI ) ; } } Method suspendGroupMethod = suspendSRDFGroupMethod ( system . getId ( ) , group , sourceURIs , targetURIs ) ; Method resumeRollbackMethod = resumeSRDFGroupMethod ( system . getId ( ) , group , sourceURIs , targetURIs ) ; String suspendGroupStep = workflow . createStep ( CREATE_SRDF_ACTIVE_VOLUME_PAIR_STEP_GROUP , SUSPEND_SRDF_MIRRORS_STEP_DESC , waitFor , system . getId ( ) , system . getSystemType ( ) , getClass ( ) , suspendGroupMethod , resumeRollbackMethod , null ) ; Method createListMethod = createListReplicasMethod ( system . getId ( ) , sourceURIs , targetURIs , vpoolChangeUri , false ) ; Method rollbackMethod = rollbackSRDFLinksMethod ( system . getId ( ) , sourceURIs , targetURIs , false ) ; String createListReplicaStep = workflow . createStep ( CREATE_SRDF_ACTIVE_VOLUME_PAIR_STEP_GROUP , CREATE_SRDF_ACTIVE_VOLUME_PAIR_STEP_DESC , suspendGroupStep , system . getId ( ) , system . getSystemType ( ) , getClass ( ) , createListMethod , rollbackMethod , null ) ; Method resumeGroupMethod = resumeSRDFGroupMethod ( system . getId ( ) , group , sourceURIs , targetURIs ) ; String resumeGroupStep = workflow . createStep ( CREATE_SRDF_ACTIVE_VOLUME_PAIR_STEP_GROUP , RESUME_SRDF_MIRRORS_STEP_DESC , createListReplicaStep , system . getId ( ) , system . getSystemType ( ) , getClass ( ) , resumeGroupMethod , rollbackMethodNullMethod ( ) , null ) ; return resumeGroupStep ; }
this method creates steps to create srdf pairs in a populated srdf group .
