From b8df07b547c4623290a6ff37bb4a4abf0f678c83 Mon Sep 17 00:00:00 2001 From: dwertent Date: Sun, 13 Mar 2022 18:59:39 +0200 Subject: [PATCH] fixed unitest --- .github/workflows/build_dev.yaml | 10 +- cmd/main.go | 12 --- cmd/root.go | 101 +----------------- cmd/rootutils.go | 93 ++++++++++++++++ core/README.md | 8 +- core/cautils/fileutils_test.go | 2 +- .../pkg/opaprocessor/processorhandler_test.go | 1 + core/pkg/opaprocessor/utils_test.go | 1 + 8 files changed, 110 insertions(+), 118 deletions(-) delete mode 100644 cmd/main.go create mode 100644 cmd/rootutils.go diff --git a/.github/workflows/build_dev.yaml b/.github/workflows/build_dev.yaml index 3facff1e..658dc4d3 100644 --- a/.github/workflows/build_dev.yaml +++ b/.github/workflows/build_dev.yaml @@ -18,8 +18,14 @@ jobs: with: go-version: 1.17 - - name: Test - run: go test -v ./... + - name: Test cmd pkg + run: cd cmd && go test -v ./... + + - name: Test core pkg + run: cd core && go test -v ./... + + - name: Test httphandler pkg + run: cd httphandler && go test -v ./... - name: Build env: diff --git a/cmd/main.go b/cmd/main.go deleted file mode 100644 index c2a9b827..00000000 --- a/cmd/main.go +++ /dev/null @@ -1,12 +0,0 @@ -package main - -import "github.com/armosec/kubescape/cmd" - -// "github.com/armosec/kubescape/httphandler/listener" - -func main() { - cmd.Execute() - - // // cmd.Execute() - // listener.SetupHTTPListener() -} diff --git a/cmd/root.go b/cmd/root.go index 95e71467..babaac07 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -1,8 +1,7 @@ -package cmd +package main import ( "fmt" - "os" "strings" "github.com/armosec/kubescape/cmd/completion" @@ -20,15 +19,9 @@ import ( "github.com/armosec/kubescape/core/core" "github.com/armosec/kubescape/core/meta" - "github.com/mattn/go-isatty" "github.com/spf13/cobra" ) -var armoBEURLs = "" -var armoBEURLsDep = "" - -const envFlagUsage = "Send report results to specific URL. Format:,,.\n\t\tExample:report.armo.cloud,api.armo.cloud,portal.armo.cloud" - var ksExamples = ` # Scan command kubescape scan --submit @@ -92,97 +85,7 @@ func getRootCmd(ks meta.IKubescape) *cobra.Command { return rootCmd } -// func main() { -// ks := NewDefaultKubescapeCommand() -// ks.Execute() -// // // cmd.Execute() -// // listener.SetupHTTPListener() -// } - -func Execute() { +func main() { ks := NewDefaultKubescapeCommand() - // ks.DisableAutoGenTag = true - // identity := func(s string) string { return s } - // emptyStr := func(s string) string { return "" } - // fileLocation := doc.GenFileLocationHierarchy - - // err := doc.GenMarkdownTreeCustom(ks, "/home/david/go/src/playground", emptyStr, identity, fileLocation) - // if err != nil { - // log.Fatal(err) - // } ks.Execute() } - -func initLogger(rootInfo *cautils.RootInfo) { - logger.DisableColor(rootInfo.DisableColor) - - if rootInfo.LoggerName == "" { - if l := os.Getenv("KS_LOGGER_NAME"); l != "" { - rootInfo.LoggerName = l - } else { - if isatty.IsTerminal(os.Stdout.Fd()) { - rootInfo.LoggerName = "pretty" - } else { - rootInfo.LoggerName = "zap" - } - } - } - - logger.InitLogger(rootInfo.LoggerName) - -} -func initLoggerLevel(rootInfo *cautils.RootInfo) { - if rootInfo.Logger != helpers.InfoLevel.String() { - } else if l := os.Getenv("KS_LOGGER"); l != "" { - rootInfo.Logger = l - } - - if err := logger.L().SetLevel(rootInfo.Logger); err != nil { - logger.L().Fatal(fmt.Sprintf("supported levels: %s", strings.Join(helpers.SupportedLevels(), "/")), helpers.Error(err)) - } -} - -func initCacheDir(rootInfo *cautils.RootInfo) { - if rootInfo.CacheDir == getter.DefaultLocalStore { - getter.DefaultLocalStore = rootInfo.CacheDir - } else if cacheDir := os.Getenv("KS_CACHE_DIR"); cacheDir != "" { - getter.DefaultLocalStore = cacheDir - } else { - return // using default cache dir location - } - - logger.L().Debug("cache dir updated", helpers.String("path", getter.DefaultLocalStore)) -} -func initEnvironment(rootInfo *cautils.RootInfo) { - if armoBEURLsDep != "" { - armoBEURLs = armoBEURLsDep - } - urlSlices := strings.Split(armoBEURLs, ",") - if len(urlSlices) != 1 && len(urlSlices) < 3 { - logger.L().Fatal("expected at least 3 URLs (report, api, frontend, auth)") - } - switch len(urlSlices) { - case 1: - switch urlSlices[0] { - case "dev", "development": - getter.SetARMOAPIConnector(getter.NewARMOAPIDev()) - case "stage", "staging": - getter.SetARMOAPIConnector(getter.NewARMOAPIStaging()) - case "": - getter.SetARMOAPIConnector(getter.NewARMOAPIProd()) - default: - logger.L().Fatal("--environment flag usage: " + envFlagUsage) - } - case 2: - logger.L().Fatal("--environment flag usage: " + envFlagUsage) - case 3, 4: - var armoAUTHURL string - armoERURL := urlSlices[0] // mandatory - armoBEURL := urlSlices[1] // mandatory - armoFEURL := urlSlices[2] // mandatory - if len(urlSlices) <= 4 { - armoAUTHURL = urlSlices[3] - } - getter.SetARMOAPIConnector(getter.NewARMOAPICustomized(armoERURL, armoBEURL, armoFEURL, armoAUTHURL)) - } -} diff --git a/cmd/rootutils.go b/cmd/rootutils.go new file mode 100644 index 00000000..2acc5840 --- /dev/null +++ b/cmd/rootutils.go @@ -0,0 +1,93 @@ +package main + +import ( + "fmt" + "os" + "strings" + + "github.com/armosec/kubescape/core/cautils" + "github.com/armosec/kubescape/core/cautils/getter" + "github.com/armosec/kubescape/core/cautils/logger" + "github.com/armosec/kubescape/core/cautils/logger/helpers" + + "github.com/mattn/go-isatty" +) + +var armoBEURLs = "" +var armoBEURLsDep = "" + +const envFlagUsage = "Send report results to specific URL. Format:,,.\n\t\tExample:report.armo.cloud,api.armo.cloud,portal.armo.cloud" + +func initLogger(rootInfo *cautils.RootInfo) { + logger.DisableColor(rootInfo.DisableColor) + + if rootInfo.LoggerName == "" { + if l := os.Getenv("KS_LOGGER_NAME"); l != "" { + rootInfo.LoggerName = l + } else { + if isatty.IsTerminal(os.Stdout.Fd()) { + rootInfo.LoggerName = "pretty" + } else { + rootInfo.LoggerName = "zap" + } + } + } + + logger.InitLogger(rootInfo.LoggerName) + +} +func initLoggerLevel(rootInfo *cautils.RootInfo) { + if rootInfo.Logger != helpers.InfoLevel.String() { + } else if l := os.Getenv("KS_LOGGER"); l != "" { + rootInfo.Logger = l + } + + if err := logger.L().SetLevel(rootInfo.Logger); err != nil { + logger.L().Fatal(fmt.Sprintf("supported levels: %s", strings.Join(helpers.SupportedLevels(), "/")), helpers.Error(err)) + } +} + +func initCacheDir(rootInfo *cautils.RootInfo) { + if rootInfo.CacheDir == getter.DefaultLocalStore { + getter.DefaultLocalStore = rootInfo.CacheDir + } else if cacheDir := os.Getenv("KS_CACHE_DIR"); cacheDir != "" { + getter.DefaultLocalStore = cacheDir + } else { + return // using default cache dir location + } + + logger.L().Debug("cache dir updated", helpers.String("path", getter.DefaultLocalStore)) +} +func initEnvironment(rootInfo *cautils.RootInfo) { + if armoBEURLsDep != "" { + armoBEURLs = armoBEURLsDep + } + urlSlices := strings.Split(armoBEURLs, ",") + if len(urlSlices) != 1 && len(urlSlices) < 3 { + logger.L().Fatal("expected at least 3 URLs (report, api, frontend, auth)") + } + switch len(urlSlices) { + case 1: + switch urlSlices[0] { + case "dev", "development": + getter.SetARMOAPIConnector(getter.NewARMOAPIDev()) + case "stage", "staging": + getter.SetARMOAPIConnector(getter.NewARMOAPIStaging()) + case "": + getter.SetARMOAPIConnector(getter.NewARMOAPIProd()) + default: + logger.L().Fatal("--environment flag usage: " + envFlagUsage) + } + case 2: + logger.L().Fatal("--environment flag usage: " + envFlagUsage) + case 3, 4: + var armoAUTHURL string + armoERURL := urlSlices[0] // mandatory + armoBEURL := urlSlices[1] // mandatory + armoFEURL := urlSlices[2] // mandatory + if len(urlSlices) <= 4 { + armoAUTHURL = urlSlices[3] + } + getter.SetARMOAPIConnector(getter.NewARMOAPICustomized(armoERURL, armoBEURL, armoFEURL, armoAUTHURL)) + } +} diff --git a/core/README.md b/core/README.md index 99e5c5f5..13f15ada 100644 --- a/core/README.md +++ b/core/README.md @@ -3,12 +3,12 @@ ```go // initialize kubescape -ks := core.NewKubescape() +ks := core.NewKubescape() // scan cluster -results, err := ks.Scan() +results, err := ks.Scan(&cautils.ScanInfo{}) -// convert scan results to json -jsonRes, err := results.ToJson() +// convert scan results to json +jsonRes, err := results.ToJson() ``` \ No newline at end of file diff --git a/core/cautils/fileutils_test.go b/core/cautils/fileutils_test.go index 1b0b5e06..5493834f 100644 --- a/core/cautils/fileutils_test.go +++ b/core/cautils/fileutils_test.go @@ -11,7 +11,7 @@ import ( func onlineBoutiquePath() string { o, _ := os.Getwd() - return filepath.Join(filepath.Dir(o), "examples/online-boutique/*") + return filepath.Join(filepath.Dir(o), "../examples/online-boutique/*") } func TestListFiles(t *testing.T) { diff --git a/core/pkg/opaprocessor/processorhandler_test.go b/core/pkg/opaprocessor/processorhandler_test.go index b916dd7f..ab947e59 100644 --- a/core/pkg/opaprocessor/processorhandler_test.go +++ b/core/pkg/opaprocessor/processorhandler_test.go @@ -5,6 +5,7 @@ import ( "github.com/armosec/armoapi-go/armotypes" "github.com/armosec/kubescape/core/cautils" + "github.com/armosec/kubescape/core/mocks" "github.com/armosec/opa-utils/objectsenvelopes" "github.com/armosec/opa-utils/reporthandling" "github.com/armosec/opa-utils/resources" diff --git a/core/pkg/opaprocessor/utils_test.go b/core/pkg/opaprocessor/utils_test.go index f699a899..3cde5045 100644 --- a/core/pkg/opaprocessor/utils_test.go +++ b/core/pkg/opaprocessor/utils_test.go @@ -5,6 +5,7 @@ import ( "github.com/stretchr/testify/assert" + "github.com/armosec/kubescape/core/mocks" "github.com/armosec/opa-utils/reporthandling" "github.com/armosec/opa-utils/reporthandling/results/v1/reportsummary" )