From dd54f7b74ac14103ec370bea195a18762b319517 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Fri, 24 Jan 2025 10:06:26 +0100 Subject: [PATCH] osbuild: add consts for more "sources" in sources.go This is a followup for the suggestion in PR#1142 to not use strings for defining sources but constants. This helps avoiding typos. Note that this does not change the tests to ensure that we keep the API promises here. I.e. an accidental change of e.g. the `SourceNameSkopeoIndex` const should trigger a test failure. --- pkg/osbuild/containers_input.go | 2 +- pkg/osbuild/containers_storage_source.go | 2 ++ pkg/osbuild/skopeo_index_source.go | 2 ++ pkg/osbuild/skopeo_source.go | 2 ++ pkg/osbuild/skopeo_stage.go | 4 ++-- pkg/osbuild/source.go | 6 +++--- 6 files changed, 12 insertions(+), 6 deletions(-) diff --git a/pkg/osbuild/containers_input.go b/pkg/osbuild/containers_input.go index 917f1ac4a2..0caad6fea1 100644 --- a/pkg/osbuild/containers_input.go +++ b/pkg/osbuild/containers_input.go @@ -29,7 +29,7 @@ func newContainersInputForSources(containers []container.Spec, forLocal bool) Co var sourceType string if forLocal { - sourceType = "org.osbuild.containers-storage" + sourceType = SourceNameContainersStorage } else { sourceType = "org.osbuild.containers" } diff --git a/pkg/osbuild/containers_storage_source.go b/pkg/osbuild/containers_storage_source.go index 97799268e0..626c289384 100644 --- a/pkg/osbuild/containers_storage_source.go +++ b/pkg/osbuild/containers_storage_source.go @@ -2,6 +2,8 @@ package osbuild import "fmt" +const SourceNameContainersStorage = "org.osbuild.containers-storage" + type ContainersStorageSource struct { Items map[string]struct{} `json:"items"` } diff --git a/pkg/osbuild/skopeo_index_source.go b/pkg/osbuild/skopeo_index_source.go index d273fb1381..d503c2e5bf 100644 --- a/pkg/osbuild/skopeo_index_source.go +++ b/pkg/osbuild/skopeo_index_source.go @@ -4,6 +4,8 @@ import ( "fmt" ) +const SourceNameSkopeoIndex = "org.osbuild.skopeo-index" + type SkopeoIndexSource struct { Items map[string]SkopeoIndexSourceItem `json:"items"` } diff --git a/pkg/osbuild/skopeo_source.go b/pkg/osbuild/skopeo_source.go index 1145e59c50..e522b3d7ee 100644 --- a/pkg/osbuild/skopeo_source.go +++ b/pkg/osbuild/skopeo_source.go @@ -5,6 +5,8 @@ import ( "regexp" ) +const SourceNameSkopeo = "org.osbuild.skopeo" + var skopeoDigestPattern = regexp.MustCompile(`sha256:[0-9a-f]{64}`) const DockerTransport = "docker" diff --git a/pkg/osbuild/skopeo_stage.go b/pkg/osbuild/skopeo_stage.go index 8a2b48da89..606cc545e7 100644 --- a/pkg/osbuild/skopeo_stage.go +++ b/pkg/osbuild/skopeo_stage.go @@ -41,7 +41,7 @@ func NewSkopeoStageWithContainersStorage(path string, images ContainersInput, ma } return &Stage{ - Type: "org.osbuild.skopeo", + Type: SourceNameSkopeo, Options: &SkopeoStageOptions{ Destination: SkopeoDestinationContainersStorage{ Type: "containers-storage", @@ -59,7 +59,7 @@ func NewSkopeoStageWithOCI(path string, images ContainersInput, manifests *Files } return &Stage{ - Type: "org.osbuild.skopeo", + Type: SourceNameSkopeo, Options: &SkopeoStageOptions{ Destination: &SkopeoDestinationOCI{ Type: "oci", diff --git a/pkg/osbuild/source.go b/pkg/osbuild/source.go index 0505f214c8..ad88f6c99c 100644 --- a/pkg/osbuild/source.go +++ b/pkg/osbuild/source.go @@ -160,13 +160,13 @@ func GenSources(inputs SourceInputs, rpmDownloader RpmDownloader) (Sources, erro } } if len(skopeo.Items) > 0 { - sources["org.osbuild.skopeo"] = skopeo + sources[SourceNameSkopeo] = skopeo } if len(skopeoIndex.Items) > 0 { - sources["org.osbuild.skopeo-index"] = skopeoIndex + sources[SourceNameSkopeoIndex] = skopeoIndex } if len(localContainers.Items) > 0 { - sources["org.osbuild.containers-storage"] = localContainers + sources[SourceNameContainersStorage] = localContainers } }