/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package models.datatable;
import java.text.DecimalFormat;
import org.apache.commons.lang.StringUtils;
import util.datatable.DataTable;
import com.emc.sa.util.SizeUtils;
import com.emc.storageos.model.compute.ComputeElementRestRep;
public class ComputeVirtualPoolElementDataTable extends DataTable {
public ComputeVirtualPoolElementDataTable() {
addColumn("computeSystem").hidden();
addColumn("name");
addColumn("computeVirtualPool").hidden();
addColumn("model");
addColumn("numberOfProcessors");
addColumn("numberOfCores");
addColumn("numberOfThreads");
addColumn("processorSpeed");
addColumn("ram").hidden();
addColumn("ramString");
addColumn("hostName");
addColumn("available").setRenderFunction("renderBoolean");
addColumn("uuid").hidden();
setDefaultSort("name", "asc");
sortAllExcept("id");
}
public static class ComputeVirtualElementInfo extends DiscoveredSystemInfo {
public String id;
public String name;
public String model;
public Boolean available;
public String computeVirtualPool;
public String computeSystem;
public Short numberOfProcessors;
public Integer numberOfCores;
public Integer numberOfThreads;
public String processorSpeed;
public Long ram;
public String ramString;
public String uuid;
public String hostName;
public boolean assigned;
public ComputeVirtualElementInfo(ComputeElementRestRep computeElement) {
this(computeElement, (String) null, (String) null);
}
public ComputeVirtualElementInfo(ComputeElementRestRep computeElement, String computeVirtualPoolName, String computeSystemName) {
super(computeElement);
this.id = computeElement.getId().toString();
this.name = computeElement.getName();
this.model = computeElement.getModel();
this.available = computeElement.getAvailable();
this.computeVirtualPool = StringUtils.defaultIfEmpty(computeVirtualPoolName, "N/A");
this.computeSystem = StringUtils.defaultIfEmpty(computeSystemName, "N/A");
this.numberOfProcessors = computeElement.getNumOfProcessors();
this.numberOfThreads = computeElement.getNumOfThreads();
this.processorSpeed = FormatSpeed(computeElement.getProcessorSpeed());
this.ram = computeElement.getRam();
this.ramString = SizeUtils.humanReadableMegaByteCount(computeElement.getRam());
this.uuid = computeElement.getUuid();
this.numberOfCores = computeElement.getNumOfCores();
this.hostName = computeElement.getHostName();
}
// Suppressing Sonar violation of Method name FormatSpeed should comply with naming convention
@SuppressWarnings("squid:S00100")
public String FormatSpeed(String speed) {
Float newSpeed = Float.parseFloat(speed);
DecimalFormat df = new DecimalFormat("0.00");
df.setMaximumFractionDigits(2);
newSpeed = Float.parseFloat(df.format(newSpeed));
return newSpeed.toString();
}
}
}