云平台系统用户提出一个需求,要求根据物理机主机名或者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. 经典SQL语句集锦(收藏版)

    文章来源:http://www.cnblogs.com/herbert/archive/2010/07/02/1770062.html SQL分类: DDL—数据定义语言(CREATE,ALTER,D ...

  2. c#读取word内容,c#提取word内容

    Post by 54admin, 2009-5-8, Views:575 1: 对项目添加引用,Microsoft Word 11.0 Object Library 2: 在程序中添加 using W ...

  3. C 碎片十 关键字&库函数

    一.关键字 1, sizeof sizeof关键字用于计算所占空间大小的 格式:sizeof(类型名/变量名); 2, typedef typedef关键字用于重命名数据类型的,相当于给原来的数据类型 ...

  4. 11个炫酷的 Linux 终端命令

    我已经用了十年的Linux了,通过今天这篇文章我将向大家展示一系列的命令.工具和技巧,我希望一开始就有人告诉我这些,而不是曾在我成长道路上绊住我. 1.命令行日常系快捷键 如下的快捷方式非常有用,能够 ...

  5. httpclient通过post提交到webapi

    var client = new HttpClient(); var url = BASConfig.Instance.SiteSettingsModule.SyncWorkLogAppUrl; va ...

  6. 一个简单的EventEmitter

    用JS写了一个简单的EventEmitter: class EventEmitter { /** * 事件名/回调列表 字典 * @type {Map<string, Array<func ...

  7. HTTP缓存技术,304和200有何区别

    为什么有的缓存是 200 OK (from cache),有的缓存是 304 Not Modified 呢?很简单,看运维是否移除了 Entity Tag.移除了,就总是 200 OK (from c ...

  8. laydate 显示结束时间不小于开始时间

    jsp: <div class="form-group">    <label >交易时间:</label>        <input ...

  9. /opt/metasploit/msf3

    启动msf终端 cd  /opt/metasploit/msf3 msfconsole

  10. 703. 数据流中的第 K 大元素

    设计一个找到数据流中第 K 大元素的类(class).注意是排序后的第 K 大元素,不是第 K 个不同的元素. 你的 KthLargest 类需要一个同时接收整数 k 和整数数组 nums 的构造器, ...