@'
import io
import json
import tarfile
from app.clients import MinioClient
from constants import ALLURE_RESULTS_BUCKET_NAME
object_name = "run_24_20251226_102538/allure-results.tar.gz"
client = MinioClient()
response = client.minio_client.get_object(
ALLURE_RESULTS_BUCKET_NAME,
object_name,
)
try:
archive_bytes = response.read()
finally:
response.close()
response.release_conn()
print(f"Archive size: {len(archive_bytes)} bytes")
with tarfile.open(fileobj=io.BytesIO(archive_bytes), mode="r:gz") as archive:
members = archive.getmembers()
print("\nArchive entries:")
for member in members:
print(f"- {member.name} ({member.size} bytes)")
print("\nAllure JSON:")
for member in members:
if not member.isfile():
continue
if not (
member.name.endswith("-result.json")
or member.name.endswith("-container.json")
):
continue
fileobj = archive.extractfile(member)
data = json.loads(fileobj.read().decode("utf-8"))
print(json.dumps({
"file": member.name,
"keys": list(data.keys()),
"uuid": data.get("uuid"),
"name": data.get("name"),
"fullName": data.get("fullName"),
"status": data.get("status"),
"stage": data.get("stage"),
"start": data.get("start"),
"stop": data.get("stop"),
"children": data.get("children"),
"labels_count": len(data.get("labels", [])),
"steps_count": len(data.get("steps", [])),
}, ensure_ascii=False, indent=2))
'@ | docker exec -i testops-flask-app python -