summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2011-01-31 16:40:43 -0500
committerScott Moser <smoser@ubuntu.com>2011-01-31 16:40:43 -0500
commit85444c68c8728d4324b71218d15d4f04ecdb4fbd (patch)
tree4759569605606ca1776eb2688d3d58e28752fa66
parent9e520d45a60a91750f9ad77da0be7dc58e57f4d8 (diff)
downloadvyos-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
-rw-r--r--cloudinit/DataSource.py17
-rw-r--r--cloudinit/DataSourceEc2.py13
-rw-r--r--cloudinit/DataSourceNoCloud.py9
-rw-r--r--cloudinit/DataSourceOVF.py4
-rw-r--r--cloudinit/__init__.py3
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