Windows下Libvirt Java API使用教程(二)- 接口使用说明
2012-05-16 19:39:43 来源:WEB开发网核心提示: 介绍完libvirt Java API的部署工作,接下来我们就介绍一下接口的使用和代码样例,Windows下Libvirt Java API使用教程(二)- 接口使用说明,libvirt的管理单位是单个主机,所以探测和监控接口所能获取的信息的最大范围也是主机,所以先从主机入手,验证libvirt接口
介绍完libvirt Java API的部署工作,接下来我们就介绍一下接口的使用和代码样例。
libvirt的管理单位是单个主机,所以探测和监控接口所能获取的信息的最大范围也是主机。所以先从主机入手,验证libvirt接口。主机(libvirt所在管理节点)探测相关接口验证代码如下:
@Before
public void init() {
System.setProperty("jna.library.path",
"D:/Git-Repo/git/libvirt-java/libvirt-java/src/test/java/kubi/coder/");
try {
xenConn = new Connect("xen+tcp://10.4.55.203/");
// system代表拥有系统权限/session是用户权限
kvmConn = new Connect("qemu+tcp://10.4.54.10/system");
} catch (LibvirtException e) {
e.printStackTrace();
}
}
/**
* 主机信息探测接口验证,验证可以获取的主机属性和监控指标,分别考虑Xen环境和KVM环境
*
*
* @author lihzh
* @date 2012-5-15 下午1:28:00
*/
@Test
public void testDetectHost() {
// KVM
doDetectHost(kvmConn);
// XEN
doDetectHost(xenConn);
}
/**
* 执行探测主机测试函数
*
* @param conn
* @author lihzh
* @date 2012-5-15 下午1:37:37
*/
private void doDetectHost(Connect conn) {
try {
// Returns the free memory for the connection
// System.out.println("FreeMemory: " + conn.getFreeMemory());// 不支持
// Returns the system hostname on which the hypervisor is running.
// (the result of the gethostname(2) system call)
// If we are connected to a remote system,
// then this returns the hostname of the remote system
System.out.println("Host name: " + conn.getHostName());
// Gets the name of the Hypervisor software used.
System.out.println("Type: " + conn.getType());
// Gets the version level of the Hypervisor running. This may work
// only with hypervisor call, i.e. with priviledged access to the
// hypervisor, not with a Read-Only connection. If the version can't
// be extracted by lack of capacities returns 0.
// Returns:
// major * 1,000,000 + minor * 1,000 + release
System.out.println(conn.getVersion());
NodeInfo nodeInfo = conn.nodeInfo();
System.out.println("the number of active CPUs: " + nodeInfo.cpus);
System.out.println("number of core per socket: " + nodeInfo.cores);
System.out.println("memory size in kilobytes: " + nodeInfo.memory);
System.out.println("expected CPU frequency: " + nodeInfo.mhz);
System.out.println("string indicating the CPU model: "
+ nodeInfo.model);
System.out.println("the number of NUMA cell, 1 for uniform: "
+ nodeInfo.nodes);
System.out.println("number of CPU socket per node: "
+ nodeInfo.sockets);
System.out.println("number of threads per core: "
+ nodeInfo.threads);
System.out
.println("the total number of CPUs supported but not necessarily active in the host.: "
+ nodeInfo.maxCpus());
// for (String interName : conn.listInterfaces()) {
// System.out.println(interName);
// } 不支持
// Provides the list of names of defined interfaces on this host
// for (String interName : conn.listDefinedInterfaces()) {
// System.out.println(interName);
// } // 不支持
// Lists the active networks.
for (String networkName : conn.listNetworks()) {
System.out.println("Network name: " + networkName);
}
// Lists the names of the network filters
for (String networkFilterName : conn.listNetworkFilters()) {
System.out.println("Network filter name: " + networkFilterName);
}
System.out.println(conn.getCapabilities());
} catch (LibvirtException e) {
e.printStackTrace();
}
}
更多精彩
赞助商链接
