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

nova hypervisor接口添加host_ip字段的更多相关文章

  1. 二.4vue展示用户数据及用户组操作以及给用户组添加额外字段

    一.用户列表 1.新建(1)views/users/index.vue: <template> <div class="user-list-container"& ...

  2. ASP.NET MVC 5 - 给电影表和模型添加新字段

    在本节中,您将使用Entity Framework Code First来实现模型类上的操作.从而使得这些操作和变更,可以应用到数据库中. 默认情况下,就像您在之前的教程中所作的那样,使用 Entit ...

  3. 关于yii2框架活动记录activeRecord添加默认字段的问题

    平时使用sql的时候可以如下添加默认字段flag: "select a.*,0 as flag from user_info a", 对于yii2框架则需要这样: $query = ...

  4. 在数据表中添加一个字段的SQL语句怎么写

    如果要在数据表中添加一个字段,应该如何表示呢?下面就为您介绍表添加字段的SQL语句的写法,希望可以让您对SQL语句有更深的认识.   通用式: alter table [表名] add [字段名] 字 ...

  5. MySQL创建/删除/清空表,添加/删除字段

    创建表: create table tablename (column_name column_type); create table table_name( id int not null auto ...

  6. MySQL数据库添加一个字段

    MySQL数据库添加一个字段 1.添加一个字段 alter table tableName add 列名  数据类型; 2.添加一个字段设置默认值 alter table tableName add ...

  7. mongoDb 给表添加+ 删除字段

    1 .添加一个字段.  url 代表表名 , 添加字段 content. 字符串类型. db.url.update({}, {$set: {content:""}}, {multi ...

  8. 【译】ASP.NET MVC 5 教程 - 9:添加新字段

    原文:[译]ASP.NET MVC 5 教程 - 9:添加新字段 在本节中,我们将使用Entity Framework Code First 数据迁移功能将模型类的改变应用到数据库中. 默认情况下,当 ...

  9. ElasticSearch 学习记录之ES查询添加排序字段和使用missing或existing字段查询

    ES添加排序 在默认的情况下,ES 是根据文档的得分score来进行文档额排序的.但是自己可以根据自己的针对一些字段进行排序.就像下面的查询脚本一样.下面的这个查询是根据productid这个值进行排 ...

随机推荐

  1. Ubuntu上安装Samba服务器实现家庭共享

    如何在Ubuntu上安装Samba服务器 大多数Linux发行版都包含Samba. 要在Ubuntu上安装Samba,只需运行: sudo apt install samba 要检查您的Samba版本 ...

  2. ECShop配置文件解析

    1. 配置文件位置:/upload/data/config.php 2. 配置解析 <?php // 主机地址 $db_host = ""; // 数据库名称 $db_nam ...

  3. hibernate课程 初探单表映射2-4 transaction简介

    1 hibernate是非自动提交.如果transaction不写的话,会只创建表结构而不插入语句.   如果不写transaction而想实现插入的功能的话,需要重写session的dowork方法 ...

  4. smarty基本用法

    简介: 1.smarty语法:它是php的一种模板引擎   它的设计特点是:业务逻辑与显示逻辑分离 Smarty的标签都是使用定界符{ }括起来注释:{* 我是Smarty的注释内容 *} <u ...

  5. Browser Screen

    Screen对象 Screen对象包含有关客户端显示屏幕的信息. 注释:没有应用于screen对象的公开标准,不过所有浏览器都支持该对象. Screen对象属性 availHeight 返回显示屏幕的 ...

  6. chart.js 使用方法 特别说明不是中文的

    以上是一个饼图的案例,其他统计类型查看文档 http://www.chartjs.org/docs/latest/charts/doughnut.html 注意看域名 chartjs.org  不是 ...

  7. git剖析

    GIT(分布式版本控制系统) Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. 1.特点 分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(g ...

  8. jQuery-名称符号$与其他库函数冲突

    1.通过全名替代简写的方式来使用 jQuery jQuery("button").click(function(){ jQuery("p").text(&quo ...

  9. linux 命令——49 at (转)

    在windows系统中,windows提供了计划任务这一功能,在控制面板 -> 性能与维护 -> 任务计划, 它的功能就是安排自动运行的任务. 通过'添加任务计划'的一步步引导,则可建立一 ...

  10. V2EX 神回复 #1

    "抠图"用英文怎么说 今天突然被"抠图"这个单词给难住了," image segmentation "," image cut & ...