projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch '18703-installer-upgrade-postgres-formula'
[arvados.git]
/
lib
/
config
/
load.go
diff --git
a/lib/config/load.go
b/lib/config/load.go
index b4a34335b6ddc060984b4b12bfa137a88c54ab87..c2eb55554488f465a7dc990b87ad6da450459a4d 100644
(file)
--- a/
lib/config/load.go
+++ b/
lib/config/load.go
@@
-230,6
+230,9
@@
func (ldr *Loader) Load() (*arvados.Config, error) {
}
ldr.logExtraKeys(merged, src, "")
removeSampleKeys(merged)
}
ldr.logExtraKeys(merged, src, "")
removeSampleKeys(merged)
+ // We merge the loaded config into the default, overriding any existing keys.
+ // Make sure we do not override a default with a key that has a 'null' value.
+ removeNullKeys(src)
err = mergo.Merge(&merged, src, mergo.WithOverride)
if err != nil {
return nil, fmt.Errorf("merging config data: %s", err)
err = mergo.Merge(&merged, src, mergo.WithOverride)
if err != nil {
return nil, fmt.Errorf("merging config data: %s", err)
@@
-435,6
+438,17
@@
func checkKeyConflict(label string, m map[string]string) error {
return nil
}
return nil
}
+func removeNullKeys(m map[string]interface{}) {
+ for k, v := range m {
+ if v == nil {
+ delete(m, k)
+ }
+ if v, _ := v.(map[string]interface{}); v != nil {
+ removeNullKeys(v)
+ }
+ }
+}
+
func removeSampleKeys(m map[string]interface{}) {
delete(m, "SAMPLE")
for _, v := range m {
func removeSampleKeys(m map[string]interface{}) {
delete(m, "SAMPLE")
for _, v := range m {