$id = 18
$container = "flask_app"
$remoteFile = "/tmp/allure-results-$id.tar.gz"
$localFile = ".\allure-results-$id.tar.gz"
$pythonScript = @"
from app import create_app, db
from app.models import TestResult
from app.clients import MinioClient
import constants as const
app = create_app()
with app.app_context():
result = db.session.get(TestResult, $id)
if result is None:
raise RuntimeError("TestResult ID $id не найден")
object_name = (
f"{result.run_name}/"
f"{const.ALLURE_RESULTS_ARCHIVE_NAME}"
)
MinioClient().minio_client.fget_object(
const.ALLURE_RESULTS_BUCKET_NAME,
object_name,
"$remoteFile",
)
print(f"Скачан объект: {object_name}")
"@
try {
$pythonScript | docker exec -i $container python -
if ($LASTEXITCODE -ne 0) {
throw "Не удалось скачать архив из MinIO"
}
docker cp "${container}:${remoteFile}" $localFile
if ($LASTEXITCODE -ne 0) {
throw "Не удалось скопировать архив из контейнера"
}
Get-Item $localFile |
Select-Object FullName, Length, LastWriteTime
tar -tzf $localFile
}
finally {
docker exec $container rm -f $remoteFile 2>$null
}