openstack kilo 扩展nova api方法
2016-07-06 16:21
260 查看
在nova/api/openstack/compute/contrib目录下创建一个自己的文件,我这里是storage_pool.py
要是先一个extensions api需要创建一个类继承ExtensionDescriptor,并复写get_resources方法。在这里的get_resources方法中,定义了一个自定义的集合操作detail,这个操作对应的处理方法是detail方法,detail方法在Controller类中定义,它返回一个字典。
验证
返回
from nova.api.openstack import wsgi from nova.api.openstack import extensions #authorize = extensions.extension_authorizer('compute', 'storage_pool') class Controller(wsgi.Controller): def detail(self, req): return {'pool_name':'ssd'} class Storage_pool(extensions.ExtensionDescriptor): """self-defined Nova-api""" name = "Storage_pool" alias = "os-storage-pool" namespace = "http://docs.openstack.org/compute/ext/storage_pool/api/v1.1" updated = "2011-08-08T00:00:00Z" def get_resources(self): resources = [] res = extensions.ResourceExtension( 'os-storage-pool', Controller(), collection_actions={'detail':'GET'}) 4000 resources.append(res) return resources
要是先一个extensions api需要创建一个类继承ExtensionDescriptor,并复写get_resources方法。在这里的get_resources方法中,定义了一个自定义的集合操作detail,这个操作对应的处理方法是detail方法,detail方法在Controller类中定义,它返回一个字典。
验证
curl -v -X GET -H "X-Auth-Token: $OS_TOKEN" http://controller:8774/v2/f429c2349d0b03aa3c70c73723/os-storage-pool/detail |python -m json.tool
返回
{ "pool_name": "ssd" }
相关文章推荐
- Android Manifest 用法
- 什么是 GraphQL?
- Spark RDD API详解(一) Map和Reduce
- Spring Boot 开发微服务
- lwn拾遗:[sn3218 led drivers]-api解释-1
- 页面元素查找之Selectors API
- openstack kilo-with-dokcer
- php7 扩展类的写法[2]
- php7 类的方法传参[3]
- php7 读取php.ini[4]
- 一个小型js框架myJSFrame附API使用帮助
- 什么是OpenStack 开源的云计算管理平台项目
- C#、ASP.NET通用扩展工具类之TypeParse
- Lua编程示例(二):面向对象、metatable对表进行扩展
- 详细分析交换机、路由器、集线器的区别和联系
- PowerShell打开或关闭光驱
- Windows Powershell扩展类型系统
- 批处理的api WMIC学习体会有感第1/2页
- 批处理 API实现文件下载的代码第1/2页
- Lua教程(十七):C API简介