From 8ea08924379dc0cca7f2614cdaa0dedf1ac99b6f Mon Sep 17 00:00:00 2001
From: Abubakr-Sadik Nii Nai Davis <dwa2pac@gmail.com>
Date: Sun, 17 Sep 2017 00:09:02 +0000
Subject: [PATCH] Update controls to support multiple Kubernetes versions.

---
 check/controls.go      |  1 +
 check/controls_test.go | 33 +++++++++++++++++++++------------
 2 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/check/controls.go b/check/controls.go
index dfea006..909adb7 100644
--- a/check/controls.go
+++ b/check/controls.go
@@ -24,6 +24,7 @@ import (
 // Controls holds all controls to check for master nodes.
 type Controls struct {
 	ID     string `yaml:"id"`
+	Version string
 	Text   string
 	Type   NodeType
 	Groups []*Group
diff --git a/check/controls_test.go b/check/controls_test.go
index ef9b1f4..3cf9b60 100644
--- a/check/controls_test.go
+++ b/check/controls_test.go
@@ -11,22 +11,31 @@ const cfgDir = "../cfg/"
 
 // validate that the files we're shipping are valid YAML
 func TestYamlFiles(t *testing.T) {
-	files, err := ioutil.ReadDir(cfgDir)
-	if err != nil {
-		t.Fatalf("error reading %s directory: %v", cfgDir, err)
-	}
-	for _, file := range files {
-		fileName := file.Name()
-		in, err := ioutil.ReadFile(cfgDir + fileName)
+	// TODO: make this list dynamic
+	dirs := []string{"1.6/", "1.7/"}
+
+	for _, dir := range dirs {
+		dir = cfgDir + dir
+
+		files, err := ioutil.ReadDir(dir)
 		if err != nil {
-			t.Fatalf("error opening file %s: %v", fileName, err)
+			t.Fatalf("error reading %s directory: %v", dir, err)
 		}
 
-		c := new(Controls)
+		for _, file := range files {
 
-		err = yaml.Unmarshal(in, c)
-		if err != nil {
-			t.Fatalf("failed to load YAML from %s: %v", fileName, err)
+			fileName := file.Name()
+			in, err := ioutil.ReadFile(dir + fileName)
+			if err != nil {
+				t.Fatalf("error opening file %s: %v", fileName, err)
+			}
+
+			c := new(Controls)
+
+			err = yaml.Unmarshal(in, c)
+			if err != nil {
+				t.Fatalf("failed to load YAML from %s: %v", fileName, err)
+			}
 		}
 	}
 }
-- 
GitLab