From d9a4aad5d5cc8cb78997d66850d1916341b8d1cd Mon Sep 17 00:00:00 2001 From: Joshua Harlow Date: Thu, 9 Aug 2012 20:48:01 -0700 Subject: Move the code that did the 'cloud-config' upstart event name emitting to a config module and make it more generic in that it can take in a list of event names to emit as arguments. Add a yaml example to replace the functionality removed from the main binary. --- config/cloud.cfg | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'config') diff --git a/config/cloud.cfg b/config/cloud.cfg index 72e413d5..77b41063 100644 --- a/config/cloud.cfg +++ b/config/cloud.cfg @@ -32,6 +32,10 @@ cloud_init_modules: # The modules that run in the 'config' stage cloud_config_modules: +# Emit the cloud config ready event +# this can be used by upstart jobs for 'start on cloud-config'. + - name: emit_upstart + args: ["cloud-config"] - mounts - ssh-import-id - locale -- cgit v1.2.3 From e7116b69f093600e1e156ee332417d0a30b0df9c Mon Sep 17 00:00:00 2001 From: Joshua Harlow Date: Fri, 10 Aug 2012 10:41:52 -0700 Subject: Adjustments so that the default old event is used when no args are provided. Adjust the config file to use this older method so that older changes aren't needed. Also when calling 'initctl' emit fails log the exception message so that some useful warning information can be produced. --- cloudinit/config/cc_emit_upstart.py | 13 +++++++------ config/cloud.cfg | 3 +-- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'config') diff --git a/cloudinit/config/cc_emit_upstart.py b/cloudinit/config/cc_emit_upstart.py index 79f7119f..68b86ff6 100644 --- a/cloudinit/config/cc_emit_upstart.py +++ b/cloudinit/config/cc_emit_upstart.py @@ -25,15 +25,15 @@ from cloudinit.settings import PER_ALWAYS frequency = PER_ALWAYS -distros = ['ubuntu'] +distros = ['ubuntu', 'debian'] def handle(name, _cfg, cloud, log, args): event_names = args if not event_names: - log.debug(("Skipping module named %s," - " no event names provided"), name) - return + # Default to the 'cloud-config' + # event for backwards compat. + event_names = ['cloud-config'] if not os.path.isfile("/sbin/initctl"): log.debug(("Skipping module named %s," " no /sbin/initctl located"), name) @@ -43,5 +43,6 @@ def handle(name, _cfg, cloud, log, args): cmd = ['initctl', 'emit', str(n), 'CLOUD_CFG=%s' % cfgpath] try: util.subp(cmd) - except: - log.warn("Emission of upstart event %s failed", n) + except Exception as e: + # TODO, use log exception from utils?? + log.warn("Emission of upstart event %s failed due to: %s", n, e) diff --git a/config/cloud.cfg b/config/cloud.cfg index 77b41063..2b4d9e63 100644 --- a/config/cloud.cfg +++ b/config/cloud.cfg @@ -34,8 +34,7 @@ cloud_init_modules: cloud_config_modules: # Emit the cloud config ready event # this can be used by upstart jobs for 'start on cloud-config'. - - name: emit_upstart - args: ["cloud-config"] + - emit_upstart - mounts - ssh-import-id - locale -- cgit v1.2.3