summaryrefslogtreecommitdiff
path: root/cloudinit
diff options
context:
space:
mode:
Diffstat (limited to 'cloudinit')
-rw-r--r--cloudinit/util.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/cloudinit/util.py b/cloudinit/util.py
index a2291164..f8c847aa 100644
--- a/cloudinit/util.py
+++ b/cloudinit/util.py
@@ -42,9 +42,12 @@ def read_conf(fname):
return { }
raise
-def get_base_cfg(cfgfile,cfg_builtin=""):
+def get_base_cfg(cfgfile,cfg_builtin="", parsed_cfgs=None):
kerncfg = { }
syscfg = { }
+ if parsed_cfgs and cfgfile in parsed_cfgs:
+ return(parsed_cfgs[cfgfile])
+
contents = read_file_with_includes(cfgfile)
if contents:
syscfg = yaml.load(contents)
@@ -58,9 +61,13 @@ def get_base_cfg(cfgfile,cfg_builtin=""):
if cfg_builtin:
builtin = yaml.load(cfg_builtin)
+ fin = mergedict(combined,builtin)
else:
- return(combined)
- return(mergedict(combined,builtin))
+ fin = combined
+
+ if parsed_cfgs != None:
+ parsed_cfgs[cfgfile] = fin
+ return(fin)
def get_cfg_option_bool(yobj, key, default=False):
if not yobj.has_key(key): return default