@@ -92,14 +92,14 @@ func BuildListOptions(options metav1.ListOptions, ns, namePrefix, nameFilter, cr
9292 }
9393 }
9494 showRemainingItemCount := false
95- for _ , selector := range strings .Split (options .FieldSelector , "," ) {
95+ for selector := range strings .SplitSeq (options .FieldSelector , "," ) {
9696 if len (selector ) == 0 {
9797 continue
9898 }
99- if strings .HasPrefix (selector , "metadata.namespace=" ) {
99+ if after , ok := strings .CutPrefix (selector , "metadata.namespace=" ); ok {
100100 // for backward compatibility, the field selector 'metadata.namespace' is supported for now despite the addition
101101 // of the new 'namespace' query parameter, which is what the UI uses
102- fieldSelectedNamespace := strings . TrimPrefix ( selector , "metadata.namespace=" )
102+ fieldSelectedNamespace := after
103103 switch namespace {
104104 case "" :
105105 namespace = fieldSelectedNamespace
@@ -109,16 +109,16 @@ func BuildListOptions(options metav1.ListOptions, ns, namePrefix, nameFilter, cr
109109 return ListOptions {}, status .Errorf (codes .InvalidArgument ,
110110 "'namespace' query param (%q) and fieldselector 'metadata.namespace' (%q) are both specified and contradict each other" , namespace , fieldSelectedNamespace )
111111 }
112- } else if strings .HasPrefix (selector , "metadata.name=" ) {
113- name = strings . TrimPrefix ( selector , "metadata.name=" )
114- } else if strings .HasPrefix (selector , "spec.startedAt>" ) {
115- minStartedAt , err = time .Parse (time .RFC3339 , strings . TrimPrefix ( selector , "spec.startedAt>" ) )
112+ } else if after , ok := strings .CutPrefix (selector , "metadata.name=" ); ok {
113+ name = after
114+ } else if after , ok := strings .CutPrefix (selector , "spec.startedAt>" ); ok {
115+ minStartedAt , err = time .Parse (time .RFC3339 , after )
116116 if err != nil {
117117 // startedAt is populated by us, it should therefore be valid.
118118 return ListOptions {}, ToStatusError (err , codes .Internal )
119119 }
120- } else if strings .HasPrefix (selector , "spec.startedAt<" ) {
121- maxStartedAt , err = time .Parse (time .RFC3339 , strings . TrimPrefix ( selector , "spec.startedAt<" ) )
120+ } else if after , ok := strings .CutPrefix (selector , "spec.startedAt<" ); ok {
121+ maxStartedAt , err = time .Parse (time .RFC3339 , after )
122122 if err != nil {
123123 // no need to use sutils here
124124 return ListOptions {}, ToStatusError (err , codes .Internal )
0 commit comments