XenServer Java API:如何检索Xenserver管理IP地址

时间:2013-08-16 19:30:23

标签: java xen

非常感谢您提供的任何帮助/意见/建议。

我们有XenServer 6.0.2,其上配置了多个IP地址,但只有一个管理地址。

我们有使用Xenserver JAVA API绑定来查询Xenserver的Java代码。我们一直使用下面的代码来检索池中所有xenserver的管理IP地址。

           Map<Host, Host.Record> hypervisors = Host.getAllRecords(getConnection());

    for (Host.Record hypRecord : hypervisors.values()) {
        String mgmtIP = hypRecord.address;
                      .........
                      .........
            }

此代码在我们的实验室中有效,但在合作伙伴网站上进行的测试显示此代码存在问题。返回的Ipaddress与管理IP地址不同?例如,在合作伙伴站点,xenserver在盒子上配置了3个IP。让它给它ip1,ip2和ip3。我们使用ip1发出xen api请求并登录,它运行正常。但是上面代码中返回的变量“mgmtIP”的值是ip2。这让我想到: 一个。单个xenserver可以有多个管理IP吗? 湾不行“String mgmtIP = hypRecord.address;”在上面的代码返回管理IP? 湾不应该将xen api请求始终发送到管理IP地址(如果在池中,则为主设备)? C。检索xenserver的管理IP地址的最佳方法是什么?     由于我们在6.0.2,方法:           类Host

上的公共PIF getManagementIface(连接c)

感谢。

1 个答案:

答案 0 :(得分:0)

使用xe:

user@host ~# IFS=,; for uuid in $(xe pif-list management=true --minimal); do echo -n   "$uuid -> "; xe pif-param-get param-name=IP uuid=$uuid; done
12334567-1234-1234-1234-123456787890 -> x.x.x.x
12334567-1234-1234-1234-123456787890 -> x.x.x.x
12334567-1234-1234-1234-123456787890 -> x.x.x.x
12334567-1234-1234-1234-123456787890 -> x.x.x.x

使用api,您将查询相同的逻辑 http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=PIF 对于主机上的pif, pif管理是否真实? 获取IP

另一个可能对你有用的技巧是

user@host ~# xe host-param-get uuid=12334567-1234-1234-1234-123456787890 param-name=address
x.x.x.x

http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=host