创建Cinder-API核心资源

同事整理了一份“如何创建Cinder-API核心资源”的步骤,请原谅我的拿来主义:

核心资源的python文件在 /cinder/api/v2/ 目录下面。Cinder-API的核心资源包括:volumes,types,snapshots,limits等。核心资源在Cinder-API启动时通过/etc/cinder/api-paste.ini文件中定义的APIRouter类进行加载。
新增核心资源:
1.创建核心资源的Controller类

# -*- coding:utf-8 -*-
from oslo_log import log as logging
import webob.exc
from cinder.api.openstack import wsgi
LOG = logging.getLogger(__name__)

class RuijieController(wsgi.Controller):
    def __init__(self, ext_mgr):
        self.ext_mgr = ext_mgr
        super(RuijieController, self).__init__()

    def index(self, req):
        """对应GET /v2/< tenant_id >/ruijies"""
        LOG.debug("GET Request : {0}".format(req))
        return webob.Response(status_int=202)

2.在对应的python文件中创建静态方法create_resource,该方法返回一个Controller实例。

def create_resource(ext_mgr):
return wsgi.Resource(RuijieController(ext_mgr))

3.创建新的Router类,该类型用来追加我们新添加的核心资源

# -*- coding:utf-8 -*-
from cinder.api.v2 import router
from cinder.api.v2 import ruijie_demo

class RuijieAPIRouter(router.APIRouter):
    """定义新的Router类型,该类型用来追加我们新添加的核心资源"""

    def _setup_routes(self, mapper, ext_mgr):
        super(RuijieAPIRouter,self)._setup_routes(mapper=mapper,ext_mgr=ext_mgr)
        self.resources['ruijies'] = ruijie_demo.create_resource(ext_mgr)
        mapper.resource("ruijie", "ruijies",
                        controller=self.resources['ruijies'],
                        collection={'detail': 'GET'},
                        member={'action': 'POST'}
                        )

4.修改配置文件/etc/cinder/api-paste.ini,用新定义的RuijieAPIRouter替换原有的cinder.api.v2.router.APIRouter

[app:apiv2]
#paste.app_factory = cinder.api.v2.router:APIRouter.factory
paste.app_factory = cinder.api.v2.ruijie_router:RuijieAPIRouter.factory
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,634评论 19 139
  • 第一章 OpenStack基础 OpenStack管理的资源及提供的服务OpenStack做为一个操作系统,...
    sgt_tiger阅读 13,239评论 4 72
  • “三杯通大道,一斗合自然,但得酒中趣,莫为醒者传”。走进茅台,闭上眼睛,试着想着酒镇的样子……
    艺术论坛阅读 625评论 0 1
  • 休一天,今日在北京见到姥姥,吃到小姨做的山西正宗拉面,吃了两大碗,很高兴,温暖。且行且珍惜。
    念心心turbo阅读 169评论 0 0
  • //于2017.10.25修改 上架详细流程,请参考 http://www.jianshu.com/p/99667...
    DENGG阅读 1,035评论 1 3

友情链接更多精彩内容