Escape special characters in jsonpath field names.

Example: `{.items[*].metadata.labels.kubernetes\.io/hostname}`

[Resolves #31984]
This commit is contained in:
Joshua Carp
2016-10-02 23:54:13 -04:00
parent 475f6c5ef6
commit be3f556b77
2 changed files with 21 additions and 7 deletions

View File

@@ -206,7 +206,12 @@ func TestKubernetes(t *testing.T) {
"items":[
{
"kind":"None",
"metadata":{"name":"127.0.0.1"},
"metadata":{
"name":"127.0.0.1",
"labels":{
"kubernetes.io/hostname":"127.0.0.1"
}
},
"status":{
"capacity":{"cpu":"4"},
"addresses":[{"type": "LegacyHostIP", "address":"127.0.0.1"}]
@@ -214,7 +219,12 @@ func TestKubernetes(t *testing.T) {
},
{
"kind":"None",
"metadata":{"name":"127.0.0.2"},
"metadata":{
"name":"127.0.0.2",
"labels":{
"kubernetes.io/hostname":"127.0.0.2"
}
},
"status":{
"capacity":{"cpu":"8"},
"addresses":[
@@ -254,6 +264,8 @@ func TestKubernetes(t *testing.T) {
{"range nodes capacity", `{range .items[*]}[{.metadata.name}, {.status.capacity}] {end}`, nodesData,
"[127.0.0.1, map[cpu:4]] [127.0.0.2, map[cpu:8]] "},
{"user password", `{.users[?(@.name=="e2e")].user.password}`, &nodesData, "secret"},
{"hostname", `{.items[0].metadata.labels.kubernetes\.io/hostname}`, &nodesData, "127.0.0.1"},
{"hostname filter", `{.items[?(@.metadata.labels.kubernetes\.io/hostname=="127.0.0.1")].kind}`, &nodesData, "None"},
}
testJSONPath(nodesTests, t)