summaryrefslogtreecommitdiff
path: root/cloudinit
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2015-02-11 14:00:20 -0500
committerScott Moser <smoser@ubuntu.com>2015-02-11 14:00:20 -0500
commit35dd98c07bce490e85e03bef872cbbf1185e0be9 (patch)
tree9b71de77b27ca916fa1d869fa95c0a5ab9f5e51c /cloudinit
parentcd632b2f153a61faa48531cb41d0288650e72c71 (diff)
parent587387cfbff7a89573128dc958df903d1becbde1 (diff)
downloadvyos-cloud-init-35dd98c07bce490e85e03bef872cbbf1185e0be9.tar.gz
vyos-cloud-init-35dd98c07bce490e85e03bef872cbbf1185e0be9.zip
some python3 fixes
This fixes the last set of WARN messages in my testing. * open /dev/console in text mode * move final message to be jinja template by default to avoid a warning about lack of cheetah. * write and read pickle'd contents in binary * some logging tests Also: * add tool tox-venv for simple things like: tox-venv py34 /bin/bash
Diffstat (limited to 'cloudinit')
-rw-r--r--cloudinit/config/cc_final_message.py9
-rw-r--r--cloudinit/stages.py9
-rw-r--r--cloudinit/util.py2
3 files changed, 13 insertions, 7 deletions
diff --git a/cloudinit/config/cc_final_message.py b/cloudinit/config/cc_final_message.py
index b24294e4..ad957e12 100644
--- a/cloudinit/config/cc_final_message.py
+++ b/cloudinit/config/cc_final_message.py
@@ -26,9 +26,12 @@ from cloudinit.settings import PER_ALWAYS
frequency = PER_ALWAYS
-# Cheetah formated default message
-FINAL_MESSAGE_DEF = ("Cloud-init v. ${version} finished at ${timestamp}."
- " Datasource ${datasource}. Up ${uptime} seconds")
+# Jinja formated default message
+FINAL_MESSAGE_DEF = (
+ "## template: jinja\n"
+ "Cloud-init v. {{version}} finished at {{timestamp}}."
+ " Datasource {{datasource}}. Up {{uptime}} seconds"
+)
def handle(_name, cfg, cloud, log, args):
diff --git a/cloudinit/stages.py b/cloudinit/stages.py
index f4f4591d..c5b1ded0 100644
--- a/cloudinit/stages.py
+++ b/cloudinit/stages.py
@@ -180,9 +180,12 @@ class Init(object):
pickled_fn = self.paths.get_ipath_cur('obj_pkl')
pickle_contents = None
try:
- pickle_contents = util.load_file(pickled_fn)
- except Exception:
+ pickle_contents = util.load_file(pickled_fn, decode=False)
+ except Exception as e:
+ if os.path.isfile(pickled_fn):
+ LOG.warn("failed loading pickle in %s: %s" % (pickled_fn, e))
pass
+
# This is expected so just return nothing
# successfully loaded...
if not pickle_contents:
@@ -203,7 +206,7 @@ class Init(object):
util.logexc(LOG, "Failed pickling datasource %s", self.datasource)
return False
try:
- util.write_file(pickled_fn, pk_contents, mode=0o400)
+ util.write_file(pickled_fn, pk_contents, omode="wb", mode=0o400)
except Exception:
util.logexc(LOG, "Failed pickling datasource to %s", pickled_fn)
return False
diff --git a/cloudinit/util.py b/cloudinit/util.py
index b845adfd..67ea5553 100644
--- a/cloudinit/util.py
+++ b/cloudinit/util.py
@@ -404,7 +404,7 @@ def multi_log(text, console=True, stderr=True,
if console:
conpath = "/dev/console"
if os.path.exists(conpath):
- with open(conpath, 'wb') as wfh:
+ with open(conpath, 'w') as wfh:
wfh.write(text)
wfh.flush()
else: