diff --git a/pkg/steps/lease.go b/pkg/steps/lease.go index 6d1aede52c0..41d73cffdac 100644 --- a/pkg/steps/lease.go +++ b/pkg/steps/lease.go @@ -4,6 +4,7 @@ import ( "context" "errors" "log" + "strings" utilerrors "k8s.io/apimachinery/pkg/util/errors" coreclientset "k8s.io/client-go/kubernetes/typed/core/v1" @@ -61,7 +62,8 @@ func (s *leaseStep) Provides() api.ParameterMap { parameters = api.ParameterMap{} } parameters[leaseEnv] = func() (string, error) { - return s.leasedResource, nil + chunks := strings.SplitN(s.leasedResource, "--", 2) + return chunks[0], nil } return parameters } diff --git a/pkg/steps/lease_test.go b/pkg/steps/lease_test.go index 0f7da4dc16b..5acecafe6d0 100644 --- a/pkg/steps/lease_test.go +++ b/pkg/steps/lease_test.go @@ -85,7 +85,7 @@ func TestLeaseStepForward(t *testing.T) { t.Errorf("not properly forwarded: %s", diff.ObjectDiff(l, s)) } }) - t.Run("Provides", func(t *testing.T) { + t.Run("Provides includes parameters from wrapped step", func(t *testing.T) { sParam := step.Provides() sRet, err := sParam["parameter"]() if err != nil { @@ -100,6 +100,19 @@ func TestLeaseStepForward(t *testing.T) { t.Errorf("not properly forwarded (param): %s", diff.ObjectDiff(lParam, sParam)) } }) + t.Run("Provides includes sanitized lease name", func(t *testing.T) { + rawLeaseStep := withLease.(*leaseStep) + rawLeaseStep.leasedResource = "whatever--01" + expected := "whatever" + lParam := withLease.Provides() + actual, err := lParam[leaseEnv]() + if err != nil { + t.Fatal(err) + } + if actual != expected { + t.Errorf("got %q for %s, expected %q", actual, leaseEnv, expected) + } + }) t.Run("SubTests", func(T *testing.T) { s, l := step.SubTests(), withLease.(subtestReporter).SubTests() if !reflect.DeepEqual(l, s) {