X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-base.git/blobdiff_plain/637da1b9e329a9a1f5dd739f7c73b6464df4967f..21a18bf55624ded0be816622b61797841c813937:/python/invirt/config.py?ds=sidebyside diff --git a/python/invirt/config.py b/python/invirt/config.py index 86d9c8a..bcd2423 100644 --- a/python/invirt/config.py +++ b/python/invirt/config.py @@ -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]) @@ -38,7 +42,8 @@ def run_parts_list(dirname): """Reimplements Debian's run-parts --list. One difference from run-parts's behavior: run-parts --list /foo/ - will give output like /foo//bar, because Python code tends to expect this. + will give output like /foo//bar, but run_parts_list('/foo/') gives + /foo/bar in deference to Python conventions. Matches documented behavior of run-parts in debianutils v2.28.2, dated 2007. """ @@ -135,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