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 (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
|
||||||
|
|
||||||
yaml "gopkg.in/yaml.v2"
|
yaml "gopkg.in/yaml.v2"
|
||||||
)
|
)
|
||||||
@ -46,19 +45,16 @@ type Summary struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// NewControls instantiates a new master Controls object.
|
// NewControls instantiates a new master Controls object.
|
||||||
func NewControls(t NodeType, in []byte) *Controls {
|
func NewControls(t NodeType, in []byte) (*Controls, error) {
|
||||||
var err error
|
|
||||||
c := new(Controls)
|
c := new(Controls)
|
||||||
|
|
||||||
err = yaml.Unmarshal(in, c)
|
err := yaml.Unmarshal(in, c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Fprintf(os.Stderr, "%s\n", err)
|
return nil, fmt.Errorf("failed to unmarshal YAML: %s", err)
|
||||||
os.Exit(1)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if t != c.Type {
|
if t != c.Type {
|
||||||
fmt.Fprintf(os.Stderr, "non-%s controls file specified\n", t)
|
return nil, fmt.Errorf("non-%s controls file specified", t)
|
||||||
os.Exit(1)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prepare audit commands
|
// 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.
|
// RunGroup runs all checks in a group.
|
||||||
|
@ -30,7 +30,10 @@ func init() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
panic("Failed reading test data: " + err.Error())
|
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) {
|
func TestTestExecute(t *testing.T) {
|
||||||
|
@ -88,7 +88,7 @@ func runChecks(t check.NodeType) {
|
|||||||
|
|
||||||
in, err := ioutil.ReadFile(file)
|
in, err := ioutil.ReadFile(file)
|
||||||
if err != nil {
|
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)
|
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, "$etcdConfDir", viper.Get("etcdConfDir").(string), -1)
|
||||||
s = strings.Replace(s, "$flanneldConfDir", viper.Get("flanneldConfDir").(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 == "" {
|
if groupList != "" && checkList == "" {
|
||||||
ids := cleanIDs(groupList)
|
ids := cleanIDs(groupList)
|
||||||
|
Loading…
Reference in New Issue
Block a user