From 2154ea8e3c4eb3dbb51cfd040d6e98fc6bcda32d Mon Sep 17 00:00:00 2001 From: jochen Date: Fri, 30 Oct 2026 12:18:36 +0100 Subject: [PATCH] Accept the credential form none in a provisioner's plan, so the release's catalogue, which states it on every offer without a credential, no longer has every plan refused and every module held (issue 774) --- internal/inventory/provisioning.go | 5 +++-- internal/inventory/provisioning_test.go | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/internal/inventory/provisioning.go b/internal/inventory/provisioning.go index 3fdeb641..0d4130a4 100644 --- a/internal/inventory/provisioning.go +++ b/internal/inventory/provisioning.go @@ -127,9 +127,10 @@ var ( // begin. var PlacementKinds = []string{"dir", "access", "port", "seat", "machine", "backup"} -// credentialForms are the forms a provider's offer may declare for its credential (issue 768). +// credentialForms are the forms a provider's offer may declare for its credential (issue 768); "none" is an offer with +// no credential, which the release's catalogue states on every such offer (issue 774). var credentialForms = []string{catalogue.CredentialFormShared, catalogue.CredentialFormPair, - catalogue.CredentialFormIssued, catalogue.CredentialFormGiven} + catalogue.CredentialFormIssued, catalogue.CredentialFormGiven, catalogue.CredentialFormNone} var ( digestShape = regexp.MustCompile(`^sha256:[0-9a-f]{64}$`) diff --git a/internal/inventory/provisioning_test.go b/internal/inventory/provisioning_test.go index 5df700ae..c5f19e39 100644 --- a/internal/inventory/provisioning_test.go +++ b/internal/inventory/provisioning_test.go @@ -316,14 +316,16 @@ func TestAPlanNamesTheCredentialFormOfEachProvidersOffer(t *testing.T) { p := aPlan() p.Provisions = []ProvisionedCredential{ {Provision: "postgres-database", Provider: "novox", ProviderModule: "postgres", CredentialForm: "pair"}, - {Provision: "sonarr-api", Provider: "ace", ProviderModule: "sonarr", CredentialForm: "shared"}} + {Provision: "sonarr-api", Provider: "ace", ProviderModule: "sonarr", CredentialForm: "shared"}, + {Provision: "artifact-store", Provider: "novox", ProviderModule: "distribution", CredentialForm: "none"}} values, err := AssignmentValues(assigned, map[string]Provisioning{"g14.dunst": p}) if err != nil { t.Fatal(err) } if want := `{"provision":"postgres-database","provider":"novox","provider-module":"postgres",` + `"credential-form":"pair"},{"provision":"sonarr-api","provider":"ace","provider-module":"sonarr",` + - `"credential-form":"shared"}`; !strings.Contains(string(values["g14.dunst"]), want) { + `"credential-form":"shared"},{"provision":"artifact-store","provider":"novox","provider-module":"distribution",` + + `"credential-form":"none"}`; !strings.Contains(string(values["g14.dunst"]), want) { t.Errorf("the plan's value is %s, want it to carry %s", values["g14.dunst"], want) } bad := aPlan() -- 2.54.0