用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加载 import pdb pdb.set_trace() pdb命令 p file.py:line n l s r python内置方法...
  • drcwr
  • drcwr
  • 2015年11月24日 10:37
  • 431

openstack调试方法总结

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

OpenStack之调试——Pdb调试

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

(一)Openstack系列之 如何修改 并且调试 观察效果

一、Openstack 如何修改代码并且观察效果 写这篇文章是为了给Openstack 新手提供一些基本的帮助,例如哪里修改,怎么修改,修改了之后如何重启等等。 1      文件的位置 现在网...

使用pdb调试openstack (How to debug openstack using pdb )

终于摸索出了一个调试openstack的简单方法,使用pdb进行单步调试,对于分析代码很有帮助。注意,这个方法只适用于用devstack安装的openstack。 调试主要是使用了一个脚本,这个脚本...

用pdb调试OpenStack

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

符号文件(.pdb)——Windows 应用程序调试必备

符号文件(Symbol Files)是一个数据信息文件,它包含了应用程序二进制文件(比如:EXE、DLL等)调试信息,专门用来作调试之用,最终生成的可执行文件在运行时并不需要这个符号文件,但你的程序中...

关于PDB文件和dll调试

转自:http://blog.sina.com.cn/s/blog_78fd98af0101g8hu.html 一、何谓符号文件? 符号文件(Symbol Files)是一个数据信息文件,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用pdb调试OpenStack
举报原因:
原因补充:

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