Часть вывода, записанная terragrunt, не найдена в stdout или stderr при чтении с использованием подпроцесса python
Я пытаюсь прочитать вывод команды terragrunt в реальном времени в моем скрипте Python, используя подпроцесс. Это работает хорошо и дает мне весь вывод в реальном времени, однако, я пропустил блок вывода, который выглядит как выходной из terraform. Это вывод, который содержит план / применить / уничтожить конкретные детали. Я могу видеть все выходные данные до и после этого блока. Чего мне здесь не хватает?
Отсутствует блок вывода
------------------------------------------------------------------------
An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
~ update in-place
Terraform will perform the following actions:
~ aws_alb.alb_name
tags.Name: "x" => "y"
~ aws_alb_target_group.name
lambda_multi_value_headers_enabled: "" => "false"
tags.Name: "x" => "y"
Plan: 0 to add, 2 to change, 0 to destroy.
------------------------------------------------------------------------
Скрипт Bash для запуска команды terragrunt
#!/bin/bash
action=$1
environment=$2
module=$3
cd ../../$environment
cd `find . -name $module -type d`
tg_plan_output="$(terragrunt plan-all --terragrunt-non-interactive --detailed-exitcode --terragrunt-source-update -lock=false)"
Python-скрипт, который вызывает bash-скрипт и печатает вывод в реальном времени
import subprocess
process = subprocess.Popen(['bash', 'script.sh', 'plan', 'env_name', 'module_name'], cwd='path_to_script', stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True)
while True:
try:
output = process.stdout.readline()
print(output)
except OSError as error:
if e.errno != errno.EIO: raise
output = ""
if not output: break