diff options
Diffstat (limited to 'cloudinit')
-rw-r--r-- | cloudinit/util.py | 13 |
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 |