集群 Cluster
public List list(ServiceInstance si, ClusterParam vcClusterReq) {
log.info(errorName + “vcClusterReq={}”, JSONUtil.toJsonStr(vcClusterReq));
List clusters = new ArrayList();
try {
if (si != null) {
Folder rootFolder = si.getRootFolder();
String dcName = vcClusterReq == null ? null : vcClusterReq.getDcName();
String name = vcClusterReq == null ? null : vcClusterReq.getName();
ManagedEntity[] managedEntities = null;
if (null == dcName || “”.equals(dcName)) {
managedEntities =
new InventoryNavigator(rootFolder).searchManagedEntities(“ClusterComputeResource”);
} else {
Datacenter dc =
(Datacenter)new InventoryNavigator(rootFolder).searchManagedEntity(“Datacenter”, dcName);
managedEntities = new InventoryNavigator(dc).searchManagedEntities(“ClusterComputeResource”);
}
if (null != managedEntities && managedEntities.length > 0) {
for (int i = 0; i < managedEntities.length; i++) {
ClusterComputeResource cluster = (ClusterComputeResource)managedEntities[i];
if (null == name || “”.equals(name) || name.equals(cluster.getName())) {
UniCluster vccluster = new UniCluster();
vccluster.setName(cluster.getName());
vccluster.setUuid(cluster.getMOR().get_value());
ManagedEntity dc=getTypeFromParentEntity(cluster, “Datacenter”);
if(null!=dc) {
vccluster.setDcName(dc.getName());
vccluster.setDcUuid(dc.getMOR().get_value());
}
vccluster.setStatus(cluster.getOverallStatus().name());
int hostNum = cluster.getHosts() == null ? 0 : cluster.getHosts().length;
// in Mhz
// vccluster.setCpuTotalMhz(cluster.getSummary().getTotalCpu());
vccluster.setCpuTotalMhz(cluster.getResourceUsage().getCpuCapacityMHz());
vccluster.setCpuUsedMhz(cluster.getResourceUsage().getCpuUsedMHz());
// in bytes
// vccluster.setMemoryTotalMB((int)(cluster.getSummary().getTotalMemory()/1024/1024));
vccluster.setMemoryTotalMB(cluster.getResourceUsage().getMemCapacityMB());
vccluster.setMemoryUsedMB(cluster.getResourceUsage().getMemUsedMB());
vccluster.setDataStoreTotalMB(cluster.getResourceUsage().getStorageCapacityMB());
vccluster.setDataStoreUsedMB(cluster.getResourceUsage().getStorageUsedMB());
vccluster.setFolderPath(getFolderPath(cluster));
vccluster.setDrsEnabled(cluster.getConfiguration().getDrsConfig().getEnabled());
vccluster.setHaEnabled(cluster.getConfiguration().getDasConfig().getEnabled());
vccluster.setHostNum(hostNum);
vccluster.setCpuCoreNum((int)cluster.getSummary().getNumCpuCores());
clusters.add(vccluster);
}
}
}
}
} catch (Exception e) {
log.error(errorName + "list", e);
throw new CloudResourcesException(CloudResourcesErrorEnum.VCENTER_CLUSTER_ERROR);
}
return clusters;
}
ManagedEntity getTypeFromParentEntity(ManagedEntity me, String targetType) {
try {
if (targetType.equals(me.getParent().getMOR().getType())) {
return me.getParent();
} else {
return getTypeFromParentEntity(me.getParent(), targetType);
}
} catch (Exception e) {
log.error(errorName + "getTypeFromParent", e);
}
return null;
}