我正在使用 python ClouldStack API 连接到我的云提供商。
cloudstack = CloudStack.Client()
在 $HOME 我必须使用我的 api 凭据创建以下文件,例如
/root/.cloudstack
如果我从命令行从根目录运行 python 脚本..它可以工作。但是,当使用 runit 运行脚本时,出现以下错误。
Traceback (most recent call last):
File "/home/ubuntu/workspace/rtbopsConfig/rtb_remote_services/remote_chef_dp_redis_monitor.py", line 27, in <module>
import chefUtilities as chefu
File "/home/ubuntu/workspace/rtbopsConfig/classes/chefUtilities.py", line 29, in <module>
import dpClouldStack as dpu
File "/home/ubuntu/workspace/rtbopsConfig/classes/dpClouldStack.py", line 1, in <module>
import CloudStack
File "/usr/local/lib/python2.7/dist-packages/CloudStack-0.1-py2.7.egg/CloudStack/__init__.py", line 1, in <module>
from Client import Client
File "/usr/local/lib/python2.7/dist-packages/CloudStack-0.1-py2.7.egg/CloudStack/Client.py", line 1, in <module>
from BaseClient import BaseClient
File "/usr/local/lib/python2.7/dist-packages/CloudStack-0.1-py2.7.egg/CloudStack/BaseClient.py", line 12, in <module>
config_file = env + '/.cloudstack'
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
这是我的 runit 运行文件的样子。
#!/bin/sh
exec 2>&1
exec /usr/bin/python /home/ubuntu/workspace/test.py >> /tmp/remote_chef_elb_monitor.out 2>&1
那么... runit 在 root 下运行吗?如果是这样,它不会文件/root/.cloudstack 吗?