1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-30 19:35:06 +00:00

Fixes time_now failing (#5928)

* fixes time_now

Signed-off-by: Vishal Choudhary <contactvishaltech@gmail.com>

* testing

Signed-off-by: Vishal Choudhary <contactvishaltech@gmail.com>

* simplified

Signed-off-by: Vishal Choudhary <contactvishaltech@gmail.com>

Signed-off-by: Vishal Choudhary <contactvishaltech@gmail.com>
This commit is contained in:
Vishal Choudhary 2023-01-09 19:46:43 +05:30 committed by GitHub
parent 76b716da4e
commit 837f474969
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 24 deletions

View file

@ -380,10 +380,7 @@ func GetFunctions() []*FunctionEntry {
},
{
Entry: &gojmespath.FunctionEntry{
Name: timeNow,
Arguments: []ArgSpec{
{Types: []JpType{JpString}},
},
Name: timeNow,
Handler: jpTimeNow,
},
ReturnType: []JpType{JpString},
@ -877,26 +874,9 @@ func jpTimeSince(arguments []interface{}) (interface{}, error) {
}
func jpTimeNow(arguments []interface{}) (interface{}, error) {
var err error
layout, err := validateArg("", arguments, 0, reflect.String)
if err != nil {
return nil, err
}
var t time.Time
t = time.Now()
if layout.String() != "" {
t, err = time.Parse(layout.String(), t.String())
} else {
t, err = time.Parse(time.RFC3339, t.String())
}
if err != nil {
return nil, err
}
return t.String(), nil
var ts time.Time = time.Now()
var t string = ts.Format(time.RFC3339)
return t, nil
}
func jpPathCanonicalize(arguments []interface{}) (interface{}, error) {

View file

@ -5,6 +5,7 @@ import (
"fmt"
"runtime"
"testing"
"time"
"gotest.tools/assert"
)
@ -1639,3 +1640,28 @@ func Test_TimeParse(t *testing.T) {
})
}
}
func Test_TimeNow(t *testing.T) {
testCases := []struct {
test string
layout string
}{
{
test: "time_now()",
},
}
for i, tc := range testCases {
t.Run(fmt.Sprintf("case %d", i), func(t *testing.T) {
query, err := New(tc.test)
assert.NilError(t, err)
res, err := query.Search("")
assert.NilError(t, err)
result, ok := res.(string)
assert.Assert(t, ok)
assert.Equal(t, result, time.Now().Format(time.RFC3339))
})
}
}