/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package models.datatable;
import java.util.Collection;
import models.PoolTypes;
import models.ProvisioningTypes;
import org.apache.commons.lang.StringUtils;
import util.datatable.DataTable;
import com.emc.storageos.model.vpool.VirtualPoolCommonRestRep;
public class VirtualPoolDataTable extends DataTable {
public VirtualPoolDataTable() {
addColumn("storageType").hidden();
addColumn("name").setRenderFunction("renderLink");
addColumn("description");
addColumn("poolType").hidden();
addColumn("provisioningType").hidden();
addColumn("provisionedAs");
addColumn("storagePoolAssignment");
addColumn("protocols");
addColumn("numPools");
addColumn("numResources");
sortAllExcept("storageType");
setDefaultSort("name", "asc");
}
public static class VirtualPoolInfo {
public String id;
public String name;
public String description;
public Integer numPools;
public Integer numResources;
public String poolType;
public String poolTypeDisplay;
public String provisioningType;
public String provisioningTypeDisplay;
public String protocols;
public Boolean useMatchedPools;
public String storagePoolAssignment;
public Boolean warning;
public String provisionedAs;
public VirtualPoolInfo() {
}
public VirtualPoolInfo(VirtualPoolCommonRestRep vsp) {
this.id = vsp.getId().toString();
this.name = vsp.getName();
this.poolType = vsp.getType();
this.provisioningType = vsp.getProvisioningType();
this.poolTypeDisplay = PoolTypes.getDisplayValue(vsp.getType());
this.provisioningTypeDisplay = ProvisioningTypes.getDisplayValue(vsp.getProvisioningType());
this.provisionedAs = String.format("%s (%s)", poolTypeDisplay, provisioningTypeDisplay);
this.description = vsp.getDescription();
if (Boolean.TRUE.equals(vsp.getUseMatchedPools())) {
this.storagePoolAssignment = "automatic";
this.numPools = size(vsp.getMatchedStoragePools());
}
else {
this.storagePoolAssignment = "manual";
this.numPools = size(vsp.getAssignedStoragePools());
}
this.numResources = defaultInt(vsp.getNumResources());
this.protocols = StringUtils.join(vsp.getProtocols(), ", ");
}
private static int size(Collection<?> collection) {
return collection != null ? collection.size() : 0;
}
private int defaultInt(Integer value) {
return value != null ? value : 0;
}
}
}