/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package models.datatable; import static com.emc.sa.util.ResourceType.VOLUME; import java.net.URI; import java.util.Collections; import java.util.List; import util.BourneUtil; import util.datatable.DataTable; import com.emc.sa.util.ResourceType; import com.emc.storageos.model.block.VolumeRestRep; import com.emc.storageos.model.block.export.ExportBlockParam; import com.emc.storageos.model.block.export.ExportGroupRestRep; import com.emc.vipr.client.ViPRCoreClient; import com.google.common.collect.Lists; import controllers.resources.BlockVolumes; public class BlockExportGroupVolumesDataTable extends DataTable { public BlockExportGroupVolumesDataTable() { addColumn("name").setRenderFunction("renderLink"); addColumn("capacity"); addColumn("lun"); addColumn("actions").setRenderFunction("renderVolumeActions"); sortAll(); setDefaultSort("name", "asc"); this.setServerSide(true); } public static List<Volume> fetch(URI exportGroupID) { if (exportGroupID == null) { return Collections.emptyList(); } ViPRCoreClient client = BourneUtil.getViprClient(); ExportGroupRestRep exportGroup = client.blockExports().get(exportGroupID); List<Volume> volumes = Lists.newArrayList(); for (ExportBlockParam exportBlockParam : exportGroup.getVolumes()) { if (ResourceType.isType(VOLUME, exportBlockParam.getId())) { volumes.add(new Volume(client.blockVolumes().get(exportBlockParam.getId()), exportBlockParam)); } } return volumes; } public static class Volume { public String rowLink; public URI id; public String name; public String capacity; public Integer lun; public Volume(VolumeRestRep volume, ExportBlockParam export) { this.id = volume.getId(); this.name = volume.getName(); this.capacity = volume.getCapacity(); this.lun = export.getLun(); this.rowLink = createLink(BlockVolumes.class, "volume", "volumeId", id); } } }