- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 yavijava,需要遍历 vCenter 并在其上构建所有主机和 VM 的列表。对于每个主机和虚拟机,我需要检索一些属性,例如名称、RAM/CPU 数量等。我当前的代码如下所示:
ManagedEntity[] hosts = new InventoryNavigator.searchManagedEntities("VirtualMachine");
for(int i=0;i<hosts.length;i++) {
String name = hosts[i].getName();
String xxx = hosts[i].XXXXX;
.....
对于虚拟机也是如此。
我的问题是,考虑到存在大量对象并且每次调用(例如 getName)都会向 vSphere 发送新请求这一事实,是否有更有效的方法来执行此操作?
最佳答案
您需要手动构建一个属性收集器,并根据库存创建一个库存系统来关联对象。我在 github 上有一个集群示例:https://github.com/yavijava/yavijava_cluster_prop_example
RetrieveOptions options = new RetrieveOptions();
options.setMaxObjects(100);
String[] vmProps = new String[2];
vmProps[0] = "name";
vmProps[1] = "runtime.host";
PropertySpec vmSpec = new PropertySpec();
vmSpec.setAll(false);
vmSpec.setType("VirtualMachine");
vmSpec.setPathSet(vmProps);
String[] hostProps = new String[4];
hostProps[0] = "name";
hostProps[1] = "summary.hardware.numCpuCores";
hostProps[2] = "summary.hardware.cpuModel";
hostProps[3] = "summary.hardware.memorySize";
PropertySpec hostSpec = new PropertySpec();
hostSpec.setAll(false);
hostSpec.setType("HostSystem");
hostSpec.setPathSet(hostProps);
String[] clusterProps = new String[2];
clusterProps[0] = "name";
clusterProps[1] = "parent";
PropertySpec clusterSpec = new PropertySpec();
clusterSpec.setAll(false);
clusterSpec.setType("ClusterComputeResource");
clusterSpec.setPathSet(clusterProps);
ObjectSpec oSpec = new ObjectSpec();
oSpec.setObj(clusterMe.getMOR());
oSpec.setSelectSet(com.vmware.vim25.mo.util.PropertyCollectorUtil.buildFullTraversalV4());
PropertyFilterSpec[] pfSpec = new PropertyFilterSpec[1];
pfSpec[0] = new PropertyFilterSpec();
ObjectSpec[] oo = new ObjectSpec[1];
oo[0] = oSpec;
pfSpec[0].setObjectSet(oo);
PropertySpec[] pp = new PropertySpec[3];
pp[0] = vmSpec;
pp[1] = hostSpec;
pp[2] = clusterSpec;
pfSpec[0].setPropSet(pp);
RetrieveResult ret = serviceInstance.getPropertyCollector().retrievePropertiesEx(pfSpec, options);
for (ObjectContent aRet : ret.getObjects()) {
if(aRet.getObj().type.equalsIgnoreCase("ClusterComputeResource")) {
printInfo(aRet);
}
if(aRet.getObj().type.equalsIgnoreCase("HostSystem")) {
System.out.println("Host Info: ");
printInfo(aRet);
System.out.println("#######################");
}
if(aRet.getObj().type.equalsIgnoreCase("VirtualMachine")) {
System.out.println("VirtualMachine: ");
printInfo(aRet);
System.out.println("#######################################");
}
}
}
private static void printInfo(ObjectContent objectContent) {
// This is super generic here... To actually relate the objects so you
// know which HostSystem a VirtualMachine lives on you need to implement
// some kind of inventory system and use the MOR from the HostSystem
// and the MOR from the vm.runtime.host
for(DynamicProperty props: objectContent.getPropSet()) {
System.out.println(props.val);
}
}
关于java - 遍历 vcenter list 和检索属性的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31546443/
我有以下问题: 有两个单独的 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
我是一名优秀的程序员,十分优秀!