/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package models.datatable; import static util.BourneUtil.getViprClient; import java.net.URI; import java.util.Collections; import java.util.List; import java.util.Map; import util.datatable.DataTable; import com.emc.storageos.model.block.export.ExportGroupRestRep; import com.emc.vipr.client.ViPRCoreClient; import com.emc.vipr.client.core.util.ResourceUtils; import com.google.common.collect.Lists; import controllers.resources.BlockExportGroups; public class BlockExportGroupsDataTable extends DataTable { public BlockExportGroupsDataTable() { addColumn("name"); addColumn("type"); addColumn("varray"); sortAll(); setDefaultSort("name", "asc"); setRowCallback("createRowLink"); } public static List<ExportGroup> fetch(URI projectId) { if (projectId == null) { return Collections.EMPTY_LIST; } ViPRCoreClient client = getViprClient(); List<ExportGroupRestRep> exportGroups = client.blockExports().findByProject(projectId); Map<URI, String> virtualArrays = ResourceUtils.mapNames(client.varrays().list()); List<ExportGroup> results = Lists.newArrayList(); for (ExportGroupRestRep exportGroup : exportGroups) { results.add(new ExportGroup(exportGroup, virtualArrays)); } return results; } public static class ExportGroup { public String rowLink; public URI id; public String name; public String type; public String varray; public ExportGroup(ExportGroupRestRep exportGroup, Map<URI, String> varrayMap) { id = exportGroup.getId(); name = exportGroup.getName(); rowLink = createLink(BlockExportGroups.class, "exportGroup", "exportGroupId", id); type = exportGroup.getType(); if (exportGroup.getVirtualArray() != null) { varray = varrayMap.get(exportGroup.getVirtualArray().getId()); } } } }