Merge pull request #14 from yannh/refactor2

refactor
This commit is contained in:
Yann Hamon 2020-11-01 16:37:36 +01:00 committed by GitHub
commit e1deb174a6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 30 deletions

View file

@ -107,11 +107,7 @@ func getFiles(files []string, filesChan chan<- string, validationResults chan va
for _, filename := range files { for _, filename := range files {
file, err := os.Open(filename) file, err := os.Open(filename)
if err != nil { if err != nil {
validationResults <- validator.Result{ validationResults <- validator.NewError(filename, err)
Resource: resource.Resource{Path: filename},
Err: err,
Status: validator.Error,
}
continue continue
} }
defer file.Close() defer file.Close()
@ -119,19 +115,11 @@ func getFiles(files []string, filesChan chan<- string, validationResults chan va
fi, err := file.Stat() fi, err := file.Stat()
switch { switch {
case err != nil: case err != nil:
validationResults <- validator.Result{ validationResults <- validator.NewError(filename, err)
Resource: resource.Resource{Path: filename},
Err: err,
Status: validator.Error,
}
case fi.IsDir(): case fi.IsDir():
if err := fsutils.FindYamlInDir(filename, filesChan); err != nil { if err := fsutils.FindYamlInDir(filename, filesChan); err != nil {
validationResults <- validator.Result{ validationResults <- validator.NewError(filename, err)
Resource: resource.Resource{Path: filename},
Err: err,
Status: validator.Error,
}
} }
default: default:
@ -195,11 +183,7 @@ func realMain() int {
if isStdin { if isStdin {
resources, err := resource.FromStream("stdin", os.Stdin) resources, err := resource.FromStream("stdin", os.Stdin)
if err != nil { if err != nil {
validationResults <- validator.Result{ validationResults <- validator.NewError("stdin", err)
Resource: resource.Resource{Path: "stdin"},
Err: err,
Status: validator.Error,
}
} else { } else {
resourcesChan <- resources resourcesChan <- resources
} }
@ -207,21 +191,13 @@ func realMain() int {
for filename := range files { for filename := range files {
f, err := os.Open(filename) f, err := os.Open(filename)
if err != nil { if err != nil {
validationResults <- validator.Result{ validationResults <- validator.NewError(filename, err)
Resource: resource.Resource{Path: filename},
Err: err,
Status: validator.Error,
}
continue continue
} }
resources, err := resource.FromStream(filename, f) resources, err := resource.FromStream(filename, f)
if err != nil { if err != nil {
validationResults <- validator.Result{ validationResults <- validator.NewError(filename, err)
Resource: resource.Resource{Path: filename},
Err: err,
Status: validator.Error,
}
continue continue
} }

View file

@ -43,6 +43,14 @@ type Result struct {
Status Status Status Status
} }
func NewError(filename string, err error) Result {
return Result{
Resource: resource.Resource{Path: filename},
Err: err,
Status: Error,
}
}
// Validate validates a single Kubernetes resource against a Json Schema // Validate validates a single Kubernetes resource against a Json Schema
func Validate(res resource.Resource, schema *gojsonschema.Schema) Result { func Validate(res resource.Resource, schema *gojsonschema.Schema) Result {
if schema == nil { if schema == nil {