summaryrefslogtreecommitdiff
path: root/cloudinit/DataSource.py
diff options
context:
space:
mode:
Diffstat (limited to 'cloudinit/DataSource.py')
-rw-r--r--cloudinit/DataSource.py35
1 files changed, 18 insertions, 17 deletions
diff --git a/cloudinit/DataSource.py b/cloudinit/DataSource.py
index 7e539b67..0985c6b2 100644
--- a/cloudinit/DataSource.py
+++ b/cloudinit/DataSource.py
@@ -20,20 +20,21 @@
DEP_FILESYSTEM = "FILESYSTEM"
DEP_NETWORK = "NETWORK"
-import UserDataHandler as ud
+import cloudinit.UserDataHandler as ud
import cloudinit.util as util
import socket
+
class DataSource:
userdata = None
metadata = None
userdata_raw = None
cfgname = ""
- # system config (passed in from cloudinit,
+ # system config (passed in from cloudinit,
# cloud-config before input from the DataSource)
- sys_cfg = { }
+ sys_cfg = {}
# datasource config, the cloud-config['datasource']['__name__']
- ds_cfg = { } # datasource config
+ ds_cfg = {} # datasource config
def __init__(self, sys_cfg=None):
if not self.cfgname:
@@ -55,27 +56,26 @@ class DataSource:
def get_userdata_raw(self):
return(self.userdata_raw)
-
# the data sources' config_obj is a cloud-config formated
# object that came to it from ways other than cloud-config
# because cloud-config content would be handled elsewhere
def get_config_obj(self):
- return({ })
+ return({})
def get_public_ssh_keys(self):
keys = []
- if not self.metadata.has_key('public-keys'):
+ if 'public-keys' not in self.metadata:
return([])
if isinstance(self.metadata['public-keys'], str):
- return([self.metadata['public-keys'],])
-
+ return([self.metadata['public-keys'], ])
+
for _keyname, klist in self.metadata['public-keys'].items():
# lp:506332 uec metadata service responds with
# data that makes boto populate a string for 'klist' rather
# than a list.
if isinstance(klist, str):
- klist = [ klist ]
+ klist = [klist]
for pkey in klist:
# there is an empty string at the end of the keylist, trim it
if pkey:
@@ -104,7 +104,7 @@ class DataSource:
def get_hostname(self, fqdn=False):
defdomain = "localdomain"
- defhost = "localhost"
+ defhost = "localhost"
domain = defdomain
if not 'local-hostname' in self.metadata:
@@ -120,12 +120,11 @@ class DataSource:
fqdn = util.get_fqdn_from_hosts(hostname)
if fqdn and fqdn.find(".") > 0:
- toks = fqdn.split(".")
+ toks = str(fqdn).split(".")
elif hostname:
- toks = [ hostname, defdomain ]
+ toks = [hostname, defdomain]
else:
- toks = [ defhost, defdomain ]
-
+ toks = [defhost, defdomain]
else:
# if there is an ipv4 address in 'local-hostname', then
@@ -147,6 +146,7 @@ class DataSource:
else:
return hostname
+
# return a list of classes that have the same depends as 'depends'
# iterate through cfg_list, loading "DataSourceCollections" modules
# and calling their "get_datasource_list".
@@ -177,15 +177,16 @@ def list_sources(cfg_list, depends, pkglist=None):
raise
return(retlist)
+
# depends is a list of dependencies (DEP_FILESYSTEM)
# dslist is a list of 2 item lists
-# dslist = [
+# dslist = [
# ( class, ( depends-that-this-class-needs ) )
# }
# it returns a list of 'class' that matched these deps exactly
# it is a helper function for DataSourceCollections
def list_from_depends(depends, dslist):
- retlist = [ ]
+ retlist = []
depset = set(depends)
for elem in dslist:
(cls, deps) = elem