- 博客(27)
- 资源 (44)
- 问答 (1)
- 收藏
- 关注
原创 子集生成算法
本文地址:子集的生成:参考自:子集生成算法生成n个元素的子集,我认为可以这样理解:有n个不同的桶,编号1~n,每个桶最多放置一个球。遍历一遍桶,可以将球放入也可以不放入,这样,在遍历结束后,收集放置元素的桶,打印其编号,记得一个子集。而放与不放有2种选择,所以共有2^n个子集,这样,可以采用二进制的形式。示例:3个元素000 3个桶都不放球,空集001 第一
2013-07-30 22:17:25 3894
原创 排列生成算法--字典序法
本文地址:所谓字典序法就是按照字典排序的思想逐一产生所有排列。比如1,2,3,4四个数字进行全排列,先1234, 1243,1324,1342,1423,1432,…4321。由1243生成1324的过程:1. 1243从右向左找第一个正序对242. 从右向左找第一个大于2的数,33. 交换2与3的位置的:13424. 把3后面的数字全部反序的:1324总结:
2013-07-30 21:24:29 3166
原创 排列生成算法--序列法
序数法基于一一对应概念. 先在排列和一种特殊的序列之间建立 一种一一对应关系, 然后再给出由序列产生排列的方法。因为序列的产生非常方便, 这样我们就可以得到一种利用序列来生成排列的方法.
2013-07-29 20:13:05 2012
原创 linux sysvinit与upstart(3)
sysvinit时,启动一个程序通过执行该脚本即可,如/etc/init.d/spch2008 startupstart环境下,配置文档写在/etc/init下,所以/etc/init.d/spch2008 start命令将失效。为了兼容,采用如下方式:root@nova-controller:/etc/init.d# ln -s /lib/init/upstart-job spch
2013-07-25 17:36:11 2308
原创 linux sysvinit与upstart(2)
这里有一个队upstart的介绍,我觉得写的很清楚,值得一看。这里采用的测试环境为ubuntu 12.04 serverJob:可以认为是一个服务或一个任务。可以通过配置文件来定义一个Job,如spch2008.conf,这样就定义了一个名为spch2008的Job。该配置文件放置于/etc/init下。Script:配置文件中写入相应的脚本,完成指定功能。
2013-07-25 16:59:35 1382
原创 linux sysvinit与upstart(1)
linux通过设置不同的run level级别,使系统启用不同的服务,从而使linux的使用环境有所不同不同。0 - halt 停机1 - single user mode 单用户,系统故障维护时使用2 - Multi-user,without NFS 多用户,没有NFS3 - Fullmulti-user mode 完
2013-07-25 15:36:22 1592
原创 quantum 配置
最近一直跟quantum打交道,对于它的配置文档,当然也需要理清。之前了解过了相关paste的使用方法,见Paste 起步[composite:quantum]use = egg:Paste#urlmap/: quantumversions/v2.0: quantumapi_v2_0[composite:quantumapi_v2_0]use = call:quantum.au
2013-07-20 16:59:11 2043
原创 keystone 身份验证流程(3)
quantum端采用的身份验证。/etc/quantum/api-paste.ini中[filter:authtoken]paste.filter_factory = keystone.middleware.auth_token:filter_factoryauth_host = 172.16.4.1auth_port = 35357auth_protocol = httpadm
2013-07-19 17:28:03 6476 3
原创 keystone 身份验证流程(2)
QuantumClient端的身份验证第一部分:QuantumClent\shell.py中,有一个参数解析器。def build_option_parser(self, description, version): # Global arguments parser.add_argument( '--os-
2013-07-19 16:39:55 8566
原创 keystone 身份验证流程(1)
之前在网上看到一张keystone工作流程图,如下: credentials实际就是用户名,密码种类的东西。通过用户名与密码向keystone进行注册,取得一个token。 curl -d '{"auth": {"tenantName": "$YOUR_TENANT_NAME", "passwordCredentials":{"username": "$YOUR_USER_N
2013-07-19 14:33:09 6999
原创 判断二叉树是否对称
碰见一个面试题,判断给定的一棵二叉树是否是对称的,即左右形状一直。想了想,思路来源于小时候罚写。左右子树同时遍历,若出现不一致,则说明不对称。代码如下:struct Node{ Node *left; Node *right; Node() { left = right = NULL; };};bool Judge(Node *leftRoot,
2013-07-18 11:43:21 7879 4
原创 python 引用与拷贝
第一:变量与对象类型属于对象,而不属于变量。变量相当于C++中的void*,可以指向任何对象。a = 3 #创建int对象3,变量a指向对象3a = "test" #创建string对象,变量a指向对象"test"第二:参数传递python中参数传递,相当于传递变量值,注意:传递的是变量的值,而不是对象的值。def func(val): val = 4
2013-07-17 10:14:58 965
原创 python 异常
第一:基于类的异常class General: passclass Specific(General): passraise Specific()自定义异常类最好继承Exception内置异常类,但这并不是必须的。继承内置异常类,可以让自定义异常类获得一些免费的有用的接口和工具。第二:定义异常文本class MyException: pass
2013-07-16 16:26:15 1510
原创 python try/except/finally
稍微总结一下,否则总是忘。x = 'abc'def fetcher(obj, index): return obj[index]fetcher(x, 4)输出: File "test.py", line 6, in fetcher(x, 4) File "test.py", line 4, in fetcher return obj[index]
2013-07-16 15:47:48 60920 4
原创 自己动手写OpenStack的QoS功能(7)
前面已经介绍了大部分功能,只剩下启动虚拟机的时候,将qos参数interface_qos(即qos_id)传入,同时在数据库中,关联端口与qos_id,由于这一部分不是我写的,所以不是很了解,有空的时候在仔细看看。
2013-07-10 09:21:54 1529 2
原创 自己动手写OpenStack的QoS功能(6)
quantum client的处理quantumclient\shell.py中COMMAND_V2 = {增加 'qos-create': utils.import_class( 'quantumclient.quantum.v2_0.ovs_qos.CreateQoS'), 'qos-list':utils.import_class(
2013-07-10 09:18:15 1595
原创 自己动手写OpenStack的QoS功能(5)
改写ovs_agent,用于施行规则。ovs_quantum_agent.py中创建新类class OVSQosAgent(object): def __init__(self, context, plugin_rpc, int_br, agent_id): self.context = context self.plugin_rpc = plugin_r
2013-07-10 09:08:42 2136 1
原创 自己动手写OpenStack的QoS功能(4)
quantum\plugins\openvswitch\ovs_quantum_plugin.py中继承于class OVSQuantumPluginV2(db_base_plugin_v2.QuantumDbPluginV2, ovs_qos_db.QualityOfServiceDbMixin,
2013-07-10 08:49:57 1687
原创 自己动手写OpenStack的QoS功能(3)
创建数据库以及相应的操作:/usr/share/pyshared/quantum/plugins/openvswitch/ 下创建ovs_qos_db.py,然后将其连接到/usr/lib/python2.7/dist-packages/quantum/plugins/openvswitch下,可参见Quantum 数据库增加新表 ovs_qos_db.pyimport sq
2013-07-10 08:42:54 2189
原创 自己动手写OpenStack的QoS功能(2)
在/usr/share/pyshared/quantum/plugins/openvswitch/ 下创建新包extensions,然后将其连接到/usr/lib/python2.7/dist-packages/quantum/plugins/openvswitch下。在extensions下创建ovsqos.py,同样需要进行软连接。具体可参见Quantum 数据库增加新表 1. 首先,
2013-07-10 08:38:55 2620
原创 自己动手写OpenStack的QoS功能(1)
起因:OpenStack源代码看有些日子了,于是想找点东西做做。发现NVP有QoS功能,但是是针对Port的,有些复杂, 就将其简化,做一个针对Interface的QoS功能。针对Interface的QoS只需要几条命令即可,做起来方便简单。ovs-vsctl set interface vif0.0 ingress_policing_rate=1000ovs-vs
2013-07-09 11:51:28 4264 1
哈夫曼树 哈夫曼译码
2010-12-07
paste源代码
2013-06-02
routes源代码
2013-06-01
webob源代码
2013-06-01
C++ STL 模板 析构函数
2013-06-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人