ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

OpenStack Nova 代码调试

2021-09-24 13:35:44  阅读:349  来源: 互联网

标签:Nova remote nova 源码 telnet 调试 OpenStack pdb kolla


OpenStack Nova 代码调试

1 部署 Kolla-ansible

  • 1 在 /etc/kolla/globals.yaml 开启 kolla_dev_mode: "yes"

  • 2 kolla_dev_mode 为yes时,所有openstack组件都会下载源码并挂载;

  • 3 若只调nova,可以修改kolla-ansible/ansible/roles/nova/default/all.ymlnova_dev_node: "yes"

  • 4 抚州环境git clone https://opendev/openstack/nova 比较慢,可以选择自行上传脚本,并注释到部署代码中clone.yml

2 查看映射是否生效

  • 部署nova的时候,会将nova的源码下载在/opt/stack,并将源码挂载到nova 容器中,如下:
{
"Type": "bind",
"Source": "/opt/stack/nova/nova",
"Destination": "/var/lib/kolla/venv/lib/python3.6/site-packages/nova",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
},

3 成功后的现象

修改/opt/stack下nova源码,docker restart nova_compute即可生效。

4 pdb调试

  • 4.1 首先需要在容器中安装remote_pdb
$ docker exec -it -u root nova_compute pip install remote_pdb
  • 4.2 在程序中加断点
def index(self, req):
		from remote_pdb import set_trace
        set_trace()  # 加入断点
        # from remote_pdb import RemotePdb
		# RemotePdb('127.0.0.1', 4444).set_trace()
        """Returns a list of server names and ids for a given user."""
        context = req.environ['nova.context']
        context.can(server_policies.SERVERS % 'index')
        try:
            servers = self._get_servers(req, is_detail=False)
        except exception.Invalid as err:
            raise exc.HTTPBadRequest(explanation=err.format_message())
        return servers
  • 4.3 重启docker 容器
# 此处为了查询 telnet 连接的端口号
$ docker restart nova_compute
  • 4.4 telnet到日志中输出的地址,执行调试命令
telnet host:port #  telnet 127.0.0.1:4444

标签:Nova,remote,nova,源码,telnet,调试,OpenStack,pdb,kolla
来源: https://www.cnblogs.com/FutureHolmes/p/15329931.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有