Skip to content
Snippets Groups Projects

Use config package to handle all controller configurations

Merged Ghost User requested to merge istaester/provide-config-package into develop
Compare and Show latest version
6 files
+ 72
281
Compare changes
  • Side-by-side
  • Inline
Files
6
+ 50
35
@@ -9,6 +9,13 @@ import (
"github.com/spf13/viper"
)
const (
defaultTimeOutDuration10minutes = "10m"
basePNDUUIDKey = "basePNDUUID"
baseSouthBoundTypeKey = "baseSouthBoundType"
baseSouthBoundUUIDKey = "baseSouthBoundUUID"
)
// BasePndUUID is an uuid for the base PND
var BasePndUUID uuid.UUID
@@ -18,10 +25,10 @@ var BaseSouthBoundType int32
// BaseSouthBoundUUID is an uuid for the base SBI
var BaseSouthBoundUUID uuid.UUID
// ChangeTimeout
// ChangeTimeout is the default timeout for a change
var ChangeTimeout time.Duration
// LogLevel
// LogLevel ist the default log level
var LogLevel logrus.Level
// TODO:
@@ -29,59 +36,65 @@ var LogLevel logrus.Level
// * path to cert
// * on/off toggle
func getUUIDFromViper(viperKey string) (uuid.UUID, error) {
UUIDAsString := viper.GetString(viperKey)
if UUIDAsString == "" {
newUUID := uuid.New()
viper.Set(viperKey, newUUID.String())
viper.WriteConfig()
return newUUID, nil
}
parsedUUID, err := uuid.Parse(UUIDAsString)
if err != nil {
return uuid.Nil, err
}
return parsedUUID, nil
}
// Init gets called on module import
func Init() {
InitializeConfig()
}
func getFromEnv(key string) string {
return ""
}
// InitializeConfig loads the configuration
func InitializeConfig() error {
var err error
basePNDUUIDKey := "basePNDUUID"
baseSouthBoundTypeKey := "baseSouthBoundType"
baseSouthBoundUUIDKey := "baseSouthBoundUUID"
basePNDUUID, err := getUUIDFromViper(basePNDUUIDKey)
basePNDUUIDFromViper, err := getUUIDFromViper(basePNDUUIDKey)
if err != nil {
return err
}
BasePndUUID = basePNDUUID
BasePndUUID = basePNDUUIDFromViper
baseSouthBoundUUID, err := getUUIDFromViper(baseSouthBoundUUIDKey)
baseSouthBoundUUIDFromViper, err := getUUIDFromViper(baseSouthBoundUUIDKey)
if err != nil {
return err
}
BaseSouthBoundUUID = baseSouthBoundUUID
BaseSouthBoundUUID = baseSouthBoundUUIDFromViper
BaseSouthBoundType = viper.GetInt32("BaseSouthBoundType")
BaseSouthBoundType = viper.GetInt32(baseSouthBoundTypeKey)
if BaseSouthBoundType != 0 {
viper.Set(baseSouthBoundTypeKey, 0)
viper.WriteConfig()
}
err = setChangeTimeout()
if err != nil {
return err
}
setLogLevel()
return nil
}
func getUUIDFromViper(viperKey string) (uuid.UUID, error) {
UUIDAsString := viper.GetString(viperKey)
if UUIDAsString == "" {
newUUID := uuid.New()
viper.Set(viperKey, newUUID.String())
viper.WriteConfig()
return newUUID, nil
}
parsedUUID, err := uuid.Parse(UUIDAsString)
if err != nil {
return uuid.Nil, err
}
return parsedUUID, nil
}
func setChangeTimeout() error {
var err error
e := os.Getenv("GOSDN_CHANGE_TIMEOUT")
if e != "" {
ChangeTimeout, err = time.ParseDuration(e)
@@ -89,17 +102,19 @@ func InitializeConfig() error {
return err
}
} else {
ChangeTimeout, err = time.ParseDuration("10m")
ChangeTimeout, err = time.ParseDuration(defaultTimeOutDuration10minutes)
if err != nil {
return err
}
}
return nil
}
func setLogLevel() {
if os.Getenv("GOSDN_LOG") == "nolog" {
LogLevel = logrus.PanicLevel
} else {
LogLevel = logrus.InfoLevel
}
return nil
}
Loading