diff options
author | Scott Moser <smoser@ubuntu.com> | 2011-01-31 16:40:43 -0500 |
---|---|---|
committer | Scott Moser <smoser@ubuntu.com> | 2011-01-31 16:40:43 -0500 |
commit | 85444c68c8728d4324b71218d15d4f04ecdb4fbd (patch) | |
tree | 4759569605606ca1776eb2688d3d58e28752fa66 /cloudinit | |
parent | 9e520d45a60a91750f9ad77da0be7dc58e57f4d8 (diff) | |
download | vyos-cloud-init-85444c68c8728d4324b71218d15d4f04ecdb4fbd.tar.gz vyos-cloud-init-85444c68c8728d4324b71218d15d4f04ecdb4fbd.zip |
replace DataSource's self.log
After adding the 'log' element to the DataSource class, pickling would
fail with
TypeError: can't pickle file objects
Instead of having the object with a log reference, use one from
'DataSource.log' and have that set by cloudinit
Diffstat (limited to 'cloudinit')
-rw-r--r-- | cloudinit/DataSource.py | 17 | ||||
-rw-r--r-- | cloudinit/DataSourceEc2.py | 13 | ||||
-rw-r--r-- | cloudinit/DataSourceNoCloud.py | 9 | ||||
-rw-r--r-- | cloudinit/DataSourceOVF.py | 4 | ||||
-rw-r--r-- | cloudinit/__init__.py | 3 |
5 files changed, 27 insertions, 19 deletions
diff --git a/cloudinit/DataSource.py b/cloudinit/DataSource.py index 21404ecc..43f66eff 100644 --- a/cloudinit/DataSource.py +++ b/cloudinit/DataSource.py @@ -22,17 +22,22 @@ DEP_NETWORK = "NETWORK" import UserDataHandler as ud +log = None +def setlog(log_in=None, name="DataSource"): + log = log_in + if log is None: + class NullHandler(logging.Handler): + def emit(self,record): pass + log = logging.getLogger(name) + log.addHandler(NullHandler()) + class DataSource: userdata = None metadata = None userdata_raw = None - log = None - def __init__(self, log=None): - if not log: - import logging - log = logging.log - self.log = log + def __init__(self): + pass def get_userdata(self): if self.userdata == None: diff --git a/cloudinit/DataSourceEc2.py b/cloudinit/DataSourceEc2.py index 183c57b8..eb0036a5 100644 --- a/cloudinit/DataSourceEc2.py +++ b/cloudinit/DataSourceEc2.py @@ -17,6 +17,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. import DataSource +log = DataSource.log from cloudinit import seeddir import cloudinit.util as util @@ -40,7 +41,7 @@ class DataSourceEc2(DataSource.DataSource): if util.read_optional_seed(seedret,base=self.seeddir+ "/"): self.userdata_raw = seedret['user-data'] self.metadata = seedret['meta-data'] - self.log.debug("using seeded ec2 data in %s" % self.seeddir) + log.debug("using seeded ec2 data in %s" % self.seeddir) return True try: @@ -102,13 +103,13 @@ class DataSourceEc2(DataSource.DataSource): reason = "url error [%s]" % e.reason if x == 0: - self.log.warning("waiting for metadata service at %s\n" % url) + log.warning("waiting for metadata service at %s\n" % url) - self.log.warning(" %s [%02s/%s]: %s\n" % + log.warning(" %s [%02s/%s]: %s\n" % (time.strftime("%H:%M:%S",time.gmtime()), x+1, sleeps, reason)) time.sleep(sleeptime) - self.log.critical("giving up on md after %i seconds\n" % + log.critical("giving up on md after %i seconds\n" % int(time.time()-starttime)) return False @@ -128,7 +129,7 @@ class DataSourceEc2(DataSource.DataSource): if entname == "ephemeral" and name == "ephemeral0": found = device if found == None: - self.log.warn("unable to convert %s to a device" % name) + log.warn("unable to convert %s to a device" % name) return None # LP: #611137 @@ -151,7 +152,7 @@ class DataSourceEc2(DataSource.DataSource): for nto in tlist: cand = "/dev/%s%s" % (nto, short[len(nfrom):]) if os.path.exists(cand): - self.log.debug("remapped device name %s => %s" % (found,cand)) + log.debug("remapped device name %s => %s" % (found,cand)) return(cand) return ofound diff --git a/cloudinit/DataSourceNoCloud.py b/cloudinit/DataSourceNoCloud.py index 4cbbeded..5aebb50f 100644 --- a/cloudinit/DataSourceNoCloud.py +++ b/cloudinit/DataSourceNoCloud.py @@ -17,6 +17,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. import DataSource +log = DataSource.log from cloudinit import seeddir import cloudinit.util as util @@ -54,7 +55,7 @@ class DataSourceNoCloud(DataSource.DataSource): if parse_cmdline_data(self.cmdline_id, md): found.append("cmdline") except: - util.logexc(self.log,util.WARN) + util.logexc(log) return False # check to see if the seeddir has data. @@ -63,7 +64,7 @@ class DataSourceNoCloud(DataSource.DataSource): md = util.mergedict(md,seedret['meta-data']) ud = seedret['user-data'] found.append(self.seeddir) - self.log.debug("using seeded cache data in %s" % self.seeddir) + log.debug("using seeded cache data in %s" % self.seeddir) # there was no indication on kernel cmdline or data # in the seeddir suggesting this handler should be used. @@ -80,14 +81,14 @@ class DataSourceNoCloud(DataSource.DataSource): seedfound=proto break if not seedfound: - self.log.debug("seed from %s not supported by %s" % + log.debug("seed from %s not supported by %s" % (seedfrom, self.__class__)) return False # this could throw errors, but the user told us to do it # so if errors are raised, let them raise (md_seed,ud) = util.read_seeded(seedfrom) - self.log.debug("using seeded cache data from %s" % seedfrom) + log.debug("using seeded cache data from %s" % seedfrom) # values in the command line override those from the seed md = util.mergedict(md,md_seed) diff --git a/cloudinit/DataSourceOVF.py b/cloudinit/DataSourceOVF.py index 31d0c407..a126c8bd 100644 --- a/cloudinit/DataSourceOVF.py +++ b/cloudinit/DataSourceOVF.py @@ -87,12 +87,12 @@ class DataSourceOVF(DataSource.DataSource): seedfound = proto break if not seedfound: - self.log.debug("seed from %s not supported by %s" % + log.debug("seed from %s not supported by %s" % (seedfrom, self.__class__)) return False (md_seed,ud) = util.read_seeded(seedfrom) - self.log.debug("using seeded cache data from %s" % seedfrom) + log.debug("using seeded cache data from %s" % seedfrom) md = util.mergedict(md,md_seed) found.append(seedfrom) diff --git a/cloudinit/__init__.py b/cloudinit/__init__.py index 7406e19f..47e4e10a 100644 --- a/cloudinit/__init__.py +++ b/cloudinit/__init__.py @@ -102,6 +102,7 @@ def logging_set_from_cfg(cfg): import DataSource +DataSource.setlog(log) import UserDataHandler class CloudInit: @@ -190,7 +191,7 @@ class CloudInit: for cls in dslist: ds = cls.__name__ try: - s = cls(log) + s = cls() if s.get_data(): self.datasource = s self.datasource_name = ds |