Fix jsonpath slice step handling

Kubernetes-commit: 233d7e4962f61e9e8b4a4695f0cdab688ffc4368
This commit is contained in:
Jordan Liggitt
2019-01-21 16:58:52 -05:00
committed by Kubernetes Publisher
parent e3fddcc5ac
commit 6b7e2becf2
4 changed files with 145 additions and 9 deletions

View File

@@ -273,12 +273,16 @@ func (j *JSONPath) evalArray(input []reflect.Value, node *ArrayNode) ([]reflect.
return result, nil
}
if !params[2].Known {
value = value.Slice(params[0].Value, params[1].Value)
} else {
value = value.Slice3(params[0].Value, params[1].Value, params[2].Value)
value = value.Slice(params[0].Value, params[1].Value)
step := 1
if params[2].Known {
if params[2].Value <= 0 {
return input, fmt.Errorf("step must be >= 0")
}
step = params[2].Value
}
for i := 0; i < value.Len(); i++ {
for i := 0; i < value.Len(); i += step {
result = append(result, value.Index(i))
}
}