mirror of
https://github.com/yannh/kubeconform.git
synced 2026-04-15 16:59:51 +00:00
Try to expose JSON paths (#173)
* Try to expose JSON paths * update validationErrors format in json output * Add test to JSON output with validationError
This commit is contained in:
parent
9860cde144
commit
563e1db94c
3 changed files with 107 additions and 13 deletions
|
|
@ -9,12 +9,13 @@ import (
|
|||
)
|
||||
|
||||
type oresult struct {
|
||||
Filename string `json:"filename"`
|
||||
Kind string `json:"kind"`
|
||||
Name string `json:"name"`
|
||||
Version string `json:"version"`
|
||||
Status string `json:"status"`
|
||||
Msg string `json:"msg"`
|
||||
Filename string `json:"filename"`
|
||||
Kind string `json:"kind"`
|
||||
Name string `json:"name"`
|
||||
Version string `json:"version"`
|
||||
Status string `json:"status"`
|
||||
Msg string `json:"msg"`
|
||||
ValidationErrors []validator.ValidationError `json:"validationErrors,omitempty"`
|
||||
}
|
||||
|
||||
type jsono struct {
|
||||
|
|
@ -49,11 +50,15 @@ func (o *jsono) Write(result validator.Result) error {
|
|||
o.nValid++
|
||||
case validator.Invalid:
|
||||
st = "statusInvalid"
|
||||
msg = result.Err.Error()
|
||||
if result.Err != nil {
|
||||
msg = result.Err.Error()
|
||||
}
|
||||
o.nInvalid++
|
||||
case validator.Error:
|
||||
st = "statusError"
|
||||
msg = result.Err.Error()
|
||||
if result.Err != nil {
|
||||
msg = result.Err.Error()
|
||||
}
|
||||
o.nErrors++
|
||||
case validator.Skipped:
|
||||
st = "statusSkipped"
|
||||
|
|
@ -63,7 +68,15 @@ func (o *jsono) Write(result validator.Result) error {
|
|||
|
||||
if o.verbose || (result.Status != validator.Valid && result.Status != validator.Skipped && result.Status != validator.Empty) {
|
||||
sig, _ := result.Resource.Signature()
|
||||
o.results = append(o.results, oresult{Filename: result.Resource.Path, Kind: sig.Kind, Name: sig.Name, Version: sig.Version, Status: st, Msg: msg})
|
||||
o.results = append(o.results, oresult{
|
||||
Filename: result.Resource.Path,
|
||||
Kind: sig.Kind,
|
||||
Name: sig.Name,
|
||||
Version: sig.Version,
|
||||
Status: st,
|
||||
Msg: msg,
|
||||
ValidationErrors: result.ValidationErrors,
|
||||
})
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -93,6 +93,60 @@ metadata:
|
|||
"skipped": 0
|
||||
}
|
||||
}
|
||||
`,
|
||||
},
|
||||
{
|
||||
"a single invalid deployment, verbose, with summary",
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
[]validator.Result{
|
||||
{
|
||||
Resource: resource.Resource{
|
||||
Path: "deployment.yml",
|
||||
Bytes: []byte(`apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: "my-app"
|
||||
`),
|
||||
},
|
||||
Status: validator.Invalid,
|
||||
Err: &validator.ValidationError{
|
||||
Path: "foo",
|
||||
Msg: "bar",
|
||||
},
|
||||
ValidationErrors: []validator.ValidationError{
|
||||
{
|
||||
Path: "foo",
|
||||
Msg: "bar",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
`{
|
||||
"resources": [
|
||||
{
|
||||
"filename": "deployment.yml",
|
||||
"kind": "Deployment",
|
||||
"name": "my-app",
|
||||
"version": "apps/v1",
|
||||
"status": "statusInvalid",
|
||||
"msg": "bar",
|
||||
"validationErrors": [
|
||||
{
|
||||
"path": "foo",
|
||||
"msg": "bar"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"summary": {
|
||||
"valid": 0,
|
||||
"invalid": 1,
|
||||
"errors": 0,
|
||||
"skipped": 0
|
||||
}
|
||||
}
|
||||
`,
|
||||
},
|
||||
} {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue