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版权协议,转载请附上原文出处链接和本声明。