emit the cloud-config event again
The merge of 0.7.0 dropped the cloud-config initctl emission. I've added it back here, but done so in a way that doesn't force non-ubuntu (or non-upstart) distros to provide this config setting to disable it.
This commit is contained in:
parent
3a79a74ade
commit
37fb980a02
@ -100,6 +100,29 @@ def welcome_format(action):
|
|||||||
return templater.render_string(WELCOME_MSG_TPL, tpl_params)
|
return templater.render_string(WELCOME_MSG_TPL, tpl_params)
|
||||||
|
|
||||||
|
|
||||||
|
def emit_cloud_config_ready(cfg, cfgpath):
|
||||||
|
# emit the cloud config ready event
|
||||||
|
# this can be used by upstart jobs for 'start on cloud-config'. There is a
|
||||||
|
# builtin value for 'cc_ready_cmd' if that is not overidden by config, then
|
||||||
|
# we check to make sure that /sbin/initctl is availble. This makes it so
|
||||||
|
# that non-ubuntu distro will just no-op here with no explicit config.
|
||||||
|
cmd = None
|
||||||
|
if 'cc_ready_cmd' in cfg:
|
||||||
|
cmd = cfg['cc_ready_cmd']
|
||||||
|
if isinstance(cmd, str):
|
||||||
|
cmd = ['sh', '-c', cmd]
|
||||||
|
elif os.path.isfile("/sbin/initctl"):
|
||||||
|
cmd = ['initctl', 'emit', 'cloud-config',
|
||||||
|
'CLOUD_CFG=%s' % cfgpath]
|
||||||
|
|
||||||
|
if not cmd:
|
||||||
|
return
|
||||||
|
try:
|
||||||
|
util.subp(cmd)
|
||||||
|
except:
|
||||||
|
LOG.warn("emission of cloud-config event failed")
|
||||||
|
|
||||||
|
|
||||||
def extract_fns(args):
|
def extract_fns(args):
|
||||||
# Files are already opened so lets just pass that along
|
# Files are already opened so lets just pass that along
|
||||||
# since it would of broke if it couldn't have
|
# since it would of broke if it couldn't have
|
||||||
@ -338,6 +361,11 @@ def main_modules(action_name, args):
|
|||||||
# now that logging is setup and stdout redirected, send welcome
|
# now that logging is setup and stdout redirected, send welcome
|
||||||
welcome(name, msg=w_msg)
|
welcome(name, msg=w_msg)
|
||||||
|
|
||||||
|
# send the cloud-config event.
|
||||||
|
if name == "config":
|
||||||
|
emit_cloud_config_ready(mods.cfg,
|
||||||
|
init.paths.get_ipath_cur("cloud_config"))
|
||||||
|
|
||||||
# Stage 5
|
# Stage 5
|
||||||
return run_module_section(mods, name, name)
|
return run_module_section(mods, name, name)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user