云平台系统用户提出一个需求,要求根据物理机主机名或者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字段:

这个函数是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属性:

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

最新文章

  1. [NOIP2012]国王游戏 题解
  2. Selenium的PO模式(Page Object Model)|(Selenium Webdriver For Python)
  3. mongodb(mongoose-redis-cache)
  4. Android中通过反射获取资源Id
  5. mysql 和字符串截取相关的知识点
  6. Python抓取页面中超链接(URL)的三中方法比较(HTMLParser、pyquery、正则表达式) <转>
  7. 4. 在Inspector面板中显示类中变量+ 拓展编辑器
  8. android 19 activity纵横屏切换的数据保存与恢复
  9. Spring二 Bean详解
  10. js/jquery中实现图片轮播
  11. Python MySQLdb Mac安装遇到的问题
  12. 使用GDAL图书馆RPC校正问题
  13. 【转】怎么导出jar包
  14. 【代码学习】MYSQL数据库的常见操作
  15. 初学Java Web(4)——Servlet学习总结
  16. 开源方案搭建可离线的精美矢量切片地图服务-3.Mapbox个性化地图定制入门
  17. [Swift]LeetCode680. 验证回文字符串 Ⅱ | Valid Palindrome II
  18. 分布式监控系统开发【day38】:报警策略队列处理(五)
  19. 深入理解Linux内核-系统调用
  20. Android ——利用OnDraw实现自定义View(转)

热门文章

  1. C 碎片十一 扫雷源码
  2. iOS开发ReactiveCocoa学习笔记(六)
  3. ios MBProgressHUD 使用,及二次封装
  4. 解惑好文:移动端H5页面高清多屏适配方案
  5. while循环,break和continue,运算符,格式化输出
  6. Java字节流与字符流的区别详解
  7. SpringBoot的启动报错
  8. 【Android开发笔记】Android Splash Screen 启动界面
  9. chrome中清除dns缓存
  10. 绿卡基础知识:I-129