摘要: 本文主要介绍logging模块的快速使用方法,如果需要深入的定制,请参考(http://docs.python.org/2/howto/logging-cookbook.html) 1 import logging 2 3 logging.basicConfig(format='[%(asctime)s] '+logging.BASIC_FORMAT) 4 5 # logging.BASIC_FORMAT = "%(levelname)s:%(name)s:%(message)s" 6 7 log = logging.getLogger(__name__) 阅读全文
posted @ 2013-04-12 12:17 gtt116 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 概述python的程序有两中退出方式:os._exit(), sys.exit()。本文介绍这两种方式的区别和选择。os._exit()会直接将python程序终止,之后的所有代码都不会继续执行。sys.exit()会引发一个异常:SystemExit,如果这个异常没有被捕获,那么python解释器将会退出。如果有捕获此异常的代码,那么这些代码还是会执行。举例说明1 import os2 3 try:4 os._exit(0)5 except:6 print 'die.'此处不会打出"going to die"import systry: sys.exit( 阅读全文
posted @ 2013-04-12 12:09 gtt116 阅读(10421) 评论(0) 推荐(0) 编辑
摘要: 上面的代码整理自 nova/compute/manager.py 代码的顺序有改动,只是为了方便查看,完整的代码可以参考:https://github.com/openstack/nova/blob /master/nova/compute/manager.py虚拟机的创建流程为3步走:向nova-network申请IP向nova-volumn申请block_device向driver申请创建虚拟机同时伴随整个过程,虚拟机的vm_state始终是building,但是task_state将会变化三次:networkingblock_device_mappingspawing最后,虚拟机的vm_ 阅读全文
posted @ 2012-07-11 19:33 gtt116 阅读(2870) 评论(0) 推荐(0) 编辑
摘要: 使用qmeu-img管理虚拟机磁盘镜像(创建虚拟机,虚拟机快照)一台虚拟机的核心就是一个磁盘镜像,这个镜像可以理解成虚拟机的磁盘,里面有虚拟机的操作系统和驱动等重要文件。本文主要介绍创建虚拟机的一般过程。创建虚拟机镜像要在一台host上跑起一个虚拟机一般需要两个步骤:第一步:创建虚拟机镜像qemu-img create -f raw /images/vm1.raw 8Gqmeu-img创建的镜像是一个稀疏文件,也就是说刚创建出来的文件并没有8G,它会随着数据的增多慢慢增加,直到8G第二步:启动虚拟机kvm /imges/vm1.raw运行结果: 因为镜像里面没有任何内容,所以提示找不到可引导设 阅读全文
posted @ 2012-06-29 15:14 gtt116 阅读(20595) 评论(2) 推荐(0) 编辑
摘要: 慎用pydev的refactor阿,因为python是动态语言,所以pydev没有办法很好的理解你的意图,很可能refactor坏掉!!! 阅读全文
posted @ 2012-04-20 18:34 gtt116 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://fallenlord.blogbus.com/logs/113793095.html愚人节刚过,清明节又来,值此多节交替之时,趁机把之前欠的这篇博客补补。经过上一篇的介绍和一段时间的练习,应该已经习惯了鼠标配合快捷键的编码操作。但要完全无鼠操作,还有一段路要走。要达到天下无鼠的功力,主要是要解决的是平时常用的鼠标操作如何映射到键盘上的问题,这篇就是主要介绍这些快捷键们。以下将按照鼠标操作来分类,其中也会出现很多上一篇中提及过的快捷键,以帮助大家思考使用场景。当前文件内操作当前文件内部的操作显然是我们平时最多的操作,. 阅读全文
posted @ 2012-04-20 16:43 gtt116 阅读(487) 评论(0) 推荐(0) 编辑
摘要: Greasemonkey是firefox 的一个插件,通过使用少量的JavaScript脚本,自定义网页显示方式或表现方式。其实就是通过编写js来修改任意页面,执行任意的js逻辑。哇塞,碉堡了。https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/http://www.greasespot.net/p/welcome.html?0.9.18通过他来管理和编写脚本都十分容易,另外可以到https://userscripts.org/(国外)下载别人写好的代码!o(∩∩)o 阅读全文
posted @ 2012-04-20 14:31 gtt116 阅读(228) 评论(0) 推荐(0) 编辑
摘要: def start_response(status, response_headers, exc_info=None): status_code[0] = status.split()[0] if exc_info: try: if headers_sent: # Re-raise original exception if headers sent raise exc_inf... 阅读全文
posted @ 2012-04-20 12:27 gtt116 阅读(1697) 评论(0) 推荐(0) 编辑
摘要: 发现此问题,这是ubuntu 的一个bug,参考: https://bugs.launchpad.net/ubuntu/+bug/566205,https://bugs.launchpad.net/ubuntu/+source/linux/+bug/254825解决方案如下:echo 'SUSPEND_MODULES="uvcvideo"' | sudo tee /etc/pm/config.d/modules_unload,就是在/etc/pm/config.d/modules_unload中加一行:SUSPEND_MODULES="uvcvid 阅读全文
posted @ 2012-04-19 16:04 gtt116 阅读(548) 评论(0) 推荐(0) 编辑
摘要: 认证和认证处理分开。认证是用户申明他是谁,认证处理是系统验证用户申明的身份是否真实。swift推荐使用前缀来区分不同的认真方式,例如tempauth中用户名都为AUTH_name 阅读全文
posted @ 2012-04-16 10:30 gtt116 阅读(263) 评论(0) 推荐(0) 编辑