public DriverTask createVolumes(List<StorageVolume> volumes,StorageCapabilities storageCapabilities){
  DriverTask task=new DellSCDriverTask("createVolume");
  StringBuilder errBuffer=new StringBuilder();
  int volumesCreated=0;
  for (  StorageVolume volume : volumes) {
    LOG.debug("Creating volume {} on system {}",volume.getDisplayName(),volume.getStorageSystemId());
    String ssn=volume.getStorageSystemId();
    try {
      StorageCenterAPI api=connectionManager.getConnection(ssn);
      ScVolume scVol=api.createVolume(ssn,volume.getDisplayName(),volume.getStoragePoolId(),SizeUtil.byteToMeg(volume.getRequestedCapacity()),volume.getConsistencyGroup());
      volume.setProvisionedCapacity(SizeUtil.sizeStrToBytes(scVol.configuredSize));
      volume.setAllocatedCapacity(0L);
      volume.setWwn(scVol.deviceId);
      volume.setNativeId(scVol.instanceId);
      volume.setDeviceLabel(scVol.name);
      volume.setAccessStatus(AccessStatus.READ_WRITE);
      volumesCreated++;
      LOG.info("Created volume '{}'",scVol.name);
    }
 catch (    StorageCenterAPIException|DellSCDriverException dex) {
      String error=String.format("Error creating volume %s: %s",volume.getDisplayName(),dex);
      LOG.error(error);
      errBuffer.append(String.format("%s%n",error));
    }
  }
  task.setMessage(errBuffer.toString());
  if (volumesCreated == volumes.size()) {
    task.setStatus(TaskStatus.READY);
  }
 else   if (volumesCreated == 0) {
    task.setStatus(TaskStatus.FAILED);
  }
 else {
    task.setStatus(TaskStatus.PARTIALLY_FAILED);
  }
  return task;
}

public DriverTask createVolumes ( List < StorageVolume > volumes , StorageCapabilities storageCapabilities ) { DriverTask task = new DellSCDriverTask ( "createVolume" ) ; StringBuilder errBuffer = new StringBuilder ( ) ; int volumesCreated = 0 ; for ( StorageVolume volume : volumes ) { LOG . debug ( "Creating volume {} on system {}" , volume . getDisplayName ( ) , volume . getStorageSystemId ( ) ) ; String ssn = volume . getStorageSystemId ( ) ; try { StorageCenterAPI api = connectionManager . getConnection ( ssn ) ; ScVolume scVol = api . createVolume ( ssn , volume . getDisplayName ( ) , volume . getStoragePoolId ( ) , SizeUtil . byteToMeg ( volume . getRequestedCapacity ( ) ) , volume . getConsistencyGroup ( ) ) ; volume . setProvisionedCapacity ( SizeUtil . sizeStrToBytes ( scVol . configuredSize ) ) ; volume . setAllocatedCapacity ( 0L ) ; volume . setWwn ( scVol . deviceId ) ; volume . setNativeId ( scVol . instanceId ) ; volume . setDeviceLabel ( scVol . name ) ; volume . setAccessStatus ( AccessStatus . READ_WRITE ) ; volumesCreated ++ ; LOG . info ( "Created volume '{}'" , scVol . name ) ; } catch ( StorageCenterAPIException | DellSCDriverException dex ) { String error = String . format ( "Error creating volume %s: %s" , volume . getDisplayName ( ) , dex ) ; LOG . error ( error ) ; errBuffer . append ( String . format ( "%s%n" , error ) ) ; } } task . setMessage ( errBuffer . toString ( ) ) ; if ( volumesCreated == volumes . size ( ) ) { task . setStatus ( TaskStatus . READY ) ; } else if ( volumesCreated == 0 ) { task . setStatus ( TaskStatus . FAILED ) ; } else { task . setStatus ( TaskStatus . PARTIALLY_FAILED ) ; } return task ; }
create storage volumes with a given set of capabilities . before completion of the request , set all required data for provisioned volumes in " volumes " parameter .
