Как передать содержимое json в подпроцесс python или json файл - PullRequest
0 голосов
/ 07 мая 2020

Я использую 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.

1 Ответ

0 голосов
/ 07 мая 2020

Поскольку 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'
...