loading from file fallback

This commit is contained in:
David Wertenteil
2022-05-23 10:10:41 +03:00
parent f8e85941da
commit 56b3239e30
2 changed files with 32 additions and 10 deletions

View File

@@ -91,7 +91,6 @@ type LocalConfig struct {
func NewLocalConfig(
backendAPI getter.IBackend, customerGUID, clusterName string) *LocalConfig {
var configObj *ConfigObj
lc := &LocalConfig{
backendAPI: backendAPI,
@@ -100,12 +99,8 @@ func NewLocalConfig(
// get from configMap
if existsConfigFile() { // get from file
loadConfigFromFile(lc.configObj)
} else {
configObj = &ConfigObj{}
}
if configObj != nil {
lc.configObj = configObj
}
if customerGUID != "" {
lc.configObj.AccountID = customerGUID // override config customerGUID
}
@@ -206,14 +201,15 @@ func NewClusterConfig(k8s *k8sinterface.KubernetesApi, backendAPI getter.IBacken
configMapNamespace: getConfigMapNamespace(),
}
// get from configMap
// first, load from configMap
if c.existsConfigMap() {
c.loadConfigFromConfigMap()
}
if c.configObj == nil && existsConfigFile() { // get from file
// second, load from file
if existsConfigFile() { // get from file
loadConfigFromFile(c.configObj)
}
if customerGUID != "" {
c.configObj.AccountID = customerGUID // override config customerGUID
}

View File

@@ -141,7 +141,7 @@ func TestLoadConfigFromData(t *testing.T) {
assert.Equal(t, c.GetSecretKey(), co.SecretKey)
}
// use case: all data is in config.json
// use case: some data is in config.json
{
c := mockClusterConfig()
configMap := &corev1.ConfigMap{
@@ -164,4 +164,30 @@ func TestLoadConfigFromData(t *testing.T) {
assert.NotEmpty(t, c.GetSecretKey())
}
// use case: some data is in config.json
{
c := mockClusterConfig()
configMap := &corev1.ConfigMap{
Data: make(map[string]string),
}
c.configObj.AccountID = "tttt"
// add to map
configMap.Data["accountID"] = mockConfigObj().AccountID
configMap.Data["clientID"] = c.configObj.ClientID
configMap.Data["secretKey"] = c.configObj.SecretKey
// delete the content
c.configObj.ClientID = ""
c.configObj.SecretKey = ""
configMap.Data["config.json"] = string(c.GetConfigObj().Config())
loadConfigFromData(c.configObj, configMap.Data)
assert.Equal(t, mockConfigObj().AccountID, c.GetAccountID())
assert.NotEmpty(t, c.GetClientID())
assert.NotEmpty(t, c.GetSecretKey())
}
}