diff options
Diffstat (limited to 'cloud-init.py')
-rwxr-xr-x | cloud-init.py | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/cloud-init.py b/cloud-init.py index ee08c191..c38512fe 100755 --- a/cloud-init.py +++ b/cloud-init.py @@ -24,6 +24,7 @@ import cloudinit import cloudinit.util as util import cloudinit.CloudConfig as CC import cloudinit.DataSource as ds +import cloudinit.netinfo as netinfo import time import logging import errno @@ -87,6 +88,8 @@ def main(): nonet_path = "%s/%s" % (cloudinit.get_cpath("data"), "no-net") if cmd == "start": + print netinfo.debug_info() + stop_files = ( cloudinit.get_ipath_cur("obj_pkl"), nonet_path ) # if starting as the network start, there are cases # where everything is already done for us, and it makes @@ -140,15 +143,14 @@ def main(): # parse the user data (ec2-run-userdata.py) try: - cloud.sem_and_run("consume_userdata", "once-per-instance", - cloud.consume_userdata,[],False) + ran = cloud.sem_and_run("consume_userdata", cloudinit.per_instance, + cloud.consume_userdata,[cloudinit.per_instance],False) + if not ran: + cloud.consume_userdata(cloudinit.per_always) except: warn("consuming user data failed!\n") raise - # finish, send the cloud-config event - cloud.initctl_emit() - cfg_path = cloudinit.get_ipath_cur("cloud_config") cc = CC.CloudConfig(cfg_path, cloud) @@ -163,6 +165,16 @@ def main(): except Exception as e: warn("Failed to get and set output config: %s\n" % e) + # send the cloud-config ready event + cc_path = cloudinit.get_ipath_cur('cloud_config') + cc_ready = cc.cfg.get("cc_ready_cmd", + ['initctl', 'emit', 'cloud-config', + '%s=%s' % (cloudinit.cfg_env_name, cc_path) ]) + if cc_ready: + if isinstance(cc_ready,str): + cc_ready = [ 'sh', '-c', cc_ready] + subprocess.Popen(cc_ready).communicate() + module_list = CC.read_cc_modules(cc.cfg,"cloud_init_modules") failures = [] |