mirror of
https://github.com/aquasecurity/kube-bench.git
synced 2024-12-22 06:38:06 +00:00
Better error handling when reading YAML files
This commit is contained in:
parent
f920d61a6a
commit
b4237ccb73
@ -17,7 +17,6 @@ package check
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
yaml "gopkg.in/yaml.v2"
|
||||
)
|
||||
@ -46,19 +45,16 @@ type Summary struct {
|
||||
}
|
||||
|
||||
// NewControls instantiates a new master Controls object.
|
||||
func NewControls(t NodeType, in []byte) *Controls {
|
||||
var err error
|
||||
func NewControls(t NodeType, in []byte) (*Controls, error) {
|
||||
c := new(Controls)
|
||||
|
||||
err = yaml.Unmarshal(in, c)
|
||||
err := yaml.Unmarshal(in, c)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "%s\n", err)
|
||||
os.Exit(1)
|
||||
return nil, fmt.Errorf("failed to unmarshal YAML: %s", err)
|
||||
}
|
||||
|
||||
if t != c.Type {
|
||||
fmt.Fprintf(os.Stderr, "non-%s controls file specified\n", t)
|
||||
os.Exit(1)
|
||||
return nil, fmt.Errorf("non-%s controls file specified", t)
|
||||
}
|
||||
|
||||
// Prepare audit commands
|
||||
@ -68,7 +64,7 @@ func NewControls(t NodeType, in []byte) *Controls {
|
||||
}
|
||||
}
|
||||
|
||||
return c
|
||||
return c, nil
|
||||
}
|
||||
|
||||
// RunGroup runs all checks in a group.
|
||||
|
@ -30,7 +30,10 @@ func init() {
|
||||
if err != nil {
|
||||
panic("Failed reading test data: " + err.Error())
|
||||
}
|
||||
controls = NewControls(MASTER, in)
|
||||
controls, err = NewControls(MASTER, in)
|
||||
if err != nil {
|
||||
panic("Failed creating test controls: " + err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
func TestTestExecute(t *testing.T) {
|
||||
|
@ -88,7 +88,7 @@ func runChecks(t check.NodeType) {
|
||||
|
||||
in, err := ioutil.ReadFile(file)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "error opening %s controls file: %s\n", t, err)
|
||||
fmt.Fprintf(os.Stderr, "error opening %s controls file: %v\n", t, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
@ -97,7 +97,11 @@ func runChecks(t check.NodeType) {
|
||||
s = strings.Replace(s, "$etcdConfDir", viper.Get("etcdConfDir").(string), -1)
|
||||
s = strings.Replace(s, "$flanneldConfDir", viper.Get("flanneldConfDir").(string), -1)
|
||||
|
||||
controls := check.NewControls(t, []byte(s))
|
||||
controls, err := check.NewControls(t, []byte(s))
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "error setting up %s controls: %v\n", t, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
if groupList != "" && checkList == "" {
|
||||
ids := cleanIDs(groupList)
|
||||
|
Loading…
Reference in New Issue
Block a user