vijava 连接vCenter 获取 虚拟机信息 demo

package com.example.demo.test;

import com.vmware.vim25.VirtualMachineQuickStats;
import com.vmware.vim25.VirtualMachineSummary;
import com.vmware.vim25.mo.*;

import java.net.URL;

/**
 * test  获取虚拟机信息
 *
 * @author 
 * @date 2020/4/24
 */
public class testVM {


    public static void main(String[] args) {
        //链接vCenter
        String url = "**";
        String userName = "**";
        String passWord = "***";
        ServiceInstance si = null;
        try {
            si = new ServiceInstance(new URL("https://" + url + "/sdk"), userName, passWord, true);
            Folder rootFolder = si.getRootFolder();
            //获取虚拟机计算机资源
            ManagedEntity[] me = new InventoryNavigator(rootFolder).searchManagedEntities("ClusterComputeResource");

            ClusterComputeResource ccr = null;
            if (me.length > 0) {
                for (ManagedEntity entity : me) {
                    ccr = (ClusterComputeResource) entity;
                    System.out.println("ccr==="+ccr);
                    //获取主机系统
                    HostSystem[] hs = ccr.getHosts();
                    if(hs.length>0){
                        for(HostSystem hst:hs){
                            //获取虚拟机资源
                            VirtualMachine[] vmi=hst.getVms();
                            for(VirtualMachine vm :vmi){
                                VirtualMachineDTO vmDTO = new VirtualMachineDTO();
                                vmDTO.setName(vm.getName());
                                System.out.println("主机名称:"+vm.getName());

                                vmDTO.setStatus(vm.getOverallStatus().name());
                                System.out.println("主机状况:"+vm.getOverallStatus().name());

                                vmDTO.setState(vm.getSummary().getRuntime().getPowerState().name());
                                System.out.println("主机状态:"+vm.getSummary().getRuntime().getPowerState().name());
                                //获取虚拟机摘要
                                VirtualMachineSummary summary = vm.getSummary();
                                Double comittedSpace =Double.valueOf(summary.getStorage().getCommitted()/1024/1024/1024);
                                System.out.println("已用空间(G)comittedSpace==="+comittedSpace);
                                Double unComittedSpace =Double.valueOf(summary.getStorage().getUncommitted()/1024/1024/1024);
                                System.out.println("剩余空间(G)unComittedSpace==="+unComittedSpace);
                                vmDTO.setProvisionedSpace(comittedSpace+unComittedSpace);
                                vmDTO.setUsedSpace(comittedSpace);

                                //获取虚拟机统计
                                VirtualMachineQuickStats quickStats = summary.getQuickStats();
                                //CPU
                                System.out.println("主机CPU:"+quickStats.getOverallCpuDemand());
                                vmDTO.setHostCPU(quickStats.getOverallCpuDemand());
                                //主机内存
                                System.out.println("主机内存:"+quickStats.getHostMemoryUsage());
                                vmDTO.setHostMemory(quickStats.getHostMemoryUsage());
                                System.out.println("vmDTO===="+vmDTO);
                                System.out.println("=========================");
                            }
                        }
                    }
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            si.getServerConnection().logout();
        }

    }
}

版权声明:本文为snow1128原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。