用pdb调试OpenStack

转载 2014年11月24日 13:17:10

点击打开链接

1.  创建文件creds:

exportSERVICE_TOKEN=xxx(3中输入的密码)

exportOS_TENANT_NAME=admin

exportOS_USERNAME=admin

export OS_PASSWORD=xxx

exportOS_AUTH_URL=http://localhost:5000/v2.0/

exportSERVICE_ENDPOINT=http://localhost:35357/v2.0

source creds就可以使用openstack了

2. 若想更改已安装的组件,再./stack.sh即可


Pdb调试Havana过程

1.      修改代码

在需要调试的地方加入:

import pdb; pdb.set_trace()(以在nova/compute/api.py:get_all()中加入pdb为例)

2.      重启服务

在相应的screen中用ctrl+c终止当前进程,然后按向上的方向键,就会出现启动服务的命令,按enter服务就起来了。

3.      开始调试:


显示有两个screen

screen –x stack

进入如下界面:

最下一行表示,每一个进程都有一个screen。带*号的表示当前的screen,可以同时按下ctrl+a+8和ctrl+a+2分别前进和后退,来切换不同的screen.

4.      在0$中输入nova list;切换到4$ n-api:


5.      开始使用pdb进行调试



6. 物理机重启后,可使用rejoin-stack.sh启动openstack服务

7. ctrl+a+shift+", 可以选择screen , 主要就不需要通过ctrl + a  or ctrl + p 来回切换了:)。


参考资料

1.使用pdb调试openstack (How to debug openstackusing pdb )

http://blog.csdn.net/hackerain/article/details/8373597

2. linux screen 命令详解

http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html


[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. ADMIN_PASSWORD=password  
  2. MYSQL_PASSWORD=stackdb  
  3. RABBIT_PASSWORD=stackqueue  
  4. SERVICE_PASSWORD=$ADMIN_PASSWORD  
  5. #enable_service rally  
  6. SERVICE_TOKEN=password  
  7.   
  8. ## vnc  
  9.   
  10. #enable_service n-spice  
  11. #enable_service n-novnc  
  12. #enable_service n-xvnc  
  13.   
  14. #GIT_BASE=https://code.csdn.net  
  15. # Reclone each time  
  16. #RECLONE=yes  
  17. RECLONE=no  
  18.   
  19. ## For Keystone  
  20. KEYSTONE_TOKEN_FORMAT=PKI  
  21.   
  22. ## For Swift  
  23. #SWIFT_REPLICAS=1  
  24. #SWIFT_HASH=011688b44136573e209e  
  25.   
  26. # Enable Logging  
  27. LOGFILE=/opt/stack/logs/stack.sh.log  
  28. VERBOSE=True  
  29. LOG_COLOR=True  
  30. SCREEN_LOGDIR=/opt/stack/logs  
  31.   
  32. # Pre-requisite  
  33. ENABLED_SERVICES=rabbit,mysql,key  
  34.   
  35. ## If you want ZeroMQ instead of RabbitMQ (don't forget to un-declare 'rabbit' from the pre-requesite)  
  36. #ENABLED_SERVICES+=,-rabbit,-qpid,zeromq  
  37.   
  38. ## If you want Qpid instead of RabbitMQ (don't forget to un-declare 'rabbit' from the pre-requesite)  
  39. #ENABLED_SERVICES+=,-rabbit,-zeromq,qpid  
  40.   
  41. # Horizon (Dashboard UI) - (always use the trunk)  
  42. ENABLED_SERVICES+=,horizon  
  43. HORIZON_REPO=https://github.com/openstack/horizon  
  44. HORIZON_BRANCH=master  
  45.   
  46. # Nova - Compute Service  
  47. ENABLED_SERVICES+=,n-api,n-crt,n-obj,n-cpu,n-cond,n-sch  
  48.   
  49. ######vnc  
  50. ENABLED_SERVICES+=,n-novnc,n-xvnc  
  51.   
  52.   
  53. #jjIMAGE_URLS+=",https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img"  
  54. #IMAGE_URLS+=",http://172.28.0.1/image/cirros-0.3.0-x86_64-disk.img"  
  55.   
  56.   
  57. # Nova Network - If you don't want to use Neutron and need a simple network setup (old good stuff!)  
  58. #ENABLED_SERVICES+=,n-net  
  59.   
  60. ## Nova Cells  
  61. #ENABLED_SERVICES+=,n-cell  
  62.   
  63. # Glance - Image Service  
  64. ENABLED_SERVICES+=,g-api,g-reg  
  65.   
  66. # Swift - Object Storage  
  67. #ENABLED_SERVICES+=,s-proxy,s-object,s-container,s-account  
  68.   
  69. # Neutron - Networking Service  
  70. # If Neutron is not declared the old good nova-network will be used  
  71. ENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron  
  72.   
  73. ## Neutron - Load Balancing  
  74. ENABLED_SERVICES+=,q-lbaas  
  75.   
  76. ## Neutron - VPN as a Service  
  77. ENABLED_SERVICES+=,q-vpn  
  78.   
  79. ## Neutron - Firewall as a Service  
  80. ENABLED_SERVICES+=,q-fwaas  
  81.   
  82. # VLAN configuration  
  83. #Q_PLUGIN=ml2  
  84. #ENABLE_TENANT_VLANS=True  
  85.   
  86. # GRE tunnel configuration  
  87. Q_PLUGIN=ml2  
  88. ENABLE_TENANT_TUNNELS=True  
  89.   
  90. # VXLAN tunnel configuration  
  91. #Q_PLUGIN=ml2  
  92. #Q_ML2_TENANT_NETWORK_TYPE=vxlan     
  93.   
  94. # Cinder - Block Device Service  
  95. VOLUME_GROUP="cinder-volumes"  
  96. ENABLED_SERVICES+=,cinder,c-api,c-vol,c-sch,c-bak  
  97.   
  98. # Heat - Orchestration Service  
  99. ENABLED_SERVICES+=,heat,h-api,h-api-cfn,h-api-cw,h-eng  
  100. #IMAGE_URLS+=",http://fedorapeople.org/groups/heat/prebuilt-jeos-images/F17-x86_64-cfntools.qcow2"  
  101.   
  102. # Ceilometer - Metering Service (metering + alarming)  
  103. #ENABLED_SERVICES+=,ceilometer-acompute,ceilometer-acentral,ceilometer-collector,ceilometer-api  
  104. #ENABLED_SERVICES+=,ceilometer-alarm-notify,ceilometer-alarm-eval  
  105.   
  106. # Apache fronted for WSGI  
  107. #APACHE_ENABLED_SERVICES+=keystone,swift  
  108. APACHE_ENABLED_SERVICES+=keystone  
以上为localrc文件,用于devstack安装时的配置文件,用git clone一份devstack的源码,将localrc文件copy过去,然后./stack,就可以了。

1.  创建文件creds:

exportSERVICE_TOKEN=xxx(3中输入的密码)

exportOS_TENANT_NAME=admin

exportOS_USERNAME=admin

export OS_PASSWORD=xxx

exportOS_AUTH_URL=http://localhost:5000/v2.0/

exportSERVICE_ENDPOINT=http://localhost:35357/v2.0

source creds就可以使用openstack了

2. 若想更改已安装的组件,再./stack.sh即可


Pdb调试Havana过程

1.      修改代码

在需要调试的地方加入:

import pdb; pdb.set_trace()(以在nova/compute/api.py:get_all()中加入pdb为例)

2.      重启服务

在相应的screen中用ctrl+c终止当前进程,然后按向上的方向键,就会出现启动服务的命令,按enter服务就起来了。

3.      开始调试:


显示有两个screen

screen –x stack

进入如下界面:

最下一行表示,每一个进程都有一个screen。带*号的表示当前的screen,可以同时按下ctrl+a+8和ctrl+a+2分别前进和后退,来切换不同的screen.

4.      在0$中输入nova list;切换到4$ n-api:


5.      开始使用pdb进行调试



6. 物理机重启后,可使用rejoin-stack.sh启动openstack服务

7. ctrl+a+shift+", 可以选择screen , 主要就不需要通过ctrl + a  or ctrl + p 来回切换了:)。


参考资料

1.使用pdb调试openstack (How to debug openstackusing pdb )

http://blog.csdn.net/hackerain/article/details/8373597

2. linux screen 命令详解

http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html

OpenStack之调试——Pdb调试

用pdb调试有多种方式可选: 1. 命令行启动目标程序,加上-m参数,这样调用myscript.py的话断点就是程序的执行第一行之前 python -m pdb myscript.py ...
  • qiuhan0314
  • qiuhan0314
  • 2015年02月09日 11:11
  • 901

用pdb调试OpenStack

Note:若是想要用pdb调试OpenStack,必须通过Devstack安装它。 Devstack安装Havana过程 1.   使用一般用户(非root用户),从github上获取devsta...
  • epugv
  • epugv
  • 2013年10月29日 18:27
  • 4576

零基础学习openstack --pdb调试与方法

pdb加载 import pdb pdb.set_trace() pdb命令 p file.py:line n l s r python内置方法...
  • drcwr
  • drcwr
  • 2015年11月24日 10:37
  • 528

使用PDB调试Python程序的完整实践

介绍在开发简单程序的时候,可以通过加入print或是log的方式进行程序的调试,但是对于复杂的程序这种方式往往比较困难,这时就需要引入一种可以进行单步调试以及可以方便查看变量的方法来进行程序问题的排查...
  • sun7545526
  • sun7545526
  • 2017年02月22日 14:28
  • 1744

openstack调试方法总结

因为前几天Komodo突然一下在使用中没法代码自动补全,没法进行代码自动提示了,自己折腾了(大概十个小时,卸载重装了很多次)很久也没法让它对python代码进行自动提示,很无语,于是彻底放弃,改用Ec...
  • jincm13
  • jincm13
  • 2014年08月14日 11:13
  • 2638

用pdb调试OpenStack Havana

http://www.csdn123.com/html/blogs/20131029/90565.htm
  • igorzhang
  • igorzhang
  • 2014年09月27日 17:31
  • 773

使用 pdb 进行调试

原文章 https://www.ibm.com/developerworks/cn/linux/l-cn-pythondebugger/ 使用 pdb 进行调试 pdb 是 pytho...
  • qq_21398167
  • qq_21398167
  • 2016年08月26日 09:50
  • 3936

用pdb调试OpenStack

点击打开链接 [plain] view plaincopy ADMIN_PASSWORD=password   MYSQL_PASSW...
  • luzheqi
  • luzheqi
  • 2014年11月24日 13:17
  • 880

eclipse调试openstack的nova代码

eclipse debug跟踪nova代码
  • ji_th
  • ji_th
  • 2014年07月21日 09:42
  • 1497

Openstack_单元测试

目录 目录 单元测试的原理 单元测试的实现 单元测试的原理 单元测试中的单元可以是一个模块文件, 测试的内容就是模块自身的代码(非导入型代码)是否正确执行. 其中包含了测试代码的...
  • Jmilk
  • Jmilk
  • 2016年11月15日 11:14
  • 1608
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用pdb调试OpenStack
举报原因:
原因补充:

(最多只允许输入30个字)