novawwwzs12558comI3578II9877hypervisor接口添加host_ip字段

简介: 云平台系统用户提出一个需求,要求根据物理机主机名或者IP查询其上虚拟机列表。根据主机名查询好办,nova的list接口提供了host参数;按主机IP查询就不那么直接了,需要先将IP反解析成主机名,然后使用主机名参数调用list接口。

云平台系统用户提出一个需求,要求根据物理机主机名或者IP查询其上虚拟机列表。根据主机名查询好办,nova的list接口提供了host参数;按主机IP查询就不那么直接了,需要先将IP反解析成主机名,然后使用主机名参数调用list接口。为了减少与其他系统的耦合,我们考虑nova自身能不能实现IP到主机名的转换。

实际上nova hypervisor数据结构对应的数据表compute_nodes中包含了host_ip字段,只是在查询时没有返回,稍作修改即可。

修改nova.api.openstack.compute.hypervisors.HypervisorsController._view_hypervisor()函数,给hyp_dict增加'host_ip': hypervisor.host_ip字段:
01

这个函数是hypervisor接口的基础,list和detail等接口都会调用这个接口。所以在这里增加host_ip字段后,调用list、detail接口返回的数据都包含host_ip了。

同时为了在nova hypervisor-list命令行结果中显示主机IP,需要对novaclient做一个小修改,在novaclient.v2.shell.do_hypervisor_list()函数中,columns定义了要展示的列,添加一个'Host IP'字段,它在取数据时会被转化成对应的host_ip属性:
02

此时执行nova hypervisor-list,就会看到包含了Host IP信息:
03

相关文章
|
4月前
|
Shell
openstack 查询网络的port
在OpenStack中,可以使用以下命令来查询网络的端口信息: ```bash openstack port list ``` 该命令将显示所有端口的列表,包括端口的ID、网络ID、MAC地址、IP地址等信息。 如果您只想查询特定网络的端口,可以使用`openstack port list --network <network_id>`命令,其中`<network_id>`是您要查询的网络ID。 另外,如果您想查看端口的详细信息,可以使用`openstack port show <port_id>`命令,其中`<port_id>`是您要查询的端口ID。该命令将显示端口的详细信息,包括网
|
4月前
|
Shell
openstack 查询网络的port 关联的虚拟机
在OpenStack中,可以通过以下步骤查询网络的端口关联的虚拟机: 打开命令行终端,并使用OpenStack的命令行工具(如openstack命令行客户端)登录到OpenStack平台。 执行以下命令来获取所有端口的列表: bash openstack port list 这将显示所有端口的列表,包括端口ID、网络ID、MAC地址等信息。 3. 从端口列表中,找到与虚拟机相关的端口。通常情况下,虚拟机的端口具有与虚拟机实例相关的标识符,例如MAC地址或端口ID。 4. 执行以下命令来获取虚拟机实例的详细信息: bash openstack instance show <instanc
|
Kubernetes 网络协议 容器
Kubernetes - 内部 IP/DNS/Port 寻址匹配讲解
Kubernetes - 内部 IP/DNS/Port 寻址匹配讲解
218 0
Kubernetes - 内部 IP/DNS/Port 寻址匹配讲解
|
域名解析 存储 缓存
网络协议之:Domain name service DNS详解
网络协议之:Domain name service DNS详解
网络协议之:Domain name service DNS详解
|
网络协议 Linux Windows
localhost、127.0.0.1 和 本机IP 三者的区别
问: 是不是localhost就等于本地的IP啊?  答:不是,localhost等于127.0.0.1。 问:是不是以后所有访问localhost的都可以换成127.0.0.1 ? 答:是的,本机的ip内网都可以访问,127.0.01只能本机访问。 问:你说的内网 就是我们用的同一条宽带,同一个宽带账号的人吗 ? 答:是的。 所以,大佬们说的内网访问。我们只要在同一局域网之内,都能通过IP去访问。
848 0
|
开发工具
Mac修改主机host地址
Mac修改主机host地址
172 0