Dashboards: Fix history list for dashboard uids that end in - (#107073)
This commit is contained in:
@@ -70,9 +70,6 @@ func toListRequest(k *resourcepb.ResourceKey, opts storage.ListOptions) (*resour
|
||||
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)
|
||||
}
|
||||
@@ -90,7 +87,21 @@ func toListRequest(k *resourcepb.ResourceKey, opts storage.ListOptions) (*resour
|
||||
}
|
||||
case utils.LabelKeyGetHistory:
|
||||
req.Source = resourcepb.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
|
||||
|
||||
@@ -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: &resourcepb.ListRequest{
|
||||
|
||||
Reference in New Issue
Block a user