vmare vsphere 集群 Cluster

集群 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;
}
发布了5 篇原创文章 · 获赞 0 · 访问量 18

猜你喜欢

转载自blog.csdn.net/pingzhilidexingfu/article/details/105139513