aboutsummaryrefslogtreecommitdiffstats
path: root/src/orchestrator/internal/config
diff options
context:
space:
mode:
authorRitu Sood <ritu.sood@intel.com>2020-01-31 23:29:51 -0800
committerSrivahni Chivukula <srivahni.chivukula@intel.com>2020-02-14 03:54:11 -0800
commita75d489bbf87712371d67dce0753577bdacce0c3 (patch)
treedee646769aa432c814abd86645af612e714640be /src/orchestrator/internal/config
parentc06be6458e9985bd7ac0b25fab03d9c8605f6c4a (diff)
Restructure code and create module library
Restructures and moves code to make it aligned with the current design. https://wiki.onap.org/display/DW/Multi+Cluster+Application+Scheduler examples/example_module.go shows how to import and use modules from this package. Patch#2 Updated example Issue-ID: MULTICLOUD-871 Signed-off-by: Ritu Sood <ritu.sood@intel.com> Change-Id: Ia1e9802a946a07dcca8f79f0e2250933ab3efa66
Diffstat (limited to 'src/orchestrator/internal/config')
-rw-r--r--src/orchestrator/internal/config/config.go130
-rw-r--r--src/orchestrator/internal/config/config_test.go40
2 files changed, 0 insertions, 170 deletions
diff --git a/src/orchestrator/internal/config/config.go b/src/orchestrator/internal/config/config.go
deleted file mode 100644
index cb4656f0..00000000
--- a/src/orchestrator/internal/config/config.go
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright 2019 Intel Corporation, Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package config
-
-import (
- "encoding/json"
- "log"
- "os"
- "reflect"
-)
-
-// Configuration loads up all the values that are used to configure
-// backend implementations
-type Configuration struct {
- CAFile string `json:"ca-file"`
- ServerCert string `json:"server-cert"`
- ServerKey string `json:"server-key"`
- Password string `json:"password"`
- DatabaseIP string `json:"database-ip"`
- DatabaseType string `json:"database-type"`
- PluginDir string `json:"plugin-dir"`
- EtcdIP string `json:"etcd-ip"`
- EtcdCert string `json:"etcd-cert"`
- EtcdKey string `json:"etcd-key"`
- EtcdCAFile string `json:"etcd-ca-file"`
- ServicePort string `json:"service-port"`
- KubernetesLabelName string `json:"kubernetes-label-name"`
-}
-
-// Config is the structure that stores the configuration
-var gConfig *Configuration
-
-// readConfigFile reads the specified smsConfig file to setup some env variables
-func readConfigFile(file string) (*Configuration, error) {
- f, err := os.Open(file)
- if err != nil {
- return defaultConfiguration(), err
- }
- defer f.Close()
-
- // Setup some defaults here
- // If the json file has values in it, the defaults will be overwritten
- conf := defaultConfiguration()
-
- // Read the configuration from json file
- decoder := json.NewDecoder(f)
- decoder.DisallowUnknownFields()
- err = decoder.Decode(conf)
- if err != nil {
- return conf, err
- }
-
- return conf, nil
-}
-
-func defaultConfiguration() *Configuration {
- cwd, err := os.Getwd()
- if err != nil {
- log.Println("Error getting cwd. Using .")
- cwd = "."
- }
-
- return &Configuration{
- CAFile: "ca.cert",
- ServerCert: "server.cert",
- ServerKey: "server.key",
- Password: "",
- DatabaseIP: "127.0.0.1",
- DatabaseType: "mongo",
- PluginDir: cwd,
- EtcdIP: "127.0.0.1",
- EtcdCert: "etcd.cert",
- EtcdKey: "etcd.key",
- EtcdCAFile: "etcd-ca.cert",
- ServicePort: "9015",
- KubernetesLabelName: "orchestrator.io/rb-instance-id",
- }
-}
-
-// GetConfiguration returns the configuration for the app.
-// It will try to load it if it is not already loaded.
-func GetConfiguration() *Configuration {
- if gConfig == nil {
- conf, err := readConfigFile("config.json")
- if err != nil {
- log.Println("Error loading config file: ", err)
- log.Println("Using defaults...")
- }
- gConfig = conf
- }
-
- return gConfig
-}
-
-// SetConfigValue sets a value in the configuration
-// This is mostly used to customize the application and
-// should be used carefully.
-func SetConfigValue(key string, value string) *Configuration {
- c := GetConfiguration()
- if value == "" || key == "" {
- return c
- }
-
- v := reflect.ValueOf(c).Elem()
- if v.Kind() == reflect.Struct {
- f := v.FieldByName(key)
- if f.IsValid() {
- if f.CanSet() {
- if f.Kind() == reflect.String {
- f.SetString(value)
- }
- }
- }
- }
- return c
-}
diff --git a/src/orchestrator/internal/config/config_test.go b/src/orchestrator/internal/config/config_test.go
deleted file mode 100644
index ce7641ae..00000000
--- a/src/orchestrator/internal/config/config_test.go
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright 2019 Intel Corporation, Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package config
-
-import (
- "testing"
-)
-
-func TestReadConfigurationFile(t *testing.T) {
- t.Run("Non Existent Configuration File", func(t *testing.T) {
- _, err := readConfigFile("filedoesnotexist.json")
- if err == nil {
- t.Fatal("ReadConfiguationFile: Expected Error, got nil")
- }
- })
-
- t.Run("Read Configuration File", func(t *testing.T) {
- conf, err := readConfigFile("../../tests/configs/mock_config.json")
- if err != nil {
- t.Fatal("ReadConfigurationFile: Error reading file: ", err)
- }
- if conf.DatabaseType != "mock_db_test" {
- t.Fatal("ReadConfigurationFile: Incorrect entry read from file")
- }
- })
-}