码迷,mamicode.com
首页 > Windows程序 > 详细

扩展 OpenStack 的 REST API 的方法

时间:2014-08-19 19:09:35      阅读:349      评论:0      收藏:0      [点我收藏+]

标签:openstack   nova   rest   


以Nova REST API为例, 你应该按照以下步骤来扩展 Nova REST API

(使用 类nova.api.openstack.compute.contrib.floating_ips.Floating_ips 作为例子)

 

1)    创建一个新的extension 子类. Extension子类应该派生于“nova.api.openstack.extensions ExtensionDescriptor”

以 Floating_ips 类为例

 bubuko.com,布布扣

2)    在 Nova API 中 添加一个新的资源类型

在Floating_ips 类中

  • 覆写父类中的方法 “get_resources()”
  • 在方法 “get_resources()” 中,, 返回 ResourceExtensions 列表, 来注册你的新的 资源类型 / URL路径 / Controller 等等

bubuko.com,布布扣

例如, 以下代码会创建一个新的资源类型 “os-floating-ips”.

    def get_resources(self):

        resources = []

 

        res =extensions.ResourceExtension(‘os-floating-ips‘,

                        FloatingIPController(),

                        member_actions={})

       resources.append(res)

 

        return resources

 

新资源 “os-floating-ips” 会和以下URL匹配.

bubuko.com,布布扣

     
     
     
     
     
     

3)    为Nova API中已有的资源类型, 添加新的 controller 方法

在Floating_ips 类中

  • 覆写父类中的方法 “get_controller_extensions”
  • 在函数 “get_controller_extensions”,中 返回一系列controller列表

bubuko.com,布布扣

例如, 以下代码会为 已有资源“servers” 添加新的controller(/opt/stack/nova/nova/api/openstack/compute/servers.py)

    defget_controller_extensions(self):

        controller =FloatingIPActionController(self.ext_mgr)

        extension =extensions.ControllerExtension(self, ‘servers‘,controller)

        return [extension]

 

新的controller会和以下URL匹配

bubuko.com,布布扣

     
     
     

4)    注册我们的extension 子类到Nova API中

 

  •  Extension Module 命名规则

比如我们的extension子类名字叫: classFloating_ips(extensions.ExtensionDescriptor):

那么python module的文件名就要叫(注意全部小写): floating_ips.py

 

  • Extension Module 位置

把新的module文件放到路径  “/opt/stack/nova/nova/api/openstack/compute/contrib/”

e.g /opt/stack/nova/nova/api/openstack/compute/contrib/floating_ips.py

Nova API会在启动时, 自动发现我们的extension, 并进行注册


扩展 OpenStack 的 REST API 的方法,布布扣,bubuko.com

扩展 OpenStack 的 REST API 的方法

标签:openstack   nova   rest   

原文地址:http://blog.csdn.net/zhaoeryi/article/details/38684747

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!