diff --git a/bin/cloud-init b/bin/cloud-init index fce4fe8c..c7863db1 100755 --- a/bin/cloud-init +++ b/bin/cloud-init @@ -45,6 +45,10 @@ from cloudinit.settings import (PER_INSTANCE, PER_ALWAYS, PER_ONCE, CLOUD_CONFIG) +# Pretty little welcome message template +WELCOME_MSG_TPL = ("Cloud-init v. {{version}} running '{{action}}' at " + "{{timestamp}}. Up {{uptime}} seconds.") + # Module section template MOD_SECTION_TPL = "cloud_%s_modules" @@ -56,6 +60,7 @@ QUERY_DATA_TYPES = [ ] # Frequency shortname to full name +# (so users don't have to remember the full name...) FREQ_SHORT_NAMES = { 'instance': PER_INSTANCE, 'always': PER_ALWAYS, @@ -78,15 +83,15 @@ def print_exc(msg=''): def welcome(action): - msg = ("Cloud-init v. {{version}} running '{{action}}' at " - "{{timestamp}}. Up {{uptime}} seconds.") tpl_params = { 'version': version.version_string(), 'uptime': util.uptime(), 'timestamp': util.time_rfc2822(), 'action': action, } - util.multi_log("%s\n" % (templater.render_string(msg, tpl_params))) + tpl_msg = templater.render_string(WELCOME_MSG_TPL, tpl_params) + util.multi_log("%s\n" % (tpl_msg), + console=False, stderr=True) def extract_fns(args): diff --git a/cloudinit/config/cc_final_message.py b/cloudinit/config/cc_final_message.py index 711e7b5b..b1caca47 100644 --- a/cloudinit/config/cc_final_message.py +++ b/cloudinit/config/cc_final_message.py @@ -55,7 +55,8 @@ def handle(_name, cfg, cloud, log, args): 'timestamp': ts, 'version': cver, } - util.multi_log("%s\n" % (templater.render_string(msg_in, subs))) + util.multi_log("%s\n" % (templater.render_string(msg_in, subs)), + console=False, stderr=True) except Exception: util.logexc(log, "Failed to render final message template") diff --git a/cloudinit/config/cc_keys_to_console.py b/cloudinit/config/cc_keys_to_console.py index da7d5219..ed7af690 100644 --- a/cloudinit/config/cc_keys_to_console.py +++ b/cloudinit/config/cc_keys_to_console.py @@ -46,7 +46,8 @@ def handle(name, cfg, _cloud, log, _args): cmd.append(','.join(fp_blacklist)) cmd.append(','.join(key_blacklist)) (stdout, _stderr) = util.subp(cmd) - util.multi_log("%s\n" % (stdout.strip()), stderr=False) + util.multi_log("%s\n" % (stdout.strip()), + stderr=False, console=True) except: log.warn("Writing keys to the system console failed!") raise diff --git a/cloudinit/util.py b/cloudinit/util.py index 6b23a0ee..4c29432b 100644 --- a/cloudinit/util.py +++ b/cloudinit/util.py @@ -275,15 +275,18 @@ def find_modules(root_dir): return entries -def multi_log(text, console=True, stderr=True, log=None): +def multi_log(text, console=True, stderr=True, + log=None, log_level=logging.DEBUG): if stderr: sys.stderr.write(text) if console: + # Don't use the write_file since + # this might be 'sensitive' info (not debug worthy?) with open('/dev/console', 'wb') as wfh: wfh.write(text) wfh.flush() if log: - log.debug(text) + log.log(log_level, text) def is_ipv4(instr):