OpenStack点滴积累1--Url映射的实现

来源:互联网 发布:北京久其软件 编辑:程序博客网 时间:2024/06/05 17:18

首先看下api-paste.ini的配置

[pipeline:main]pipeline = auth instance[app:instance]paste.app_factory = routers:app_factory[filter:auth]paste.filter_factory = middleware:Auth.factory


部署的组件有auth 和 instance,主要的功能由app_factory来实现

def app_factory(global_config, **local_config):    return Router()

该功能主要由Router类来实现

class Router(object):    def __init__(self):        self.mapper = routes.Mapper()        self.add_routes()        self._router = routes.middleware.RoutesMiddleware(self._dispatch,                                                          self.mapper)    def add_routes(self):        controller = controllers.Controller()        self.mapper.connect("/instances",                           controller=controller, action="create",                           conditions=dict(method=["POST"]))        self.mapper.connect("/instances",                           controller=controller, action="index",                           conditions=dict(method=["GET"]))        self.mapper.connect("/instances/{instance_id}",                           controller=controller, action="show",                           conditions=dict(method=["GET"]))        self.mapper.connect("/instances/{instance_id}",                           controller=controller, action="update",                           conditions=dict(method=["PUT"]))        self.mapper.connect("/instances/{instance_id}",                           controller=controller, action="delete",                           conditions=dict(method=["DELETE"]))

add_routes()实现了url添加的功能
Mapper类的connetc方法实现了url的添加



0 0
原创粉丝点击