From f8983d7e71e7932eebe4f5006ae7046d625f2785 Mon Sep 17 00:00:00 2001 From: Andrea Vibelli Date: Mon, 29 Jul 2024 14:16:25 +0200 Subject: [PATCH] [SBOMER-108] - Fix the changed location of the final SBOM generated for ZIP manifests; fix the generation of multiple deliverable analysis manifests --- .../sbom/command/CycloneDxGenerateOperationCommand.java | 9 ++++++++- .../sbom/command/auto/GenerateOperationCommand.java | 2 +- .../feature/sbom/k8s/reconciler/OperationController.java | 4 ++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/cli/src/main/java/org/jboss/sbomer/cli/feature/sbom/command/CycloneDxGenerateOperationCommand.java b/cli/src/main/java/org/jboss/sbomer/cli/feature/sbom/command/CycloneDxGenerateOperationCommand.java index ac0bb454f..74fda3d0c 100644 --- a/cli/src/main/java/org/jboss/sbomer/cli/feature/sbom/command/CycloneDxGenerateOperationCommand.java +++ b/cli/src/main/java/org/jboss/sbomer/cli/feature/sbom/command/CycloneDxGenerateOperationCommand.java @@ -19,6 +19,7 @@ import java.io.IOException; import java.net.URI; +import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.HashMap; @@ -256,9 +257,15 @@ protected Path doGenerate() { parent.addDependency(dependency); } - Path sbomDirPath = Path.of(parent.getWorkdir().toAbsolutePath().toString(), "bom.json"); + Path sbomDirPath = Path.of( + parent.getWorkdir().toAbsolutePath().toString(), + String.valueOf(getParent().getIndex()), + "bom.json"); try { + // Create all non-existent parent directories + Files.createDirectories(sbomDirPath.getParent()); + ObjectMapperProvider.json() .writerWithDefaultPrettyPrinter() .writeValue(sbomDirPath.toFile(), toJsonNode(bom)); diff --git a/cli/src/main/java/org/jboss/sbomer/cli/feature/sbom/command/auto/GenerateOperationCommand.java b/cli/src/main/java/org/jboss/sbomer/cli/feature/sbom/command/auto/GenerateOperationCommand.java index bb2beec5a..33afae56d 100644 --- a/cli/src/main/java/org/jboss/sbomer/cli/feature/sbom/command/auto/GenerateOperationCommand.java +++ b/cli/src/main/java/org/jboss/sbomer/cli/feature/sbom/command/auto/GenerateOperationCommand.java @@ -177,7 +177,7 @@ private void generateDeliverableSbom(OperationConfig config, int i) { command.add(configPath.toAbsolutePath().toString()); command.add("--index"); - command.add(String.valueOf(index)); + command.add(String.valueOf(i)); command.add("--workdir"); command.add(workdir.toAbsolutePath().toString()); diff --git a/service/src/main/java/org/jboss/sbomer/service/feature/sbom/k8s/reconciler/OperationController.java b/service/src/main/java/org/jboss/sbomer/service/feature/sbom/k8s/reconciler/OperationController.java index 1d5dc4b81..36c512a9a 100644 --- a/service/src/main/java/org/jboss/sbomer/service/feature/sbom/k8s/reconciler/OperationController.java +++ b/service/src/main/java/org/jboss/sbomer/service/feature/sbom/k8s/reconciler/OperationController.java @@ -553,8 +553,8 @@ protected List storeOperationSboms(GenerationRequest generationRequest) { Path sbomPath = Path.of( controllerConfig.sbomDir(), generationRequest.getMetadata().getName(), - generationRequest.getMetadata().getName() + "-" + SbomGenerationPhase.OPERATIONGENERATE.ordinal() - + "-" + SbomGenerationPhase.OPERATIONGENERATE.name().toLowerCase() + "-" + i, + SbomGenerationPhase.GENERATE.name().toLowerCase(), + String.valueOf(i), "bom.json"); // Read the generated SBOM JSON file