diff --git a/nomad/job_endpoint_oss.go b/nomad/job_endpoint_oss.go index e234844293a8..f76e1ede5ef9 100644 --- a/nomad/job_endpoint_oss.go +++ b/nomad/job_endpoint_oss.go @@ -3,6 +3,7 @@ package nomad import ( + "errors" "fmt" "strings" @@ -10,6 +11,9 @@ import ( vapi "github.com/hashicorp/vault/api" ) +// MultipleNamespacesErr is send when multiple namespaces are used in the OSS setup +var MultipleNamespacesErr = errors.New("multiple vault namespaces requires Nomad Enterprise") + // enforceSubmitJob is used to check any Sentinel policies for the submit-job scope func (j *Job) enforceSubmitJob(override bool, job *structs.Job) (error, error) { return nil, nil @@ -51,7 +55,7 @@ func (j *Job) multiVaultNamespaceValidation( ) error { requestedNamespaces := structs.VaultNamespaceSet(policies) if len(requestedNamespaces) > 0 { - return fmt.Errorf("multiple vault namespaces requires Nomad Enterprise, Namespaces: %s", strings.Join(requestedNamespaces, ", ")) + return fmt.Errorf("%w, Namespaces: %s", MultipleNamespacesErr, strings.Join(requestedNamespaces, ", ")) } return nil } diff --git a/nomad/job_endpoint_test.go b/nomad/job_endpoint_test.go index 970a35b38992..357be5dd7092 100644 --- a/nomad/job_endpoint_test.go +++ b/nomad/job_endpoint_test.go @@ -1737,7 +1737,7 @@ func TestJobEndpoint_Register_Vault_MultiNamespaces(t *testing.T) { err := msgpackrpc.CallWithCodec(codec, "Job.Register", req, &resp) // OSS or Ent check if s1.EnterpriseState.Features() == 0 { - require.Contains(t, err.Error(), "multiple vault namespaces requires Nomad Enterprise") + require.True(t, errors.Is(err, MultipleNamespacesErr)) } else { require.NoError(t, err) }