summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcloud-init-cfg.py9
-rw-r--r--cloudinit/CloudConfig/__init__.py6
2 files changed, 11 insertions, 4 deletions
diff --git a/cloud-init-cfg.py b/cloud-init-cfg.py
index 49ddf302..0905eb5e 100755
--- a/cloud-init-cfg.py
+++ b/cloud-init-cfg.py
@@ -60,7 +60,14 @@ def main():
if os.environ.has_key(cfg_env_name):
cfg_path = os.environ[cfg_env_name]
- cc = CC.CloudConfig(cfg_path)
+ cloud = cloudinit.CloudInit(ds_deps=[]) # ds_deps=[], get only cached
+ try:
+ cloud.get_data_source()
+ except cloudinit.DataSourceNotFoundException as e:
+ # there was no datasource found, theres nothing to do
+ sys.exit(0)
+
+ cc = CC.CloudConfig(cfg_path,cloud)
try:
(outfmt, errfmt) = CC.get_output_cfg(cc.cfg,modename)
diff --git a/cloudinit/CloudConfig/__init__.py b/cloudinit/CloudConfig/__init__.py
index 0962c238..91853dfd 100644
--- a/cloudinit/CloudConfig/__init__.py
+++ b/cloudinit/CloudConfig/__init__.py
@@ -33,13 +33,13 @@ class CloudConfig():
cfgfile = None
cfg = None
- def __init__(self,cfgfile, cloud=None):
+ def __init__(self,cfgfile, cloud=None, ds_deps=[]):
if cloud == None:
- self.cloud = cloudinit.CloudInit()
+ self.cloud = cloudinit.CloudInit(ds_deps)
+ self.cloud.get_data_source()
else:
self.cloud = cloud
self.cfg = self.get_config_obj(cfgfile)
- self.cloud.get_data_source()
def get_config_obj(self,cfgfile):
try: