/*
* Copyright (c) 2012-2015 iWave Software LLC
* All Rights Reserved
*/
package com.emc.sa.service.vipr.block.tasks;
import java.net.URI;
import java.util.List;
import com.emc.sa.service.vipr.tasks.ViPRExecutionTask;
import com.emc.sa.util.ResourceType;
import com.emc.storageos.model.block.export.ITLRestRep;
import com.google.common.collect.Lists;
public class GetExportsForBlockObject extends ViPRExecutionTask<List<ITLRestRep>> {
// id of block resource
private URI blockResourceId;
public GetExportsForBlockObject(String volumeId) {
this(uri(volumeId));
}
public GetExportsForBlockObject(URI blockResourceId) {
this.blockResourceId = blockResourceId;
provideDetailArgs(blockResourceId);
}
@Override
public List<ITLRestRep> executeTask() throws Exception {
if (ResourceType.isType(ResourceType.VOLUME, blockResourceId) ||
ResourceType.isType(ResourceType.BLOCK_CONTINUOUS_COPY, blockResourceId)) {
return getClient().blockVolumes().getExports(blockResourceId);
}
else if (ResourceType.isType(ResourceType.BLOCK_SNAPSHOT, blockResourceId)) {
return getClient().blockSnapshots().listExports(blockResourceId);
}
else if (ResourceType.isType(ResourceType.VPLEX_CONTINUOUS_COPY, blockResourceId)) {
return Lists.newArrayList();
}
throw new IllegalStateException("ID does not appear to be a volume or snapshot [" + blockResourceId + "]");
}
}