package com.emc.sa.service.vipr.migration; import java.net.URI; import java.util.List; import com.emc.sa.asset.providers.BlockProvider; import com.emc.sa.engine.bind.Param; import com.emc.sa.engine.service.Service; import com.emc.sa.service.ServiceParams; import com.emc.sa.service.vipr.ViPRService; import com.emc.sa.service.vipr.block.tasks.ChangeBlockVolumeVirtualPool; import com.emc.storageos.model.block.VolumeRestRep; import com.emc.vipr.client.Tasks; @Service("VplexDataMigration") public class VplexDataMigrationService extends ViPRService { @Param(ServiceParams.PROJECT) private URI projectId; @Param(ServiceParams.VOLUME) private List<String> volumeIds; @Param(ServiceParams.TARGET_VIRTUAL_POOL) private URI targetVirtualPool; @Param(value = ServiceParams.CONSISTENCY_GROUP, required = false) private URI consistencyGroup; @Param(value = ServiceParams.MIGRATION_SUSPEND, required = false) private Boolean migrationSuspend; @Param(value = ServiceParams.DISPLAY_JOURNALS, required = false) protected String displayJournals; @Override public void execute() throws Exception { boolean forceFlag = BlockProvider.YES_VALUE.equalsIgnoreCase(displayJournals); Tasks<VolumeRestRep> tasks = execute(new ChangeBlockVolumeVirtualPool(uris(volumeIds), targetVirtualPool, consistencyGroup, migrationSuspend, forceFlag)); addAffectedResources(tasks); } }