在实际的开发场景中,经常会遇到需要开发各种 调试工具 模拟工具的场景。对于这样的场景,不可避免要调用项目的流程或者取项目的运行时状态,以进行分析。
1. 对于简单调试,可以通过 下面的指令进入交互式命令行来调试
python manage shell
2. 对于复制的调试和模拟,可以通过脚本的方式调试。但是脚本要连接上工程项目要做一定的设置(如下):
import os
import sys
import django
PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(PROJECT_ROOT)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "nfvpub.settings")
django.setup()
3. 对于无法进入pod(容器)的场景,可以通过执行sh指令 获取环境变量 等方式获取对应的ip和端口,然后通过对应的ip和端口调用rest方法来获取相应的数据
def get_port_and_ip(self):
ss = os.popen('kubectl -n zenap get po |grep xxx').readlines()
podname = ss[0].split(' ')[0]
cmd1 = 'kubectl -n zenap exec -ti %s -- env|grep xxx' % podname
cmd2 = 'kubectl -n zenap exec -ti %s -- env|grep xxx' % podname
ipp = os.popen(cmd1).readlines()
portt = os.popen(cmd2).readlines()
ip = ipp[0].split('=')[1][:-2]
port = portt[0].split('=')[1][:-2]
return ip,port