diff options
Diffstat (limited to 'cloudinit')
-rw-r--r-- | cloudinit/DataSource.py | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/cloudinit/DataSource.py b/cloudinit/DataSource.py index 0bf17b45..350b5015 100644 --- a/cloudinit/DataSource.py +++ b/cloudinit/DataSource.py @@ -21,14 +21,30 @@ DEP_FILESYSTEM = "FILESYSTEM" DEP_NETWORK = "NETWORK" import UserDataHandler as ud +import cloudinit.util as util class DataSource: userdata = None metadata = None userdata_raw = None - - def __init__(self): - pass + cfgname = "" + # system config (passed in from cloudinit, + # cloud-config before input from the DataSource) + sys_cfg = { } + # datasource config, the cloud-config['datasource']['__name__'] + ds_cfg = { } # datasource config + + def __init__(self,sys_cfg=None): + if not self.cfgname: + name = str(self.__class__).split(".")[-1] + if name.startswith("DataSource"): + name = name[len("DataSource"):] + self.cfgname = name + if sys_cfg: + self.sys_cfg = sys_cfg + + self.ds_cfg = util.get_cfg_by_path(self.sys_cfg, + ("datasource",self.cfgname),self.ds_cfg) def get_userdata(self): if self.userdata == None: |