From e8c024f303260ecfb52db7f9b43bdbc08869ea47 Mon Sep 17 00:00:00 2001 From: nathannaveen <42319948+nathannaveen@users.noreply.github.com> Date: Fri, 19 Jul 2024 15:18:46 -0500 Subject: [PATCH] Improved error messages Signed-off-by: nathannaveen <42319948+nathannaveen@users.noreply.github.com> --- pkg/assembler/backends/keyvalue/certifyVuln.go | 14 ++++++-------- pkg/assembler/backends/keyvalue/hasSBOM.go | 17 ++++++++--------- pkg/assembler/backends/keyvalue/hasSLSA.go | 17 ++++++++--------- 3 files changed, 22 insertions(+), 26 deletions(-) diff --git a/pkg/assembler/backends/keyvalue/certifyVuln.go b/pkg/assembler/backends/keyvalue/certifyVuln.go index b2f1f8673d..7b52abcc76 100644 --- a/pkg/assembler/backends/keyvalue/certifyVuln.go +++ b/pkg/assembler/backends/keyvalue/certifyVuln.go @@ -76,37 +76,35 @@ func (c *demoClient) removeLinks(ctx context.Context, linkID string, links []str // DeleteCertifyVuln deletes a specified certifyVuln node along with all associated relationships. func (c *demoClient) DeleteCertifyVuln(ctx context.Context, id string) (bool, error) { - funcName := "DeleteCertifyVuln" - // Retrieve the certifyVulnerabilityLink by ID link, err := byIDkv[*certifyVulnerabilityLink](ctx, id, c) if err != nil { if errors.Is(err, kv.NotFoundError) { return false, nil // Not found, nothing to delete } - return false, gqlerror.Errorf("%v :: %s", funcName, err) // TODO: Improve error messages + return false, gqlerror.Errorf("failed to retrieve certifyVulnerabilityLink by ID: %v", err) } // Remove backlinks from associated package and vulnerability foundPackage, err := c.returnFoundPkgVersion(ctx, &model.IDorPkgInput{PackageVersionID: &link.PackageID}) if err != nil { - return false, gqlerror.Errorf("%v :: %s", funcName, err) + return false, gqlerror.Errorf("failed to retrieve package version: %v", err) } if err := c.removeLinks(ctx, link.ThisID, foundPackage.CertifyVulnLinks, "packages", foundPackage.ID()); err != nil { - return false, gqlerror.Errorf("%v :: %s", funcName, err) + return false, gqlerror.Errorf("failed to remove package backlinks: %v", err) } foundVulnNode, err := c.returnFoundVulnerability(ctx, &model.IDorVulnerabilityInput{VulnerabilityNodeID: &link.VulnerabilityID}) if err != nil { - return false, gqlerror.Errorf("%v :: %s", funcName, err) + return false, gqlerror.Errorf("failed to retrieve vulnerability node: %v", err) } if err := c.removeLinks(ctx, link.ThisID, foundVulnNode.CertifyVulnLinks, "vulnerabilities", foundVulnNode.ID()); err != nil { - return false, gqlerror.Errorf("%v :: %s", funcName, err) + return false, gqlerror.Errorf("failed to remove vulnerability backlinks: %v", err) } // Delete the link from the KeyValue store if err := c.kv.Remove(ctx, cVulnCol, link.Key()); err != nil { - return false, gqlerror.Errorf("%v :: %s", funcName, err) + return false, gqlerror.Errorf("failed to remove certifyVuln link from KeyValue store: %v", err) } return true, nil diff --git a/pkg/assembler/backends/keyvalue/hasSBOM.go b/pkg/assembler/backends/keyvalue/hasSBOM.go index 658f1e5120..d5dd10db44 100644 --- a/pkg/assembler/backends/keyvalue/hasSBOM.go +++ b/pkg/assembler/backends/keyvalue/hasSBOM.go @@ -69,7 +69,6 @@ func (n *hasSBOMStruct) Key() string { // DeleteHasSBOM deletes a specified hasSBOM node along with all associated relationships. func (c *demoClient) DeleteHasSBOM(ctx context.Context, id string) (bool, error) { - funcName := "DeleteHasSBOM" // Retrieve the hasSBOM link by ID link, err := byIDkv[*hasSBOMStruct](ctx, id, c) @@ -77,20 +76,20 @@ func (c *demoClient) DeleteHasSBOM(ctx context.Context, id string) (bool, error) if errors.Is(err, kv.NotFoundError) { return false, nil // Not found, nothing to delete } - return false, gqlerror.Errorf("%v :: %s", funcName, err) + return false, gqlerror.Errorf("failed to retrieve hasSBOM link by ID: %v", err) } // Delete associated isDependency nodes for _, depID := range link.IncludedDependencies { if err := c.kv.Remove(ctx, "dependencies", depID); !errors.Is(err, kv.NotFoundError) { - return false, gqlerror.Errorf("%v :: %s", funcName, err) + return false, gqlerror.Errorf("failed to remove dependency node with ID %s: %v", depID, err) } } // Delete associated isOccurrence nodes for _, occurID := range link.IncludedOccurrences { if err := c.kv.Remove(ctx, "occurrences", occurID); !errors.Is(err, kv.NotFoundError) { - return false, gqlerror.Errorf("%v :: %s", funcName, err) + return false, gqlerror.Errorf("failed to remove occurrence node with ID %s: %v", occurID, err) } } @@ -98,24 +97,24 @@ func (c *demoClient) DeleteHasSBOM(ctx context.Context, id string) (bool, error) if link.Pkg != "" { foundPkg, err := c.returnFoundPkgVersion(ctx, &model.IDorPkgInput{PackageVersionID: &link.Pkg}) if err != nil { - return false, gqlerror.Errorf("%v :: %s", funcName, err) + return false, gqlerror.Errorf("failed to retrieve package version: %v", err) } if err := c.removeLinks(ctx, link.ThisID, foundPkg.HasSBOMs, "packages", foundPkg.ID()); err != nil { - return false, gqlerror.Errorf("%v :: %s", funcName, err) + return false, gqlerror.Errorf("failed to remove package backlinks: %v", err) } } else if link.Artifact != "" { foundArtifact, err := c.returnFoundArtifact(ctx, &model.IDorArtifactInput{ArtifactID: &link.Artifact}) if err != nil { - return false, gqlerror.Errorf("%v :: %s", funcName, err) + return false, gqlerror.Errorf("failed to retrieve artifact: %v", err) } if err := c.removeLinks(ctx, link.ThisID, foundArtifact.HasSBOMs, "artifacts", foundArtifact.ID()); err != nil { - return false, gqlerror.Errorf("%v :: %s", funcName, err) + return false, gqlerror.Errorf("failed to remove artifact backlinks: %v", err) } } // Delete the hasSBOM link from the KeyValue store if err := c.kv.Remove(ctx, hasSBOMCol, link.Key()); err != nil { - return false, gqlerror.Errorf("%v :: %s", funcName, err) + return false, gqlerror.Errorf("failed to remove hasSBOM link from KeyValue store: %v", err) } return true, nil diff --git a/pkg/assembler/backends/keyvalue/hasSLSA.go b/pkg/assembler/backends/keyvalue/hasSLSA.go index 31f2f6515c..902f0f9096 100644 --- a/pkg/assembler/backends/keyvalue/hasSLSA.go +++ b/pkg/assembler/backends/keyvalue/hasSLSA.go @@ -74,7 +74,6 @@ func (n *hasSLSAStruct) Key() string { // DeleteHasSLSA deletes a specified SLSA node along with all associated relationships. func (c *demoClient) DeleteHasSLSA(ctx context.Context, id string) (bool, error) { - funcName := "DeleteSLSA" // Retrieve the SLSA link by ID link, err := byIDkv[*hasSLSAStruct](ctx, id, c) @@ -82,41 +81,41 @@ func (c *demoClient) DeleteHasSLSA(ctx context.Context, id string) (bool, error) if errors.Is(err, kv.NotFoundError) { return false, nil // Not found, nothing to delete } - return false, gqlerror.Errorf("%v :: %s", funcName, err) + return false, gqlerror.Errorf("Error retrieving SLSA link by ID: %v", err) } // Remove backlinks from associated subject foundSubject, err := c.returnFoundArtifact(ctx, &model.IDorArtifactInput{ArtifactID: &link.Subject}) if err != nil { - return false, gqlerror.Errorf("%v :: %s", funcName, err) + return false, gqlerror.Errorf("Error retrieving associated subject: %v", err) } if err := c.removeLinks(ctx, link.ThisID, foundSubject.HasSLSAs, "artifacts", foundSubject.ID()); err != nil { - return false, gqlerror.Errorf("%v :: %s", funcName, err) + return false, gqlerror.Errorf("Error removing backlinks from associated subject: %v", err) } // Remove backlinks from associated builtBy foundBuiltBy, err := c.returnFoundBuilder(ctx, &model.IDorBuilderInput{BuilderID: &link.BuiltBy}) if err != nil { - return false, gqlerror.Errorf("%v :: %s", funcName, err) + return false, gqlerror.Errorf("Error retrieving associated builtBy: %v", err) } if err := c.removeLinks(ctx, link.ThisID, foundBuiltBy.HasSLSAs, "builders", foundBuiltBy.ID()); err != nil { - return false, gqlerror.Errorf("%v :: %s", funcName, err) + return false, gqlerror.Errorf("Error removing backlinks from associated builtBy: %v", err) } // Remove backlinks from associated builtFrom for _, builtFromID := range link.BuiltFrom { foundBuiltFrom, err := c.returnFoundArtifact(ctx, &model.IDorArtifactInput{ArtifactID: &builtFromID}) if err != nil { - return false, gqlerror.Errorf("%v :: %s", funcName, err) + return false, gqlerror.Errorf("Error retrieving associated builtFrom: %v", err) } if err := c.removeLinks(ctx, link.ThisID, foundBuiltFrom.HasSLSAs, "artifacts", foundBuiltFrom.ID()); err != nil { - return false, gqlerror.Errorf("%v :: %s", funcName, err) + return false, gqlerror.Errorf("Error removing backlinks from associated builtFrom: %v", err) } } // Delete the link from the KeyValue store if err := c.kv.Remove(ctx, slsaCol, link.Key()); err != nil { - return false, gqlerror.Errorf("%v :: %s", funcName, err) + return false, gqlerror.Errorf("failed to remove hasSLSA link from KeyValue store: %v", err) } return true, nil