我正在使用python subprocess.popen运行openshift命令。
我的subprocess.popen看起来像:
subprocess.Popen(['oc','create','-n',project,'-f','resource.json'],stdout=subprocess.PIPE,stderr=subprocess.PIPE,stdin=subprocess.PIPE)
我正在尝试像这样传递json文件。但这并不是在创建我尝试创建的资源。有谁知道我可以将json内容传递给它的任何其他方法。
由于OpenShift是Kubernetes,如果要使用Python Kubernetes客户端与OpenShift进行交互,可能值得检查:https://github.com/kubernetes-client/python
您使用subprocess
的代码看起来正确,因此请检查stdout
和stderr
中打印的内容:
import subprocess
project = 'simon'
process = subprocess.Popen(['oc','create','-n',project,'-f','resource.json'],stdout=subprocess.PIPE,stderr=subprocess.PIPE,stdin=subprocess.PIPE)
for line in process.stderr:
print(line.strip())
for line in process.stdout:
print(line.strip())
例如:
$ python3 test.py
b'pod/test created'
$ python3 test.py
b'Error from server (AlreadyExists): error when creating "resource.json": pods "test" already exists'