自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(23)
  • 收藏
  • 关注

原创 Openstack Nova(十)----Instance 创建(RPC基础 )

在前一章中, 学习了Computer API及Conductor调用RPC做下一步处理。那么, 这里就有个问题, Openstack中RPC是怎么工作的?想要知道RPC是怎么工作的, 那么第一个要了解的是什么是RPC? RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

2015-05-08 09:58:35 1828 1

原创 Openstack Nova(九)----Instance 创建(Computer API & Conductor )

在前一章中, 学习了所有的流水线处理。最后通过路由的设置,会把创建Instance的请求映射到servers.py的Controller的create方法。这中间会有不少的代码, 但都是一些常用的逻辑, 这里不进行讲述。Controller/Create这是一段比较长的代码, 但是做的事情还是比较简单。就是对各种参数的合法性检查。@wsgi.response(202) @wsgi.seria

2015-04-29 09:40:11 1912

原创 Openstack Nova(八)----Instance 创建(流水线)

在前面的章节中, 学习了Nova的WSGI相关的服务器创建及路由的基本原理。现在看看Deploy中的流水线操作。在api-paste.ini中, 可以看出Nova API有以下的流水线。[composite:openstack_compute_api_v2]use = call:nova.api.auth:pipeline_factorynoauth = faultwrap siz

2015-04-27 10:04:03 1499

原创 深入理解Python 装饰器(decorator)

返璞归真, 看山还是山刚看到Python装饰器时, 觉得很神奇。简单实验下,发现也就那么回事。但是慢慢的看到越来越多的装饰器。很多时候又不了解到底是怎么回事了。最后还是决定好好研究下。先看看一些实例, 然后再来分析下原理 假设我们有如下的基本函数def do_something(): for i in range(1000000): pass print "pla

2015-04-17 11:12:38 15527

原创 Openstack Nova(七)----Instance 创建(nova WSGI)

古人云: 三思而后行但对我们来说, 有什么地方值得去思呢?任何事情, 如果能够身临其境,了解其来龙去脉,肯定是最好的学习方式。但是在代码走读时, 人不能像机器一样,去把代码都运行一次, 亲身去感受下。但是我们能在脑袋里运行代码, 但这里也有问题, 代码多了, 脑袋就不够用了,这个时候就要学会思。不再废话, 回到我们的问题。上一章中, nova 命令行已经发送了一个基于HTTP的RESTful请求过

2015-04-15 09:36:25 1471 1

原创 Openstack Nova(六)----Instance 创建(CLI RESTful请求)

在上一章中, 通过跟踪nova boot命令, 已经完成了Instance创建参数的解析及身份认证的过程。这一章中继续完成CLI部分的代码跟踪,看看RESTful的请求是如何发出去的。如果阅读过上一章的内容,就可知道nova boot所对应的最终的执行函数是do_boot。这段代码不长,内容也很简单,具体看注释。do_bootdef do_boot(cs, args): """Boot a

2015-04-14 14:04:51 1782

原创 Openstack Nova(五)----Instance 创建(CLI 命令解析及认证实现)

前面几章中, 已经从需求,架构及Openstack官方的流程图, 讲述了Nova的基本知识。这一章开始到后面的几章,将从CLI入手, 结合代码, 来看看Instance的具体创建过程, 从而揭开Nova的神秘面纱。 代码版本: nova-2013.2.1从前一章知道, Openstack创建一个Instance有两种方法, 一个是从Dashboard的HTML页面的launch命令 或是CLI

2015-04-03 11:06:51 4577

原创 Openstack Nova(四)----Instance 创建(Overview)

可以看出, 要创建一个Instance, 需要的东西有很多,步骤也不少。 先看看其每步都干了什么。1. dashboard 或是 CLI 从用户处获得认证信息(用户名及密码),然后转成REST 的API 发送给 Keystone, 并等待返回结果。Keystone会返回一个token, 然后用于后续的操作

2015-03-31 10:37:02 1458

原创 Openstack Nova(三)----架构(二)

云时代, 你会听到各种各样的平台, 然后他们提供接口,让第三方能够通过这些接口接入,对其提供对应的服务。比如说Google, Facebook, QQ等, 在这些接口中,数据基本上都是通过XML或是JSON来传输。而服务类型也基本上都为HTTP模式。所以在Openstack中,同样是选择了HTTP的JSON及XML RESTful风格来作为接口。

2015-03-23 10:54:26 1164

原创 Openstack nova(二)——架构(一)

架构源自需求需求分析软件架构大部分都来自于需求,可以说,有什么样的需求,就会有什么样的架构, 虽然不同时期,不同的人来实现,可能不完全一样。但是总体来说, 架构不会相差太远。现在假设如果需要自己来实现一个类似Openstack这样功能的软件,会是什么样的呢?首先,还是再看看前一章中总结的最简单的需求 物理服务器的管理 服务器的选择 虚拟机的创建、开机、关机、挂起、暂停、调整、迁移

2015-03-17 11:23:45 1429

原创 Openstack nova(一)——Overview

引子 想要明白Openstack Nova是怎么工作的,先要明白Openstack及Nova是干什么的?先看看百度百科介绍: OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)

2015-03-12 17:00:03 1476

原创 Python with

def pfname(fun): def wraper(*args,**kwargs): print fun.__name__ return fun(*args,**kwargs) return wraper class ContextWith(): @pfname def __enter__(self): return self @pfname def __exit_

2015-03-06 15:13:25 839

原创 Openstack Keystone 认证流程(八)--总结

花了差不多一星期的时间,总算是坚持下来了。以前都不太喜欢到处贴代码的风格,但是轮到自己,还是一样。最后一篇,就不再贴代码了。前面对用户名及密码认证基本上都过了一次。但里面都是很细节的东西,而且没有太多的逻辑及框架, 最后一篇, 基于问题及框架来总结下。Q: Keystone在Openstack中是干什么的? Keystone是进行3A认证的, 是所有服务的起始点,只有经过认证,其它的服务才会认

2015-02-16 16:25:29 1802

原创 Openstack Keystone 认证流程(七)--API 及 Driver

在前面几章中, 我们基本上都过了Keystone处理的所有流程,但是还有两个小问题没有解决,现在就来解决它们。1. identity_api在keystone.token.controllers.Auth.authenticate方法中, 我们有用到identity_api, 但是却没有地方来初始它。回到Auth类定义的地方。@dependency.requires('token_provider_

2015-02-16 15:26:47 1567

原创 Openstack Keystone 认证流程(六)--认证

1. 身份认证在前一章中, 介绍了路由的过程, 这样我们就能URL中轻易地找到所对应的需要执行的代码。在这一章中, 我们看看具体的一个认证请求是如何被处理的。假设有如下一个请求:$ curl -s -X POST http://8.21.28.222:35357/v2.0/tokens \ -H "Content-Type: application/json" \

2015-02-16 11:10:33 4123

原创 Openstack Keystone 认证流程(五)--路由

1. 路由实现在上一章中, 我们一起过了admin_api的所有流水线的处理, 其中有好几个点是用来添加路由信息的。这一章我们来详细看看路由的具体实现。路由是MVC架构中非常重要的一个关键节点, 可以说, 如果没有路由,就不可能去实现一个很好的MVC架构, 路由也是整个系统中最先处理的节点。如果想弄清楚Keystone的整体架构, 路由是必须先搞清楚的。看具体实现之前, 我们先看看路由的具体用法。比

2015-02-15 16:39:57 2062

原创 Openstack Keystone 认证流程(四)--Filter流水线

1. admin_api 流水线在上一章中, 我们讲了WEB服务器的创建及使用。这一章我们将进入Keystone的实际业务认证流程。我们以admin_api做为一个实例,从Paste Deployment配置文件的流水线开始。先来看看配置的流水线过程。[pipeline:admin_api]pipeline = access_log sizelimit url_normalize token_au

2015-02-13 15:57:07 1760

原创 Openstack Keystone 认证流程(三)-WSGI

1. Web服务创建在上一章中, 可以看在keystone-all中, 使用create_server创建了两个服务器, 先看看这个函数from keystone.common import environmentfrom paste import deploy...def create_server(conf, name, host, port): app = depl

2015-02-13 13:32:00 2270 1

原创 Openstack Keystone 认证流程(二)--门

千里之行, 始于脚下Linus 大师有名名言:talk is cheap show me the code 这里我们借用一下大师的风格, 从代码开始。 代码版本: keystone-2013.2.11. 认证API及结果对于Openstack来说, 执行任何命令的第一件事, 就是进行认证。 我们可以先看看认证是怎么进行的。以下命令摘自:OpenStack API Quick Start

2015-02-09 15:03:51 2410

原创 Openstack Keystone 认证流程(一)--Overview

Openstack Keystone 认证流程(一)Openstack 认证(Indentity)概念Openstack认证服务提供如下功能:用户跟踪及权限管理基于端点(endpoint)提供有效服务的分类管理在安装Keystone服务时,你必须注册安装相对应的每种服务到keystone中, 然后keystone就参跟踪及记录各种服务的位置信息, 为以后提供服务。要了解Openstack的认证

2015-02-09 13:34:53 3948

原创 最大公约数与最小公倍数

欧几里德算法:欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: 定理:gcd(a,b) = gcd(b,a mod b) 证明:a可以表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数,则有 a mod d=0, b mod a = 0,而r = a - kb,因此r mod d = (a-kb)mo

2015-02-05 22:45:35 486

原创 韩信点兵问题

韩信点兵是一个有趣的猜数游戏。如果你随便拿一把蚕豆(数目约在100粒左右),先3粒3粒地数,直到不满3粒时,把余数记下来;第二次再5粒5粒地数,最后把余数记下来;第三次是7粒一数,把余数记下来。然后根据每次的余数,就可以知道你原来拿了多少粒蚕豆了。不信的话,你还可以试验一下。例如,假如3粒一数余1粒,5粒一数余2粒,7粒一数余2粒,那么,原有蚕豆有多少粒呢? 这类题目看起来是很难计算的

2015-02-05 22:39:14 974

原创 简易对数求法

设对数...,因为是递增函数,假设,如果,则,反之则.由此可得的简易算法如下(计算机程序设计艺术。P19):首先将x的小数点左移或右移,使得;这样就确定了n.现在置,对于k>=1,置:      如果 , 则,      ;      如果 , 则   ;从而我们得到了。由此可以求出的值。代码如下:#include#include#inclu

2015-02-05 06:40:49 811

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除