aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Morales <victor.morales@intel.com>2019-01-25 16:57:58 -0800
committerVictor Morales <victor.morales@intel.com>2019-01-25 16:59:59 -0800
commit468e208fbe3bcf2524d3aa8ceaabc4324f242b4b (patch)
tree2570d7f77a79aa71feacfedde5a2a858ee06b21f
parent083465d10c8fdeaffa89aa7daa93def3eca77df1 (diff)
Move api.go functions
CheckEnvVariables, CheckDatabaseConnection, LoadPlugins and CheckInitialSettings functions are utility functions which are not related with the API. These functions need to be moved to utils.go file. Change-Id: Ie6dfbafe8909962fba31534916a7e0f07ded116b Signed-off-by: Victor Morales <victor.morales@intel.com> Issue-ID: MULTICLOUD-301
-rw-r--r--src/k8splugin/api/api.go77
-rw-r--r--src/k8splugin/cmd/main.go3
-rw-r--r--src/k8splugin/internal/utils.go72
3 files changed, 74 insertions, 78 deletions
diff --git a/src/k8splugin/api/api.go b/src/k8splugin/api/api.go
index f022614e..b566609b 100644
--- a/src/k8splugin/api/api.go
+++ b/src/k8splugin/api/api.go
@@ -15,87 +15,10 @@ package api
import (
"k8splugin/internal/rb"
- "os"
- "path/filepath"
- "plugin"
- "strings"
"github.com/gorilla/mux"
- pkgerrors "github.com/pkg/errors"
-
- krd "k8splugin/internal"
- "k8splugin/internal/db"
)
-// CheckEnvVariables checks for required Environment variables
-func CheckEnvVariables() error {
- envList := []string{"CSAR_DIR", "KUBE_CONFIG_DIR", "PLUGINS_DIR",
- "DATABASE_TYPE", "DATABASE_IP", "OVN_CENTRAL_ADDRESS"}
- for _, env := range envList {
- if _, ok := os.LookupEnv(env); !ok {
- return pkgerrors.New("environment variable " + env + " not set")
- }
- }
-
- return nil
-}
-
-// CheckDatabaseConnection checks if the database is up and running and
-// plugin can talk to it
-func CheckDatabaseConnection() error {
- err := db.CreateDBClient(os.Getenv("DATABASE_TYPE"))
- if err != nil {
- return pkgerrors.Cause(err)
- }
-
- err = db.DBconn.HealthCheck()
- if err != nil {
- return pkgerrors.Cause(err)
- }
- return nil
-}
-
-// LoadPlugins loads all the compiled .so plugins
-func LoadPlugins() error {
- pluginsDir := os.Getenv("PLUGINS_DIR")
- err := filepath.Walk(pluginsDir,
- func(path string, info os.FileInfo, err error) error {
- if strings.Contains(path, ".so") {
- p, err := plugin.Open(path)
- if err != nil {
- return pkgerrors.Cause(err)
- }
- krd.LoadedPlugins[info.Name()[:len(info.Name())-3]] = p
- }
- return err
- })
- if err != nil {
- return err
- }
-
- return nil
-}
-
-// CheckInitialSettings is used to check initial settings required to start api
-func CheckInitialSettings() error {
- err := CheckEnvVariables()
- if err != nil {
- return pkgerrors.Cause(err)
- }
-
- err = CheckDatabaseConnection()
- if err != nil {
- return pkgerrors.Cause(err)
- }
-
- err = LoadPlugins()
- if err != nil {
- return pkgerrors.Cause(err)
- }
-
- return nil
-}
-
// NewRouter creates a router instance that serves the VNFInstance web methods
func NewRouter(kubeconfig string) *mux.Router {
router := mux.NewRouter()
diff --git a/src/k8splugin/cmd/main.go b/src/k8splugin/cmd/main.go
index ee676549..c07446a7 100644
--- a/src/k8splugin/cmd/main.go
+++ b/src/k8splugin/cmd/main.go
@@ -26,6 +26,7 @@ import (
"k8s.io/client-go/util/homedir"
"k8splugin/api"
+ utils "k8splugin/internal"
)
func main() {
@@ -37,7 +38,7 @@ func main() {
}
flag.Parse()
- err := api.CheckInitialSettings()
+ err := utils.CheckInitialSettings()
if err != nil {
log.Fatal(err)
}
diff --git a/src/k8splugin/internal/utils.go b/src/k8splugin/internal/utils.go
index 5bac7a87..4b28b688 100644
--- a/src/k8splugin/internal/utils.go
+++ b/src/k8splugin/internal/utils.go
@@ -15,9 +15,12 @@ package utils
import (
"io/ioutil"
+ "k8splugin/internal/db"
"log"
"os"
+ "path/filepath"
"plugin"
+ "strings"
pkgerrors "github.com/pkg/errors"
"k8s.io/apimachinery/pkg/runtime"
@@ -61,3 +64,72 @@ var DecodeYAML = func(path string, into runtime.Object) (runtime.Object, error)
return obj, nil
}
+
+// CheckEnvVariables checks for required Environment variables
+func CheckEnvVariables() error {
+ envList := []string{"CSAR_DIR", "KUBE_CONFIG_DIR", "PLUGINS_DIR",
+ "DATABASE_TYPE", "DATABASE_IP", "OVN_CENTRAL_ADDRESS"}
+ for _, env := range envList {
+ if _, ok := os.LookupEnv(env); !ok {
+ return pkgerrors.New("environment variable " + env + " not set")
+ }
+ }
+
+ return nil
+}
+
+// CheckDatabaseConnection checks if the database is up and running and
+// plugin can talk to it
+func CheckDatabaseConnection() error {
+ err := db.CreateDBClient(os.Getenv("DATABASE_TYPE"))
+ if err != nil {
+ return pkgerrors.Cause(err)
+ }
+
+ err = db.DBconn.HealthCheck()
+ if err != nil {
+ return pkgerrors.Cause(err)
+ }
+ return nil
+}
+
+// LoadPlugins loads all the compiled .so plugins
+func LoadPlugins() error {
+ pluginsDir := os.Getenv("PLUGINS_DIR")
+ err := filepath.Walk(pluginsDir,
+ func(path string, info os.FileInfo, err error) error {
+ if strings.Contains(path, ".so") {
+ p, err := plugin.Open(path)
+ if err != nil {
+ return pkgerrors.Cause(err)
+ }
+ LoadedPlugins[info.Name()[:len(info.Name())-3]] = p
+ }
+ return err
+ })
+ if err != nil {
+ return err
+ }
+
+ return nil
+}
+
+// CheckInitialSettings is used to check initial settings required to start api
+func CheckInitialSettings() error {
+ err := CheckEnvVariables()
+ if err != nil {
+ return pkgerrors.Cause(err)
+ }
+
+ err = CheckDatabaseConnection()
+ if err != nil {
+ return pkgerrors.Cause(err)
+ }
+
+ err = LoadPlugins()
+ if err != nil {
+ return pkgerrors.Cause(err)
+ }
+
+ return nil
+}