Java如何获取VMware中Vcenter/ServerInstance下的各种硬件信息

用Java来获取VMware ESX Server的信息可以通过一个第三方jar包进行方便的操作:

 Vijava – Vmware infrastructure(vSphere) java API

 

关于ESX Server的介绍,可以参照我的另一篇博客:http://josh-persistence.iteye.com/admin/blogs/1887722

 

下面看看一些相关介绍,然后再看对应的程序:

1.   VCenter/ServiceInstance Strucutre



 

1). ServiceInstance -- Root of the inventory; created by vSphere.   (VCenter)

 

2). Datacenter -- A container that represents a virtual data center. It contains hosts, network entities, virtual machines and virtual applications, and datastores.

 

3). ComputeResource -- A compute resource (either a cluster or a stand-alone host) (Cluster)

 

4). HostSystem -- A single host (ESX Server or VMware Server).

 

 

5). AboutInfo -- This data object type describes system information including the name, type, version, and build number. (HostSystem/ESX Server/VMware Sever’s AboutInfo)

 

<!--[if !supportLists]-->1.     2.  Below are EsxServer/HostSystem properties is returned from Vijava.

 

 



 

3. 进一步了解ESXServer的Strutcture



 

 

EsxServer contains several vm(Virtual Machine of EsxServer), EsxServer and vm’ relationships set on Network(network of EsxServer), Network contains Virtual NIC, Virtual Switch. Virtual Switch is responsible for assigning Physical NIC to VM, just like the VM has its own NIC(Virtual NIC). There have to consider VM and NIC’s relationship, because the NIC may be assigned to one of the VM unexpectedly  which means the VM can be related to different Virtual NIC.



 



 

 

从上面的架构图可看出,如果我们需要获取VCenter,ESXServer等的信息,就包括获取Disk/Volumn/Storage, 虚拟交换机,内存,虚拟网卡,物理网卡,内存等信息,最主要的是由于物理网卡通过虚拟交换机分配给每个虚拟主机作为虚拟网卡,这种关系是随机的,或者说有一定的分配规则的,我们在每次获取VCenter的信息时,都需要重新的去获取物理网卡的分配。

 

下面就是一个实例,该实例展现了怎样从VMware上通过vSphere提供的API(vijava.jar)来获取VCener/ServerInstance下的所有信息,包括上面2.  Below are EsxServer/HostSystem properties is returned from Vijava.中列的所有信息。更多的API,可以参照:http://pubs.vmware.com/vsphere-50/index.jsp

 

 

import java.net.URL;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

 

import org.apache.log4j.Logger;

 

import com.ebay.odb.sync.ESXServerSync;

import com.vmware.vim25.AboutInfo;

import com.vmware.vim25.ClusterComputeResourceSummary;

import com.vmware.vim25.ClusterConfigInfo;

import com.vmware.vim25.DatastoreInfo;

import com.vmware.vim25.HostHardwareInfo;

import com.vmware.vim25.HostHostBusAdapter;

import com.vmware.vim25.HostInternetScsiHba;

import com.vmware.vim25.HostInternetScsiHbaSendTarget;

import com.vmware.vim25.HostInternetScsiTargetTransport;

import com.vmware.vim25.HostMultipathInfoLogicalUnit;

import com.vmware.vim25.HostMultipathInfoPath;

import com.vmware.vim25.HostNetworkInfo;

import com.vmware.vim25.HostPortGroup;

import com.vmware.vim25.HostScsiDiskPartition;

import com.vmware.vim25.HostStorageDeviceInfo;

import com.vmware.vim25.HostTargetTransport;

import com.vmware.vim25.HostVirtualNic;

import com.vmware.vim25.HostVirtualSwitch;

import com.vmware.vim25.HostVmfsVolume;

import com.vmware.vim25.HostNasVolume;

import com.vmware.vim25.PhysicalNic;

import com.vmware.vim25.VirtualDevice;

import com.vmware.vim25.VirtualEthernetCard;

import com.vmware.vim25.VirtualHardware;

import com.vmware.vim25.VirtualMachineConfigInfo;

import com.vmware.vim25.VirtualMachineSummary;

import com.vmware.vim25.VmfsDatastoreInfo;

import com.vmware.vim25.NasDatastoreInfo;

import com.vmware.vim25.mo.ClusterComputeResource;

import com.vmware.vim25.mo.Datacenter;

import com.vmware.vim25.mo.Folder;

import com.vmware.vim25.mo.HostSystem;

import com.vmware.vim25.mo.InventoryNavigator;

import com.vmware.vim25.mo.ManagedEntity;

import com.vmware.vim25.mo.ServiceInstance;

import com.vmware.vim25.mo.VirtualMachine;

 

public class VCenterInventory

{

private static final Logger log = Logger.getLogger(ESXServerSync.class);

private String host;

 

private String username;

 

private String password;

 

public VCenterInventory(String host, String username, String password) {

super();

this.host = host;

this.username = username;

this.password = password;

}

 

public VCenter getVCenterInfo() throws Exception {

URL url = new URL("https", host, "/sdk");

ServiceInstance si = new ServiceInstance(url, username, password, true);

Folder rootFolder = si.getRootFolder();

VCenter vc = new VCenter();

AboutInfo ai = si.getAboutInfo();

vc.setHostname(host);

vc.setDescr(ai.getFullName());

vc.setVersion(ai.getVersion());

InventoryNavigator inav = new InventoryNavigator(rootFolder);

ManagedEntity[] esxs = inav.searchManagedEntities("HostSystem");

List<ESXServer> servers = new ArrayList<ESXServer>();

for (ManagedEntity esx : esxs) {

HostSystem hs = (HostSystem) esx;

HostHardwareInfo hwi = hs.getHardware();

long hz = hwi.cpuInfo.hz;

long e9 = 1000000000;

double hzd = new java.math.BigDecimal(((double) hz) / e9).setScale(2, java.math.BigDecimal.ROUND_HALF_UP)

.doubleValue();

ESXServer server = new ESXServer();

server.setName(hs.getName());

server.setCpufrequency(String.valueOf(hzd) + "GHz");

servers.add(server);

}

vc.setEsxservers(servers);

 

ManagedEntity[] clusters = inav.searchManagedEntities("Datacenter");

List<Cluster> cs = new ArrayList<Cluster>();

for (ManagedEntity me : clusters) {

Datacenter dc = (Datacenter) me;

String path = dc.getName();

cs.addAll(getClusters(dc, path, dc.getHostFolder()));

}

vc.setClusters(cs);

si.getSessionManager().logout();

return vc;

}

 

 

 

private static List<Cluster> getClusters(Datacenter dc, String path, Folder f) throws Exception {

List<Cluster> cs = new ArrayList<Cluster>();

ManagedEntity[] ces = f.getChildEntity();

for (ManagedEntity ce : ces) {

if (ce instanceof ClusterComputeResource) {

cs.add(getClusterInfo(dc, path, (ClusterComputeResource) ce));

}

else if (ce instanceof Folder) {

cs.addAll(getClusters(dc, path + ":" + ce.getName(), (Folder) ce));

}

}

return cs;

}

 

public List<VMachine> getAllVM(String esxserver) throws Exception {

ManagedEntity[] esxs = null;

URL url = new URL("https", host, "/sdk");

ServiceInstance si = new ServiceInstance(url, username, password, true);

Folder rootFolder = si.getRootFolder();

esxs = new InventoryNavigator(rootFolder).searchManagedEntities("HostSystem");

for (ManagedEntity esx : esxs) {

HostSystem hs = (HostSystem) esx;

if (hs.getName().equals(esxserver)) {

List<VMachine> vms = getAllVM(hs);

si.getSessionManager().logout();

return vms;

}

}

si.getSessionManager().logout();

throw new RuntimeException("Cannot find esxserver:" + esxserver);

}

 

public List<Datastore> getAllDatastores(String esxserver) throws Exception {

ManagedEntity[] esxs = null;

URL url = new URL("https", host, "/sdk");

ServiceInstance si = new ServiceInstance(url, username, password, true);

Folder rootFolder = si.getRootFolder();

esxs = new InventoryNavigator(rootFolder).searchManagedEntities("HostSystem");

for (ManagedEntity esx : esxs) {

HostSystem hs = (HostSystem) esx;

if (hs.getName().equals(esxserver)) {

List<Datastore> ds= getAllDatastores(hs);

si.getSessionManager().logout();

return ds;

}

}

si.getSessionManager().logout();

throw new RuntimeException("Cannot find esxserver:" + esxserver);

}

 

public NetworkInfo getNetworkInfo(String esxserver) throws Exception {

ManagedEntity[] esxs = null;

URL url = new URL("https", host, "/sdk");

ServiceInstance si = new ServiceInstance(url, username, password, true);

Folder rootFolder = si.getRootFolder();

esxs = new InventoryNavigator(rootFolder).searchManagedEntities("HostSystem");

for (ManagedEntity esx : esxs) {

HostSystem hs = (HostSystem) esx;

if (hs.getName().equals(esxserver)) {

NetworkInfo ni= getNetworkInfo(hs);

si.getSessionManager().logout();

return ni;

}

}

si.getSessionManager().logout();

throw new RuntimeException("Cannot find esxserver:" + esxserver);

}

 

private NetworkInfo getNetworkInfo(HostSystem esxserver) throws Exception {

NetworkInfo ninfo = new NetworkInfo();

HostNetworkInfo nwi = esxserver.getConfig().getNetwork();

HostPortGroup[] portgroups = nwi.getPortgroup();

Map<String, String> pgMap = new HashMap<String, String>();

for (HostPortGroup portgroup : portgroups) {

pgMap.put(portgroup.getKey(), portgroup.getSpec().getName());

}

PhysicalNic[] pnics = nwi.getPnic();

Map<String, String> pnicMap = new HashMap<String, String>();

for (PhysicalNic pnic : pnics) {

pnicMap.put(pnic.getKey(), pnic.getMac());

}

List<VirtualSwitch> vss = new ArrayList<VirtualSwitch>();

HostVirtualSwitch[] vswtichs = nwi.getVswitch();

for (HostVirtualSwitch vswitch : vswtichs) {

VirtualSwitch vs = new VirtualSwitch();

vs.setName(vswitch.getName());

String[] macKeys = vswitch.getPnic();

if (macKeys != null) {

for (String key : macKeys) {

vs.addPhysicalMAC(pnicMap.get(key));

}

}

String[] pgs = vswitch.getPortgroup();

if (pgs != null) {

for (String pg : pgs) {

vs.addPortgroup(pgMap.get(pg));

}

}

// TODO

vss.add(vs);

}

ninfo.setVss(vss);

 

List<VirtualNic> vnics = new ArrayList<VirtualNic>();

HostVirtualNic[] virtualnics = nwi.getVnic();

for (HostVirtualNic virtualnic : virtualnics) {

VirtualNic vnic = new VirtualNic();

vnic.setName(virtualnic.getDevice());

vnic.setPortgroup(virtualnic.getPortgroup());

vnic.setMac(virtualnic.getSpec().getMac());

vnics.add(vnic);

}

ninfo.setVnics(vnics);

return ninfo;

}

 

private List<Datastore> getAllDatastores(HostSystem esxserver) throws Exception {

List<Datastore> datastores = new ArrayList<Datastore>();

 

Map<String, Disk> storages = new HashMap<String, Disk>();

HostStorageDeviceInfo sd = esxserver.getConfig().getStorageDevice();

HostHostBusAdapter[] hostBusAdapters = sd.getHostBusAdapter();

Map<String, String[]> hostBuses = new HashMap<String, String[]>();

for (HostHostBusAdapter adapter : hostBusAdapters) {

if (adapter instanceof HostInternetScsiHba) {

HostInternetScsiHbaSendTarget[] targets = ((HostInternetScsiHba) adapter).getConfiguredSendTarget();

if (null != targets && targets.length > 0) {

String[] floatings = new String[targets.length];

for (int i = 0; i < targets.length; i++) {

floatings[i] = targets[i].getAddress();

}

hostBuses.put(adapter.getKey(), floatings);

}

}

}

HostMultipathInfoLogicalUnit[] luns = sd.getMultipathInfo().getLun();

for (HostMultipathInfoLogicalUnit lun : luns) {

HostMultipathInfoPath[] paths = lun.getPath();

for (HostMultipathInfoPath path : paths) {

String pathName = path.getName();

String diskName = pathName.substring(pathName.lastIndexOf('-') + 1);

Disk s = new Disk();

s.setPath(pathName);

s.setDiskName(diskName);

String[] floatings = hostBuses.get(path.getAdapter());

s.setAddresses(floatings);

HostTargetTransport transport = path.getTransport();

if (transport instanceof HostInternetScsiTargetTransport) {

s.setIScsiName(((HostInternetScsiTargetTransport) transport).iScsiName);

}

storages.put(diskName, s);

}

}

 

com.vmware.vim25.mo.Datastore[] dss = esxserver.getDatastores();

for (com.vmware.vim25.mo.Datastore ds : dss) {

String name = ds.getName();

DatastoreInfo info = ds.getInfo();

HostVmfsVolume vmfs = null;

HostNasVolume nasfs = null;

if (info instanceof VmfsDatastoreInfo) {

vmfs = ((VmfsDatastoreInfo) info).getVmfs();

//log.warn("get vmfs:"+vmfs.getName());

}else if(info instanceof NasDatastoreInfo){

nasfs = ((NasDatastoreInfo)info).getNas();

//log.warn("get nasfs:"+nasfs.getName());

}

else {

continue;

}

 

Datastore datastore = new Datastore();

datastore.setName(name);

datastore.setStatus(ds.getOverallStatus().name());

datastore.setCapacity(ds.getSummary().getCapacity());

datastore.setFreeSpace(info.getFreeSpace());

datastore.setMaxFileSize(info.getMaxFileSize());

datastore.setUrl(info.getUrl());

datastore.setType(ds.getSummary().getType());

if(vmfs != null){

datastore.setVersion(vmfs.getVersion());

datastore.setVmfsUUID(vmfs.getUuid());

HostScsiDiskPartition[] extents = vmfs.getExtent();

 

for (HostScsiDiskPartition disk : extents) {

String diskName = disk.getDiskName();

datastore.addDisk(storages.get(diskName));

}

}

VirtualMachine[] vms = ds.getVms();

for (VirtualMachine vm : vms) {

datastore.addVm(vm.getName());

}

datastores.add(datastore);

 

}

return datastores;

}

 

 

 

private List<VMachine> getAllVM(HostSystem esxserver) throws Exception {

VirtualMachine[] vms = esxserver.getVms();

 

List<VMachine> machines = new ArrayList<VMachine>();

for (VirtualMachine vm : vms) {

VirtualMachineConfigInfo config = vm.getConfig();

VirtualMachineSummary summary = vm.getSummary();

VMachine vmachine = new VMachine();

vmachine.setName(vm.getName());

vmachine.setUuid(config.getUuid());

VirtualEthernetCard vec = getMac(config.getHardware());

vmachine.setMac(vec.getMacAddress().toUpperCase());

vmachine.setPortgroup(vec.getDeviceInfo().getSummary());

vmachine.setVmPath(config.getFiles().getVmPathName());

vmachine.setVmID(vm.getMOR().get_value());

vmachine.setModel(config.getGuestFullName());

vmachine.setPower(summary.getRuntime().getPowerState().name());

vmachine.setHealth(vm.getOverallStatus().name());

vmachine.setVersion(config.getVersion());

vmachine.setVmIP(summary.getGuest().getIpAddress());

vmachine.setCpucount(String.valueOf(vm.getSummary().getConfig().numCpu));

machines.add(vmachine);

}

return machines;

}

 

private static VirtualEthernetCard getMac(VirtualHardware hardware) {

VirtualDevice[] devices = hardware.getDevice();

for (VirtualDevice device : devices) {

if (device instanceof VirtualEthernetCard) {

return ((VirtualEthernetCard) device);

}

}

return null;

}

 

private static Cluster getClusterInfo(Datacenter dc, String path, ClusterComputeResource ccr) {

Cluster cluster = new Cluster();

cluster.setName(ccr.getName());

cluster.setDatacenter(dc.getName());

cluster.setPath(path);

ClusterComputeResourceSummary summary = (ClusterComputeResourceSummary) ccr.getSummary();

cluster.setCpu(summary.getTotalCpu());

cluster.setCpucount(summary.getNumCpuCores());

cluster.setMemory(summary.getTotalMemory());

cluster.setEvcMode(summary.getCurrentEVCModeKey());

ClusterConfigInfo config = ccr.getConfiguration();

cluster.setHaEnabled(config.getDasConfig().getEnabled());

cluster.setDrsEnabled(config.getDrsConfig().getEnabled());

HostSystem[] hs = ccr.getHosts();

for (HostSystem hostSystem : hs) {

cluster.addServer(hostSystem.getName());

}

return cluster;

}

}

java进行Vmware ESXI开发所需的基础jar包,包含vim25,dom4j,vijava java进行Vmware ESXI开发所需的基础jar包,包含vim25,dom4j,vijava和dom4j的源码包,基本上用到的接口使用这些jar包都可用 立即下载

相关推荐

VMware vCenter Java包 vim25.jar

Developer vCenter for java

vijava 连接vCenter 查询指定虚拟机信息

public void queryVM() { ServiceInstance serviceInstance = null; try { //连接vCenter serviceInstance = connectVCenter(); Folder rootFolder = serviceInstance.getRootFolder(); System.out.println("rootFolder:"+rootFolder.

snow1128的博客 1266

vijava2120100824src.jar

vi java的jar包 vmware sdk jar

Vijava (模板部署虚拟机,并指定自定义规范(终极版本))

源代码: package com.vmware.customzation; import com.vmware.util.Session; import com.vmware.util.StringRandom; import com.vmware.vim25.*; import com.vmware.vim25.mo.*; import java.rmi.RemoteException;

zhouzhiwengang的专栏 6287

java各种jar包

java,android,开发所用的jar包,包括网络开发,柱状图等

vmWare开发包vijava6.0

vmWare开发包,适用于vmware的开发使用。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

Vijava 学习笔记之 HostSystem(内存总大小、内存已使用容量和CPU个数)

package com.vmware.util; import com.vmware.vim25.mo.ServiceInstance; import java.net.URL; /** * Created by vixuan-008 on 2015/4/17. */ public class Session { private static String __serverNam

zhouzhiwengang的专栏 2292

Vivado Schematic视图实战:从RTL分析到布局布线,如何用它快速定位设计问题(附2019.1版操作)

本文深入解析Vivado Schematic视图在FPGA设计中的关键作用,从RTL分析到布局布线全流程,帮助工程师快速定位设计问题。通过三重视图对比、高效调试四步法和高级技巧,提升问题排查效率,缩短调试时间。文章结合2019.1版操作指南和实战案例,展示如何利用Schematic视图解决典型设计问题。

weixin_30591551的博客 488

Vcenter数据采集之maven打包可执行jar血历史

技术点:spring加载xsd过程:http://blog.youkuaiyun.com/bluishglc/article/details/7596118案发背景:1、一个使用maven管理的普通项目(vcenter-collector :关于Vcenter数据采集)2、项目主要技术: java + mybatis(基于接口形式)+其他3、项目中有一个非maven仓库的jar包:vij...

weixin_34054866的博客 224

Cursor聊天记录迁移工具:实现跨设备AI对话同步与备份

在软件开发中,数据持久化与迁移是常见需求,尤其当工具依赖本地存储时。SQLite作为轻量级关系型数据库,因其嵌入式、零配置特性,常被用于存储应用状态与用户数据。其WAL(预写式日志)模式提升了并发性能,但也增加了数据操作复杂性。通过命令行工具与JSON序列化技术,可以实现结构化数据的提取、转换与安全迁移,这对于保障开发资产的连续性与可移植性具有重要价值。例如,在AI辅助编程场景下,开发者与AI的对话记录包含关键的问题分析、解决方案与决策逻辑,是重要的上下文资产。cursor-chat-transfer工具正

weixin_42551967的博客 533

Spring Framework 7.002.Spring IoC 容器与 Bean 简介(Introduction to the Spring IoC Container and Beans)

摘要:Spring框架的核心技术包括IoC容器和AOP技术。IoC容器通过依赖注入实现控制反转,提供Bean管理和配置功能。ApplicationContext作为BeanFactory的扩展,增加了企业级特性。文档详细介绍了容器配置、Bean定义、依赖注入、作用域等核心概念,以及基于注解的配置方式。AOP框架支持80%的AOP需求,并可集成AspectJ。此外还涵盖环境抽象、容器扩展点等高级特性,为Java企业应用开发提供全面支持。(150字)

无 212

vcenter Java接口,vcenter api 接口获取开发

#!/opt/python3/bin/python3#Author: zhaoyong"""只用于模拟开发功能测试"""from pyVmomi importvimfrom pyVim.connect importSmartConnect, Disconnect, SmartConnectNoSSLimportatexitimportargparsedefget_args():parser=arg...

weixin_31994237的博客 1139

Jetson nano 系列之2—板载摄像头IMX219启动

我选用的是亚博科技jetson nano的开发板。

驽马十驾,功在不舍;锲而不舍,金石可镂。 4274

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 获取虚拟...

snow1128的博客 2527

贝叶斯时空模型-INLA-4

该文章中,会简化数学计算的过程,主要是针对,在有数据的基础上,如何应用贝叶斯时空模型,找出影响因素,绘制时间变化的空间分布预测图。上述中关键一步与前几期介绍的不一样的地方是,我们加入了n.group参数,用来指定年份,先看一下Year有多少年的,然后封装在s.index里面。在前述的内容中,我们介绍了,如何处理空间的数据,利用海拔高度预测降雨量的例子。建立好数据及mesh以后,我们现在写INLA公式,如果不考虑残差项,那就是固定效应,现在我们增加残差项,及空间与时间效应。这里的Mesh设定值为10,20。

学习中 2948

数据行小于列索引,内部模式表示可能存在问题

通过检查数据源的完整性和一致性,检查Debezium配置,检查列映射以及启用调试模式和日志记录,您应该能够解决这个错误。请注意,具体的解决方法可能因您的具体情况而异,因此您可能需要根据问题的根本原因进行适当的调整和修复。如果问题仍然存在,您可能需要进一步检查您的数据和配置,并根据具体情况进行调整和修复。在Debezium中,您可以使用列重命名和列映射来定义源和目标之间的列映射关系。通过检查日志,您可以查看详细的错误信息和堆栈跟踪,从而更好地理解问题的根本原因。首先,我们应该检查数据源的完整性和一致性。

XbtoMemory的博客 730

vijava 实时监控HostSystem主机各种指标,以及区分目标对象(直接可用)

自己百度时总能看到这个文章: Vmware Vsphere WebService之vijava 开发(二)一性能信息的采集(实时监控) https://www.cnblogs.com/xiaodige/p/6774413.html 我根据他的代码 完善并有新需求 我用的是vc 6.7 点击图标选项 自定义监控类型 listNm.add("net"); 这个意思就是 选择 -网络 例如 cpu 就是"cpu" 这个可以打断点查出来 Map&...

Wuhaotian1996的博客 1290

C# + YOLO 实时摄像头检测:Emgu CV + ONNX Runtime,30FPS+ 流畅运行

很多教程只给“单张图片推理”代码,一上摄像头就卡成 PPT(<5 FPS)。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 214

vmware vijava客户端调用异常

在使用vmware虚拟化平台时,通过VIJAVA获取VCenter中的Task信息, 如果调用超过30次,会抛出“java.rmi.RemoteException: VI SDK invoke exception:com.vmware.vim25.InvalidState“异常。

jmppok的专栏 3686

西门子G120变频器在立体仓库堆垛机应用参数设置

本文详细介绍了G120 CU240E及CU250S变频器的参数设置流程。主要内容包括:1)快速调试步骤,从新建项目、扫描节点到设置电机类型、负载类型等参数;2)抱闸参数设置方法;3)参数下载异常时的处理方案。重点说明了通过STARTER软件进行向导式调试的完整过程,包括电机铭牌参数输入、识别方式选择等关键环节,并提示了通讯连接注意事项。当下载失败时,提供了通过导入导出项目文件解决问题的具体方法。

xdpcxq的专栏 863

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

VMware vSphere Web Services SDK编程指南(四)- vSphere API 编程模型(二)

vSphere API 编程模型(二) 本节主要包括以下内容: ■ 访问托管对象(Managed Object) ■ 访问 vSphere 服务器数据

zhouxukun123的专栏 4185

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

通过调用Vcenter-Api获取Vcenter中服务器信息

文档对应url:https://developer.vmware.com/apis/vsphere-automation/latest/cis/api/session/post/我们可以用GET方式取https://192.168.0.200/api/vcenter/vm/vm-12311/guest/local-filesystem。get访问https://192.168.0.200/api/vcenter/vm/vm-12311/guest/identity。但和我们实际想要的内容是有差距的。

Q先生 4265

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Using vSphere VI Java API - tutorial

Hello everyone,I am very enthousiast to write this first blog post and share what I've learned about programing with VMware sdk in Java.In this tutorial, I am going to explain the basis of ...

weixin_34146410的博客 266

Vijava (更改虚拟机配置信息(内存、CPU和添加新磁盘)终极版本)

package com.vmware.server; import java.util.List; import java.util.Map; import org.apache.log4j.FileAppender; import org.apache.log4j.Logger; import org.apache.log4j.SimpleLayout; import com.vmware.p

zhouzhiwengang的专栏 5004

Vcenter获取资源信息

用户vcenter的资源采集

qq_56796761的博客 2068
上一篇: VMware - ESX Server
下一篇: Referenced classpath provider does not exist: org.maven.ide.eclipse.launchconfig
iteye_4921
博客等级 码龄8年 25粉丝 59原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值