您的位置:首页 > 运维架构

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

2015-08-22 20:31 375 查看
首先看下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的添加
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: