Vijava学习笔记之Cluster(基础配置信息)

本文详细介绍了集群信息的实体类设计、逻辑层实现以及如何通过测试代码获取集群配置信息,涵盖了HA配置、DRS配置等关键特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Vijava 代码:

实体类:

package com.vmware.pojo;

/**
 * 集群信息
 * @author zhb
 *
 */
public class ClusterInfo extends Entity{
    private String name; //名称
    //ha配置数据
    private Boolean haEnabled;   //是否启用ha
    private String haVmMonitoring;   //虚拟机监控状态
    private String haHostMonitoring; //主机监控状态
    private Integer haFailoverLevel; //主机故障数目

    private boolean admisControlEnabled; //接入控制状态 1:表示允许接入控制 	0:表示不允许接入控制
    private Integer cpuFailoverPercent; //cpu故障切换百分比
    private Integer memFailoverPercent; //内存故障切换百分比
    private String restartPriority; //虚拟机重新启动优先级
    private String isolationResponse;//主机隔离响应
    private String dsCandidatePolicy;//数据存储检测信号
    //drs配置数据
    private boolean drsEnabled; //是否启用drs
    private boolean drsEnableVmBehaviorOverrides; //启动个别虚拟机自动化级别
    private String autoLevel;//自动化级别 manual partiallyAutomated fullyAutomated
    private Integer dcId; //数据中心ID




    public Boolean getHaEnabled() {
        return haEnabled;
    }
    public void setHaEnabled(Boolean haEnabled) {
        this.haEnabled = haEnabled;
    }
    public String getHaVmMonitoring() {
        return haVmMonitoring;
    }
    public void setHaVmMonitoring(String haVmMonitoring) {
        this.haVmMonitoring = haVmMonitoring;
    }
    public String getHaHostMonitoring() {
        return haHostMonitoring;
    }
    public void setHaHostMonitoring(String haHostMonitoring) {
        this.haHostMonitoring = haHostMonitoring;
    }
    public Integer getHaFailoverLevel() {
        return haFailoverLevel;
    }
    public void setHaFailoverLevel(Integer haFailoverLevel) {
        this.haFailoverLevel = haFailoverLevel;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public boolean isDrsEnabled() {
        return drsEnabled;
    }
    public void setDrsEnabled(boolean drsEnabled) {
        this.drsEnabled = drsEnabled;
    }
    public boolean isDrsEnableVmBehaviorOverrides() {
        return drsEnableVmBehaviorOverrides;
    }
    public void setDrsEnableVmBehaviorOverrides(boolean drsEnableVmBehaviorOverrides) {
        this.drsEnableVmBehaviorOverrides = drsEnableVmBehaviorOverrides;
    }
    public boolean isAdmisControlEnabled() {
        return admisControlEnabled;
    }
    public void setAdmisControlEnabled(boolean admisControlEnabled) {
        this.admisControlEnabled = admisControlEnabled;
    }
    public String getAutoLevel() {
        return autoLevel;
    }
    public void setAutoLevel(String autoLevel) {
        this.autoLevel = autoLevel;
    }
    public Integer getCpuFailoverPercent() {
        return cpuFailoverPercent;
    }
    public void setCpuFailoverPercent(Integer cpuFailoverPercent) {
        this.cpuFailoverPercent = cpuFailoverPercent;
    }
    public String getDsCandidatePolicy() {
        return dsCandidatePolicy;
    }
    public void setDsCandidatePolicy(String dsCandidatePolicy) {
        this.dsCandidatePolicy = dsCandidatePolicy;
    }
    public String getIsolationResponse() {
        return isolationResponse;
    }
    public void setIsolationResponse(String isolationResponse) {
        this.isolationResponse = isolationResponse;
    }
    public Integer getMemFailoverPercent() {
        return memFailoverPercent;
    }
    public void setMemFailoverPercent(Integer memFailoverPercent) {
        this.memFailoverPercent = memFailoverPercent;
    }
    public String getRestartPriority() {
        return restartPriority;
    }
    public void setRestartPriority(String restartPriority) {
        this.restartPriority = restartPriority;
    }
    public Integer getDcId() {
        return dcId;
    }
    public void setDcId(Integer dcId) {
        this.dcId = dcId;
    }

}
逻辑层:

package com.vmware.cluster;

import com.vmware.pojo.ClusterInfo;
import com.vmware.vim25.ClusterFailoverResourcesAdmissionControlPolicy;
import com.vmware.vim25.mo.*;

import java.util.ArrayList;

/**
 * Created by vixuan-008 on 2015/4/27.
 */
public class ClusterOption {

    /**
     * 数据集群发现
     * @param serviceInstance
     * @return
     */

    public ArrayList<ClusterInfo> clusterDiscovery(ServiceInstance serviceInstance,String dcName){
        ArrayList<ClusterInfo> result = new ArrayList<ClusterInfo>();
       // ServiceInstance serviceInstance = null;
        try{
          //  serviceInstance = resourcePoolServiceInstance.getServiceInstance();
            Folder rootFolder = serviceInstance.getRootFolder();
            Datacenter dc = (Datacenter) new InventoryNavigator(rootFolder).searchManagedEntity("Datacenter", dcName);
            ManagedEntity[] clusters =  new InventoryNavigator(dc).searchManagedEntities("ClusterComputeResource");
            for(int i=0;i<clusters.length;i++)
            {
                ClusterComputeResource cluster = (ClusterComputeResource)clusters[i];
                ClusterInfo clusterInfo = getClusterInfo(cluster);
                //被充信息
                result.add(clusterInfo);
            }

        }catch(Exception e){

        }
        return result;
    }


    /**
     * 得取集群信息
     * @param cluster
     * @return
     */
    public ClusterInfo getClusterInfo(ClusterComputeResource cluster){
        ClusterInfo clusterInfo = new ClusterInfo();
        clusterInfo.setName(cluster.getName());
        clusterInfo.setHaEnabled(cluster.getConfiguration().getDasConfig().getEnabled());
        clusterInfo.setHaFailoverLevel(cluster.getConfiguration().getDasConfig().getFailoverLevel());
        clusterInfo.setHaHostMonitoring(cluster.getConfiguration().getDasConfig().getHostMonitoring());
        clusterInfo.setHaVmMonitoring(cluster.getConfiguration().getDasConfig().getVmMonitoring());
        clusterInfo.setAdmisControlEnabled(cluster.getConfiguration().getDasConfig().getAdmissionControlEnabled());
        if(cluster.getConfiguration().getDasConfig().getAdmissionControlPolicy() instanceof ClusterFailoverResourcesAdmissionControlPolicy)
        {
            ClusterFailoverResourcesAdmissionControlPolicy policy = (ClusterFailoverResourcesAdmissionControlPolicy)cluster.getConfiguration().getDasConfig().getAdmissionControlPolicy();
            clusterInfo.setCpuFailoverPercent(policy.getCpuFailoverResourcesPercent());
            clusterInfo.setMemFailoverPercent(policy.getMemoryFailoverResourcesPercent());
        }
        clusterInfo.setRestartPriority(cluster.getConfiguration().getDasConfig().getDefaultVmSettings().getRestartPriority());
        clusterInfo.setIsolationResponse(cluster.getConfiguration().getDasConfig().getDefaultVmSettings().getIsolationResponse());
        clusterInfo.setDsCandidatePolicy(cluster.getConfiguration().getDasConfig().getHBDatastoreCandidatePolicy());
        clusterInfo.setDrsEnabled(cluster.getConfiguration().getDrsConfig().getEnabled());
        clusterInfo.setDrsEnableVmBehaviorOverrides(cluster.getConfiguration().getDrsConfig().getEnableVmBehaviorOverrides());
        clusterInfo.setAutoLevel(cluster.getConfiguration().getDrsConfig().getDefaultVmBehavior().name());
        clusterInfo.setProgId(cluster.getMOR().val);
        return clusterInfo;
    }

}

测试代码:

package com.vmware.main;


import com.vmware.cluster.ClusterOption;
import com.vmware.pojo.ClusterInfo;
import com.vmware.util.Session;
import com.vmware.vim25.mo.*;

import java.util.ArrayList;


/**
 * Created by vixuan-008 on 2015/4/27.
 */
public class ClusterOptinTest {
    public static void main(String[] args){
        try{
            ServiceInstance serviceInstance= Session.getInstance("***", "**", "**");
            ClusterOption clusterOption=new ClusterOption();
            ArrayList<ClusterInfo> list=clusterOption.clusterDiscovery(serviceInstance,"Datacenter");
            if(list.size()>0){
                for(int i=0;i<list.size();i++){
                    ClusterInfo clusterInfo=list.get(i);
                    System.out.println("name:"+clusterInfo.getName());
                    System.out.println("haEnabled:"+clusterInfo.getHaEnabled());
                    System.out.println("haVmMonitoring:"+clusterInfo.getHaVmMonitoring());
                    System.out.println("haHostMonitoring:"+clusterInfo.getHaHostMonitoring());
                    System.out.println("haFailoverLevel:"+clusterInfo.getHaFailoverLevel());
                    System.out.println("cpuFailoverPercent:"+clusterInfo.getCpuFailoverPercent());
                    System.out.println("memFailoverPercent:"+clusterInfo.getMemFailoverPercent());
                }
            }
            serviceInstance.getServerConnection().logout();



        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

效果展示:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值