之前一直没有好好看过 Neutron API 服务的实现,这几天好好看了一下,对 WSGI、paste.deploy、Webob、routes 熟悉的人估计很快就能看完,可惜我对上面的概念/库没有个熟悉的,所以看了好久才看明白…… 下面是记录,这一部分主要是从 main 开始逐句分析 server 启动的大概过程,主要针对 API,对 RPC 的介绍等下次在看。

安装 Neutron-server 后,其将作为一个服务,启动,和别的服务一样,启动文件在 /etc/init.d,这里挑选部分:

ok,这个启动脚本主要还是执行 /usr/bin/neutron-server,我们看下这个脚本的内容:

就是执行了一下 neutron.server.main(),下面我们来看下这个函数(server/__init__.py文件):

函数的关键有两句话:neutron_api = service.serve_wsgi(service.NeutronApiService)neutron_rpc = service.serve_rpc(),rpc 我们暂且不理,看下neutron.service:

比较关键的一句是 _run_wsgi() 里的 load_paste_app(),我们看下

deploy 是从 paste 库 import 进来的,loadapp 为内置的加载 App 的函数,具体将在下节分析。

总结成一个图(画得比较烂……):

Neutron-Server-API-Start

Neutron-Server-API-Start

18 Thoughts on “Neutron Server 启动过程详解-Part 1

  1. 请问下了不了解dhcp agent的启动过程?
    虚拟机fix ip地址是由neutron server分配,再调用dhcp服务分发的还是直接由dhcp服务分配的?谢谢!

  2. 这个还没看过…… 但是猜测下,dhcp-agent 本身怎么接受请求呢,应该还是由 server 接收再调用到 agent 的相应方法上吧。

  3. 显示代码的插件好漂亮

    • 是么 哈哈,文章里边是用 WordPress for SAE 自带 的 Crayon Syntax Highlighter 着的色,外边的摘要不知道为什么着色不正常,只好拿代码发芽手动着的色。

      说起来,最近写文档需要贴代码,就找能用在 Word 上的顺手的代码着色,结果发现 highlight 真心好用啊!链接:http://www.andre-simon.de/

      平台支持很全,在 CentOS 下 yum 源自带,直接 yum install 就 ok 了,哈哈

  4. 你模板是牵涉到谷歌字体的吗?

    最近打开你页面各种慢

  5. 好高端的样子,学习了!

  6. 话说昨天来的时候,页面上像是有乱码

    还在想你是不是在折腾模板什么,今天再来看就正常了

    • 是么,最近忙得很(在一家创业公司做事,还做一个 Google 相关的项目,还期末考试……)一直没看,哎,这两天考完了,怎么也得更新更新博客了 :-)

  7. 看你过得挺充实挺好挺羡慕的

    不像我觉得自己每天好像就是单纯地坐吃等死

  8. 呵呵,最近没怎么更新啊,你去uos了吧?

  9. 下一节写了么?期待后续啊

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

你可以管理本篇文章的订阅。

Post Navigation