[release-12.0.3] Dashboard: Fix history retrieval for uids that end in - (#107081)

This commit is contained in:
Stephanie Hingtgen
2025-06-24 15:47:12 +03:00
committed by GitHub
parent 037fe5dfe9
commit b296a51d0d
4 changed files with 50 additions and 7 deletions
+15 -4
View File
@@ -71,9 +71,6 @@ func toListRequest(k *resource.ResourceKey, opts storage.ListOptions) (*resource
if len(requirements) != 1 {
return nil, predicate, apierrors.NewBadRequest("single label supported with: " + v)
}
if opts.Predicate.Field != nil && !opts.Predicate.Field.Empty() {
return nil, predicate, apierrors.NewBadRequest("field selector not supported with: " + v)
}
if r.Operator() != selection.Equals {
return nil, predicate, apierrors.NewBadRequest("only = operator supported with: " + v)
}
@@ -91,7 +88,21 @@ func toListRequest(k *resource.ResourceKey, opts storage.ListOptions) (*resource
}
case utils.LabelKeyGetHistory:
req.Source = resource.ListRequest_HISTORY
req.Options.Key.Name = vals[0]
if opts.Predicate.Field == nil || opts.Predicate.Field.Empty() {
return nil, predicate, apierrors.NewBadRequest("metadata.name field selector required for history requests")
}
fieldRequirements := opts.Predicate.Field.Requirements()
if len(fieldRequirements) != 1 {
return nil, predicate, apierrors.NewBadRequest("only one field selector supported for history requests")
}
fieldReq := fieldRequirements[0]
if fieldReq.Field != "metadata.name" {
return nil, predicate, apierrors.NewBadRequest("metadata.name field selector required for history requests")
}
req.Options.Key.Name = fieldReq.Value
}
req.Options.Labels = nil
+3 -1
View File
@@ -6,6 +6,7 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
apierrors "k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/fields"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/selection"
"k8s.io/apiserver/pkg/storage"
@@ -153,7 +154,8 @@ func TestToListRequest(t *testing.T) {
},
opts: storage.ListOptions{
Predicate: storage.SelectionPredicate{
Label: labels.SelectorFromSet(labels.Set{utils.LabelKeyGetHistory: "test-name"}),
Label: labels.SelectorFromSet(labels.Set{utils.LabelKeyGetHistory: "true"}),
Field: fields.SelectorFromSet(fields.Set{"metadata.name": "test-name"}),
},
},
want: &resource.ListRequest{