在前面的三篇博文中,介绍了restful和SWGI的实现.结合restful和WSGI配置就能够简单的实现nova服务模型的最简单的操作. 如下的内容是借鉴网上博文,因为写的很巧妙,将nova管理虚拟机的过程刻画十分清楚,所以想自己实现一遍,加深印象. 在上一篇博文中写的URL的对应处理函数,结果是十分简单的return 一个网页. 在openstack当中肯定不会这么简单的处理,毕竟前面的工作只是将路修好,真正的功能还未实现呢! 所以对于nova操作的模拟,要实现的是对虚拟机的增,删,改,查等…
前面讲了很多nova restful的功能,无非是为本篇博文分析做铺垫.本节说明nova创建虚拟机的请求发送到openstack之后,nova是如何处理该条URL的请求,分析到处理的类. nova对于URL请求的处理在上一篇博文中以刻画了简化版的模型,参考该模型,能够快速理解openstack中真实的处理情景. 首先来熟悉nova的代码 openstack  nova的源码分布如下,其中比较重要的是nova文件夹,几乎所有的功能实现都是在这个文件夹下. WSGI服务器的实现. 路径:/nova/…
上一篇博文介绍WSGI在nova创建虚拟机过程的作用是解析URL,是以一个最简单的例子去给读者有一个印象.在openstack中URL复杂程度也大大超过上一个例子.所以openstack使用了PasteDeploy模块去解析复杂的URL. 首先看"笨办法"是如何处理不同的URL. 在WSGI简单的模型中,如果有多个URL,可以判断请求方和请求路径的然后分别处理不同的URL. 处理函数 app.py def application(environ, start_response): me…
开始学习openstack源码,源码文件多,分支不少.按照学习的方法走通一条线是最好的,而网上推荐的最多的就是nova创建虚机的过程.从这一条线入手,能够贯穿openstack核心服务.写博文仅做学习笔记整理,多为借鉴网上大牛的分析.因为涉及到的知识点很多,所以分期来比较写合适. openstack有3中创建虚拟机的方法,分别是:命令行创建,dashboard界面创建和api接口创建. 前两种方式最终还是调用openstack的Restful API去工作. openstack创建虚拟机流程如下…
上一篇博文将nova创建虚机的流程推进到了/compute/api.py中的create()函数,接下来就继续分析. 在分析之前简单介绍nova组件源码的架构.以conductor组件为例: 每个组件都会有这三个文件:api.py rpcapi.py manager.py. api.py            conductor实现自身功能的文件 rpcapi.py       conductor提供给其他组件通过消息队列调用的接口函数 manager.py  其他组件通过消息队列调用的处理端函…
openstack 版本:Newton 注:博文图片采用了很多大牛博客图片,仅作为总结学习,非商用.该图全面的说明了nova创建虚机的过程,从逻辑的角度清晰的描述了前端请求创建虚拟机之后发生的一系列反应. 上图是以逻辑的关系说明虚机创建的流程,并没有涉及到真正的代码,下面这张图则是从代码的角度来看虚机的创建过程.两张逻辑图相辅相成,能够快速对nova创建虚机流程有一个认识. 上一篇博文已经将nova创建虚机的流程分析到restful调用具体的函数.如下图所示,本篇将从该函数开始分析,展开nova…
/conductor/api.py _build_instance()  /conductor/rpcapi.py  _build_instance() 1 构造一些数据类型2 修改一些api版本信息3 投入消息队列  /conductor/manager.py  _build_instance()1 过滤信息2 调度模块工作(选出最合适的主机,并返回)3 调用/nova/compute/rpcapi.py::build_and_run_instance() 此时已经拿到最合适主机 /compu…
openstack nova启动时首先通过命令行或者dashborad填写创建信息,然后通过restful api的方式调用openstack服务去创建虚拟机.数据信息从客户端到达openstack服务器端. 以上的过程看不到openstack调用restful api的详细过程,如果想详细的看到restful api的过程,可以使用postman工具. postman是一个在验证restful api接口,开发过程中十分方便的工具.上篇博客中使用restful api请求token的过程. 其…
声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢! 版本截止到2013.8.24 jQuery官方发布最新的的2.0.3为准 附上每一章的源码注释分析 :https://github.com/JsAaron/jQuery 正在编写的书 - jQuery架构设计与实现 本人在慕课网的教程(完结) jQuery源码解析(架构与依赖模块) 64课时 jQuery源码解析(DOM与核心模块)64课时 jQuery源码分析目录(完结) jQuery源码分析系列(01) : 整体架构…
学习jquery的源码对于提高前端的能力很有帮助,下面的系列是我在网上看到的对jquery2的源码的分析.等有时间了好好研究下.我们知道jquery2开始就不支持IE6-8了,从jquery2的源码中可以学到很多w3c新的标准( 如html5,css3,ECMAScript).原文地址是:http://www.cnblogs.com/aaronjs/p/3279314.html  关于1.x.x版的jquery源码分析系列,本博客也转载了一个地址http://www.cnblogs.com/ja…