diff --git a/plugins/builder/osbuild.py b/plugins/builder/osbuild.py index 615d9ec..00b370d 100644 --- a/plugins/builder/osbuild.py +++ b/plugins/builder/osbuild.py @@ -177,13 +177,17 @@ class ComposeStatus: class ComposeLogs: - def __init__(self, image_logs: List): + def __init__(self, image_logs: List, import_logs, init_logs): self.image_logs = image_logs + self.koji_import_logs = import_logs + self.koji_init_logs = init_logs @classmethod def from_dict(cls, data: Dict): image_logs = data["image_logs"] - return cls(image_logs) + import_logs = data["koji_import_logs"] + init_logs = data["koji_init_logs"] + return cls(image_logs, import_logs, init_logs) class Client: @@ -314,6 +318,12 @@ class OSBuildImage(BaseTaskHandler): self.logger.warning("Failed to fetch logs: %s", str(e)) return + if logs.koji_init_logs: + self.upload_json(logs.koji_init_logs, "koji-init.log") + + if logs.koji_import_logs: + self.upload_json(logs.koji_import_logs, "koji-import.log") + ilogs = zip(logs.image_logs, ireqs) for log, ireq in ilogs: name = "%s-%s.log" % (ireq.architecture, ireq.image_type) diff --git a/test/unit/test_builder.py b/test/unit/test_builder.py index 6df7b9f..816e502 100644 --- a/test/unit/test_builder.py +++ b/test/unit/test_builder.py @@ -117,9 +117,11 @@ class MockComposer: ireqs = compose["request"]["image_requests"] result = { + "koji_init_logs": {"log": "yes, please!"}, "image_logs": [ {"osbuild": "log log log"} for _ in ireqs - ] + ], + "koji_import_logs": {"log": "yes, indeed!"}, } return [200, response_headers, json.dumps(result)] @@ -481,6 +483,8 @@ class TestBuilderPlugin(PluginTest): self.uploads.assert_upload(f"{arch}-image_type.log.json") self.uploads.assert_upload("compose-request.json") self.uploads.assert_upload("compose-status.json") + self.uploads.assert_upload("koji-init.log.json") + self.uploads.assert_upload("koji-import.log.json") build_id = res["koji"]["build"] # build should have been tagged