how to read openstack code : paste deploy】的更多相关文章

本篇分为以下几个部分 paste 是什么 怎样使用paste paste of neutron paste 是什么 WSGI 是python 中application 和 web server互通的标准. 我们知道了wsgi 中包括 app, middleware , server而且middleware可以有很多个.wsgi结构的系统最大的好处就是middleware像积木一样,可以灵活的添加组成不同的功能. 我们上一篇文章中,把2个middleware和一个app组合到了一起,但我们采用的写…
OpenStack 中的每一个提供 REST API Service 的组件,比如 cinder-api,nova-api 等,其实是一个 WSGI App,其主要功能是接受客户端发来的 HTTP Requst,然后进行用户身份校验和消息分发.代码实现上,主要使用了几种技术:WSGI Server.WSGI Application.Paste deploy 和 Router.本文希望结合 cinder-api 的启动过程,对这些相关技术和 cinder-api 的代码做一个总结. 0. WSGI…
Paste.deploy 与 WSGI, keystone 小记 名词解释: Paste.deploy 是一个WSGI工具包,用于更方便的管理WSGI应用, 可以通过配置文件,将WSGI应用加载起来. keystone 是 openstack的各模块之间调用时候采取的认证,主要方式是在WSGI接口下增加filter,对调用者做身份验证. Paste.deploy 详细介绍: paste.deploy 通过 loadapp(configPath)来启动WSGI应用, 其中configPath 包含…
本keystone源码分析系列基于Juno版Keystone,于2014年10月16日随Juno版OpenStack发布. Keystone作为OpenStack中的身份管理与授权模块,主要实现系统用户的身份认证.基于角色的授权管理.其他OpenStack服务的地址发现和安全策略管理等功能.Keystone作为开源云系统OpenStack中至关重要的组成部分,与OpenStack中几乎所有的其他服务(如Nova, Glance, Neutron等)都有着密切的联系.同时,Keystone作为开源…
学习了WSGI/Paste deploy后,还需要对一些在openstack中一些package有一些了解,才能更好的理解openstack的代码 What is stevedore 我们在写代码的时候通常把一个一个的功能块独立编写,甚至发布一定的规则和接口由第三方编写,然后在运行时根据实际情况来选择加载哪些功能模块.这样的好处是松耦合,灵活,而且便于协作. stevedore就是一个很好的帮助动态加载代码的工具,openstack中很多plugin就是通过stevedore加载的. 下面通过一…
本文的目的不是介绍openstack.我们这里假设你已经知道了openstack是什么,能够做什么.所以目的是介绍如何阅读openstack的代码.通过读代码来进一步学习openstack. 转载要求你懂的:) 目的是懂python和web编程的人看完就能懂neutron代码, 如果没达到这个目的,说明写的不够清晰,欢迎各种建议 因为我们更关注neutron组件,所以后面的内容都是以neutron为基础 读openstack代码需要对很多技术有一定了解,如:wsgi/paste deploy/w…
这段时间刚着手开始研究Openstack Swift源码,为后续开发做准备. Swift依据python WSGI规范.WSGI(Web Server Gateway Interface)是Python应用程序或框架与Web服务器之间的一种接口,定义了一套借口来实现服务器与应用端的通信规范.按照一套规范,应用端想要通信,很简单,只需要实现一个接受两个参数的,含有__call__方法并返回一个可遍历的含有零个或者多个string结果的python对象.  而paste.deploy(Paste D…
paste.deploy就是一个可以配置wsgi_app的工具,可以让服务器运行时,按照配置文件执行一系列的程序.需要使用.ini配置文件. (1)这里补充一下当时没看到的配置文件 1.[app:main]的意识是只有一个app,所以就叫main,其实叫别的也无所谓. use=egg:MyAPP   egg其实是一个程序包,是需要单独安装的东西.egg包是目前最流行的python应用打包部署方式 2.[composite:main]                      composite是…
转自:http://bingotree.cn/?p=100 1.Paste Deploy的一个组件,但是并不依赖于Paste的其它组件.其可以看成是一个独立的包.其主要用于通过一个配置文件完成WSGI应用和服务器的构建.对于一个不怎么了解Python的人来说,只要知道了这个配置文件如何编写,那么也能写出一个符合WSGI标准的应用.这样说可能还是有点抽象,下面看了例子就清楚了. 2.安装PasteDeploy 1 2 3 [root@OS_DEV ~]# pip install PasteDepl…
首先python paste是一个WSGI工具包,在WSGI的基础上包装了几层,让应用管理和实现变得方便.说实话,Python Paste的文档做的真差劲!加之python代码可读性本来就不怎么滴,真费劲. paste.deploy关键部分留个抓印: 1)python paste.deploy不能只装个paste.deploy包就可以工作了,还需要paste.script包 2)python paste.deploy中loadapp给的路径可用os.path.abspath(配置文件相对路径)得…