- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 vSphere API 收集 esx 系统的信息。通过使用这个API,我可以通过提供IP来收集esx主机的信息。
我正在使用 java 和 vsphere API 以及 java.这是代码:
try {
ServiceInstance si = new ServiceInstance(new URL(url), user, pass,true);
System.out.println("host :"+host+"---"+si.getAboutInfo().getFullName());
System.out.println(" Version is .. " +si.getAboutInfo().version);
System.out.println(" os type is .. " +si.getAboutInfo().osType);
System.out.println("Vendor is .. " + si.getAboutInfo().vendor);
System.out.println("name is" + si.getAboutInfo().name);
ManagedEntity[] managedEntities = new InventoryNavigator(
si.getRootFolder()).searchManagedEntities("VirtualMachine");
ManagedEntity[] hostmanagedEntities = new InventoryNavigator(
si.getRootFolder()).searchManagedEntities("HostSystem");
for (ManagedEntity hostmanagedEntity : hostmanagedEntities) {
HostSystem hostsys = (HostSystem) hostmanagedEntity;
String ESXhostname = hostsys.getName();
HostListSummary hls = hostsys.getSummary();
HostHardwareSummary hosthwi = hls.getHardware();
HostListSummaryQuickStats hqs = hls.getQuickStats();
Datastore[] HDS = hostsys.getDatastores();
StringBuilder DS = new StringBuilder();
for (int i=0;i <HDS.length;i++){
DatastoreSummary dsm =HDS[i].getSummary();
DS.append(dsm.name+":"+dsm.capacity+":"+dsm.freeSpace+"-");
}
int MEM=hqs.overallMemoryUsage;
int UPT=hqs.getUptime();
Integer CPU=hqs.getOverallCpuUsage();
String esxkey = "ESXRealInfo";
String esxvalue = "ESXhostname-" + ESXhostname
+ ";CPU Usage-" + CPU + ";MEM Usage-"
+ MEM + ";UPTIME-" + UPT+"; Datastores -"+DS;
}
}
catch (Exception e){ e.printStackTrace();}
通过使用此代码并操作管理实体对象,我可以提取每个主机和在每个主机上工作的虚拟机的信息。
现在我不想从不同的主机收集信息,而是想从vcenter服务器收集信息。 vCenter 服务器还包含有关主机及其虚拟机的所有详细信息。
我想通过使用 vCenter 服务器而不是访问每个主机来获取此信息。是否可以得到这些信息?怎么办?
最佳答案
你走在正确的道路上。您只需要迭代主机系统对象。
这是一个代码:
String url = "https://" + host + "/sdk/vimService";
System.out.println("In main function");
ServiceInstance si = null;
ManagedEntity[] managedEntities = null;
ManagedEntity[] hostmanagedEntities = null;
try {
si = new ServiceInstance(new URL(url), user, pass,true);
hostmanagedEntities = new InventoryNavigator(
si.getRootFolder()).searchManagedEntities("HostSystem");
//process each host and call getVMDetails function to get details of all host
for (ManagedEntity managedEntity : hostmanagedEntities) {
HostSystem hostsystemobj = (HostSystem) managedEntity;
System.out.println("Host: '" + hostsystemobj.getName() + "'");
hostname = hostsystemobj.getName();
String ESXhostname = hostsystemobj.getName();
HostHardwareInfo hw = hostsystemobj.getHardware();
String ESXhostmodel = hw.getSystemInfo().getModel();
String Vendor = hw.getSystemInfo().getVendor();
//print all above variables.
long ESXhostmem = hw.getMemorySize();
short ESXhostcores = hw.getCpuInfo().getNumCpuCores();
long ESXMHZ = hw.getCpuInfo().getHz();
//call function that collects vms data for specific host
getVMDetailsInv(si,hostsystemobj.getName());
}
}
catch (InvalidProperty e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RuntimeFault e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
private void getVMDetailsInv(ServiceInstance si,String name) {
HostSystem myhost;
System.out.println("host name from details function is .. " + name);
try {
myhost = (HostSystem) new InventoryNavigator(si.getRootFolder()).searchManagedEntity("HostSystem",name);
System.out.println("myhost is .. " + myhost);
ManagedEntity[] hostSpecificEntities = new InventoryNavigator(myhost).searchManagedEntities("VirtualMachine");
for (int i = 0; i < hostSpecificEntities.length; i++) {
VirtualMachine vm = (VirtualMachine) hostSpecificEntities[i];
String macAddress="";
for(VirtualDevice vd:vm.getConfig().getHardware().getDevice()){
try {
VirtualEthernetCard vEth=(VirtualEthernetCard)vd;
macAddress=vEth.macAddress;
}
catch(Exception e){}
}
System.out.println("Name : "+vm.getName());
String vmVersion = vm.getConfig().version;
System.out.println("vm wayer version is ..from inventory.. "+ vm.getConfig().version);
System.out.println("geust os uuid "+vm.getSummary().getConfig().uuid);
System.out.println("geust mac Address of guest "+macAddress);
System.out.println("geust id is "+vm.getSummary().getGuest().guestId);
System.out.println("host id is "+vm.getSummary().getGuest().getIpAddress());
}
} catch (RuntimeFault e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
这可能对你有帮助..
关于java - 如何使用 vSphere API 和 Java 获取所有连接到 vCenter 服务器的 esx 主机的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22808749/
我有以下问题: 有两个单独的 vCenter (ESXi)。他们无法看到对方或以任何方式交流。 我可以在 vCenter1 中创建 VM 的克隆,但我想在 vCenter2 中移动该克隆。 有没有办法
我正在使用VSphere Automation SDK 6.7 for Java 开发一些虚拟机和数据中心的处理程序。 我做得很好,直到我想检索以下内容: 收集与虚拟机相关的所有事件(我已经有区分类型
我试图找出为什么我们的 VMware VCenter 服务器消耗如此多的 CPU 和内存。我注意到服务器上运行着几个 java 进程,它们消耗了大量的 RAM 内存。 VCenter 服务器是虚拟的,
我正在尝试在 vCenter Server 设备上运行 Pyvmomi 社区示例中的一些示例脚本: https://github.com/vmware/pyvmomi-community-sample
我正在关注 vmware 文档 https://code.vmware.com/apis/62/vcenter-management#/使用 ReST API 时要提供哪些 header 以对 VCe
所以 Kubernetes 有一个非常新颖的网络模型,我相信这是基于它认为默认 Docker 网络的一个缺点。虽然我仍在努力理解:(1)它认为实际的缺点是什么,以及(2)Kubernetes 的一般解
我想将 10-15 个 VMWare 主机部署到 cloudstack。这是我第一次使用任何类型的云。我正在研究安装和架构,我一直坚持使用 VMWare 主机我必须安装 VCenter 服务器,但我不
我正在使用 yavijava,需要遍历 vCenter 并在其上构建所有主机和 VM 的列表。对于每个主机和虚拟机,我需要检索一些属性,例如名称、RAM/CPU 数量等。我当前的代码如下所示: Man
如何禁用 VMware vcenter 设备的密码过期和清除密码历史记录? 最佳答案 可以使用这样的更改用户密码过期信息工具来完成 chage -M -1 root; echo "">/etc/sec
尝试“设置 vCenter Server Appliance”时出现“内部错误”错误,如所附屏幕截图所示: 它开始如第二个屏幕截图所示,然后抛出内部错误,看起来它未能设置主机名。 我已经检查过/var
我一直在为 Oxygen 插件开发 View ,但无法让 GridBagLayout 从顶部开始。目前,当您向 JPanel 添加内容时,它会在 div 中垂直居中,如下图所示。 // swing i
我有一台 IP 地址为 192.168.3.150 的 Windows 2008 虚拟机,在该虚拟机上安装了 vCenter Server。由于我不是 vSphere 专家,因此我刚刚完成了简单安装。
背景 我本来是要在vmware 官方download 一个6.7的vcenter,但是除了vmware-vcsa-all-6.7 还看到一个 vmware-vim-all-6.7 。vcsa 4g
我正在尝试使用 REST API 从 ova 创建虚拟机。我可以使用 Rest API 来做到这一点: https://vcenter_ip/rest/com/vmware/vcenter/ovf/l
您好,我正在尝试调整 vcenter web ui 客户端界面,我尝试使用 web 客户端 SDK 创建一个新的扩展点,有没有什么方法可以在不添加扩展点的情况下更改 web 客户端 UI,我想包括一个
我需要获取虚拟机的 vCenter 信息,或者至少只是 vCenter 名称, 我在网上查看了 vmware 帮助,他们所拥有的只是连接到 vCenter 以获取 VM 信息,这与我想要实现的完全相反
503 服务不可用(无法连接到端点: [N7Vmacore4Http16LocalServiceSpecE:0x7fc8bad2f810] _serverNamespace =/vsphere-cli
我正在从 Ubuntu 运行一组 powerCLI 脚本以连接到 VCenter 并进行大量配置更改。每个脚本都是通过 SSH 调用的,因此它每次都连接和断开与 VCenter 的连接。这相当耗时,是
我正在尝试在我的 vcenter 中获取已注册虚拟机的列表(按名称)。问题是我有很多虚拟机 (~5K),而且我做了很多次 (O(1000)/小时)。 我使用的 SDK 导致大量流量(1-2MB/请求)
我正在尝试使用 InitiateFileTransferToGuest 方法将文件发送到 VM。不幸的是,我被卡住了。这是相关代码,其中 VClient 是已经成功连接的 VimClient: Gue
我是一名优秀的程序员,十分优秀!