GREENSTACK

Energy optimization of OpenStack-based cloud data center infrastructures

openstack keystone api初始化流程(wsgi/PasteDeploy)

Author: Jian Li Source: Planet OpenStack 在N版本以前,keystone的api服务可以使用httpd方式进行部署,也可以使用python eventlet方式部署,从N版本开始,eventlet这种方式已经从keystone中移除。keystone使用PasteDeploy来实现WSGI服务,关于wsgi,可以参考理解 WSGI 框架,关于Paste+PasteDeploy+Routes+WebOb,可以参考通过demo学习OpenStack开发–API服务(2) 如下,是keystone v3 api初始化流程的时序图,v3版本中,已经不区分admin api和public api 简单解释下pipline, 如下paste文件,对于v3版本的api请求,根据[composite:admin], 请求被map到api_v3这个pipeline处理, 在api_v3这个pipeline中([pipeline:api_v3]),前面cors sizelimit … s3_extension都是keystone实现的各种中间件,用于对client请求进行过滤封装等处理,根据名字你可以大致猜出来这些中间件都做了什么,最后service_v3一个是app,即为keystone真正处理client请求的api服务。也就是说,client发出的http的请求会穿过前面一系列的中间件,最后才会到达keystone代码真正处理请求 #/etc/keystone/keystone-paste.ini [pipeline:api_v3] pipeline = cors sizelimit http_proxy_to_wsgi osprofiler […]