Skip to content
Snippets Groups Projects

Load controller defaults from config

Merged Ghost User requested to merge istaester/load-controller-defaults-from-config into develop
+ 31
25
@@ -5,51 +5,57 @@ import (
"github.com/spf13/viper"
)
// Config represents the nucleus configuration
type Config struct {
BasePndUUID uuid.UUID
BaseSouthBoundType int32
BaseSouthBoundUUID uuid.UUID
}
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
}
// InitializeConfig loads the configuration
func (c *Config) InitializeConfig() error {
var err error
basePNDUUIDConfigLookupKey := "basePNDUUID"
baseSouthBoundTypeConfigLookupKey := "baseSouthBoundType"
baseSouthBoundUUIDConfigLookupKey := "baseSouthBoundUUID"
// Check if there is already an PND uuid persistet in the viper config.
pndUUIDAsString := viper.GetString(basePNDUUIDConfigLookupKey)
basePNDUUID, err := getUUIDFromViper(basePNDUUIDConfigLookupKey)
if err != nil {
return err
}
if pndUUIDAsString == "" {
c.BasePndUUID = uuid.New()
viper.Set(basePNDUUIDConfigLookupKey, c.BasePndUUID.String())
viper.WriteConfig()
} else {
c.BasePndUUID, err = uuid.Parse(pndUUIDAsString)
if err != nil {
return err
}
c.BasePndUUID = basePNDUUID
baseSouthBoundUUID, err := getUUIDFromViper(baseSouthBoundUUIDConfigLookupKey)
if err != nil {
return err
}
c.BaseSouthBoundUUID = baseSouthBoundUUID
c.BaseSouthBoundType = viper.GetInt32("BaseSouthBoundType")
if c.BaseSouthBoundType != 0 {
viper.Set(baseSouthBoundTypeConfigLookupKey, 0)
viper.WriteConfig()
}
// Check if there is already an PND uuid persistet in the viper config.
southBoundUUIDAsString := viper.GetString(basePNDUUIDConfigLookupKey)
if southBoundUUIDAsString == "" {
c.BaseSouthBoundUUID = uuid.New()
viper.Set(baseSouthBoundUUIDConfigLookupKey, c.BaseSouthBoundUUID.String())
viper.WriteConfig()
} else {
c.BaseSouthBoundUUID, err = uuid.Parse(southBoundUUIDAsString)
if err != nil {
return err
}
}
return nil
}
Loading