In invirt-base:
[invirt/packages/invirt-base.git] / python / invirt / config.py
index e4aad28..bcd2423 100644 (file)
@@ -20,6 +20,8 @@ lock_path   = '/var/lib/invirt/cache.lock'
 def augment(d1, d2):
     """Splice dict-tree d2 into d1.  Return d1.
 
+    d2 may be None for an empty dict-tree, because yaml.load produces that.
+
     Example:
     >>> d = {'a': {'b': 1}, 'c': 2}
     >>> augment(d, {'a': {'d': 3}})
@@ -27,6 +29,8 @@ def augment(d1, d2):
     >>> d
     {'a': {'b', 1, 'd': 3}, 'c': 2}
     """
+    if d2 is None:
+        return d1
     for k in d2:
         if k in d1 and isinstance(d1[k], dict):
             augment(d1[k], d2[k])
@@ -136,6 +140,6 @@ def load(force_refresh = False):
     return ns.cfg
 
 dicts = load()
-structs = dicts2struct(dicts)
+structs = dicts2struct(dicts, '')
 
 # vim:et:sw=4:ts=4