private String createStepForNativeCopy(Workflow workflow,BlockObject srcObject,List<VolumeDescriptor> copyVolumeDescriptors,String waitFor){
  List<URI> copyVolumeURIs=VolumeDescriptor.getVolumeURIs(copyVolumeDescriptors);
  StorageSystem srcVolumeSystem=getDataObject(StorageSystem.class,srcObject.getStorageController(),_dbClient);
  URI srcVolumeSystemURI=srcVolumeSystem.getId();
  _log.info("Source volume storage system is {}",srcVolumeSystemURI);
  String stepId=workflow.createStepId();
  Workflow.Method executeMethod=new Workflow.Method(FULL_COPY_METHOD_NAME,srcVolumeSystemURI,copyVolumeURIs,Boolean.FALSE);
  Workflow.Method rollbackMethod=new Workflow.Method(ROLLBACK_FULL_COPY_METHOD,srcVolumeSystemURI,copyVolumeURIs);
  workflow.createStep(COPY_VOLUME_STEP,String.format("Create full copy volumes %s on system %s",copyVolumeURIs,srcVolumeSystemURI),waitFor,srcVolumeSystemURI,srcVolumeSystem.getSystemType(),BlockDeviceController.class,executeMethod,rollbackMethod,stepId);
  for (  URI copyVolumeURI : copyVolumeURIs) {
    Operation op=new Operation();
    op.setResourceType(ResourceOperationTypeEnum.CREATE_VOLUME_FULL_COPY);
    _dbClient.createTaskOpStatus(Volume.class,copyVolumeURI,stepId,op);
  }
  _log.info("Created workflow step to create native full copies");
  return stepId;
}

private String createStepForNativeCopy ( Workflow workflow , BlockObject srcObject , List < VolumeDescriptor > copyVolumeDescriptors , String waitFor ) { List < URI > copyVolumeURIs = VolumeDescriptor . getVolumeURIs ( copyVolumeDescriptors ) ; StorageSystem srcVolumeSystem = getDataObject ( StorageSystem . class , srcObject . getStorageController ( ) , _dbClient ) ; URI srcVolumeSystemURI = srcVolumeSystem . getId ( ) ; _log . info ( "Source volume storage system is {}" , srcVolumeSystemURI ) ; String stepId = workflow . createStepId ( ) ; Workflow . Method executeMethod = new Workflow . Method ( FULL_COPY_METHOD_NAME , srcVolumeSystemURI , copyVolumeURIs , Boolean . FALSE ) ; Workflow . Method rollbackMethod = new Workflow . Method ( ROLLBACK_FULL_COPY_METHOD , srcVolumeSystemURI , copyVolumeURIs ) ; workflow . createStep ( COPY_VOLUME_STEP , String . format ( "Create full copy volumes %s on system %s" , copyVolumeURIs , srcVolumeSystemURI ) , waitFor , srcVolumeSystemURI , srcVolumeSystem . getSystemType ( ) , BlockDeviceController . class , executeMethod , rollbackMethod , stepId ) ; for ( URI copyVolumeURI : copyVolumeURIs ) { Operation op = new Operation ( ) ; op . setResourceType ( ResourceOperationTypeEnum . CREATE_VOLUME_FULL_COPY ) ; _dbClient . createTaskOpStatus ( Volume . class , copyVolumeURI , stepId , op ) ; } _log . info ( "Created workflow step to create native full copies" ) ; return stepId ; }
create a step in the passed workflow to create native full copies for the volumes or snapshots represented by the passed volume descriptors .
