From 05932103fd41ef752695258afbb509178fdb7b56 Mon Sep 17 00:00:00 2001 From: Hilmar Falkenberg Date: Thu, 2 May 2024 13:30:55 +0200 Subject: [PATCH] Don't Panik! The answer is: 42 --- .../repositories/genericocireg/component.go | 22 +++++++++++-------- .../genericocireg/componentversion.go | 10 ++++----- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/pkg/contexts/ocm/repositories/genericocireg/component.go b/pkg/contexts/ocm/repositories/genericocireg/component.go index 02d7131414..4297826d04 100644 --- a/pkg/contexts/ocm/repositories/genericocireg/component.go +++ b/pkg/contexts/ocm/repositories/genericocireg/component.go @@ -1,7 +1,3 @@ -// SPDX-FileCopyrightText: 2022 SAP SE or an SAP affiliate company and Open Component Model contributors. -// -// SPDX-License-Identifier: Apache-2.0 - package genericocireg import ( @@ -73,12 +69,12 @@ func (c *componentAccessImpl) GetName() string { //////////////////////////////////////////////////////////////////////////////// -func toTag(v string) string { +func toTag(v string) (string, err) { _, err := semver.NewVersion(v) if err != nil { - panic(errors.Wrapf(err, "%s is no semver version", v)) + return "", err } - return strings.ReplaceAll(v, "+", META_SEPARATOR) + return strings.ReplaceAll(v, "+", META_SEPARATOR), nil } func toVersion(t string) string { @@ -132,7 +128,11 @@ func (c *componentAccessImpl) HasVersion(vers string) (bool, error) { } func (c *componentAccessImpl) LookupVersion(version string) (*repocpi.ComponentVersionAccessInfo, error) { - acc, err := c.namespace.GetArtifact(toTag(version)) + tag, err := toTag(version) + if err != nil { + return nil, err + } + acc, err := c.namespace.GetArtifact(tag) if err != nil { if errors.IsErrNotFound(err) { return nil, cpi.ErrComponentVersionNotFoundWrap(err, c.name, version) @@ -151,7 +151,11 @@ func (c *componentAccessImpl) NewVersion(version string, overrides ...bool) (*re return nil, accessio.ErrReadOnly } override := utils.Optional(overrides...) - acc, err := c.namespace.GetArtifact(toTag(version)) + tag, err := toTag(version) + if err != nil { + return nil, err + } + acc, err := c.namespace.GetArtifact(tag) if err == nil { if override { return newComponentVersionAccess(accessobj.ACC_CREATE, c, version, acc, false) diff --git a/pkg/contexts/ocm/repositories/genericocireg/componentversion.go b/pkg/contexts/ocm/repositories/genericocireg/componentversion.go index 322b8726b9..e2d8b2b998 100644 --- a/pkg/contexts/ocm/repositories/genericocireg/componentversion.go +++ b/pkg/contexts/ocm/repositories/genericocireg/componentversion.go @@ -1,7 +1,3 @@ -// SPDX-FileCopyrightText: 2022 SAP SE or an SAP affiliate company and Open Component Model contributors. -// -// SPDX-License-Identifier: Apache-2.0 - package genericocireg import ( @@ -222,7 +218,11 @@ func (c *ComponentVersionContainer) Update() error { } logger.Debug("add oci artifact") - if _, err := c.comp.namespace.AddArtifact(c.manifest, toTag(c.version)); err != nil { + tag, err := toTag(version) + if err != nil { + return err + } + if _, err := c.comp.namespace.AddArtifact(c.manifest, tag); err != nil { return fmt.Errorf("unable to add artifact: %w", err) } }