summaryrefslogtreecommitdiff
path: root/upstart
diff options
context:
space:
mode:
Diffstat (limited to 'upstart')
-rw-r--r--upstart/cloud-init-nonet.conf22
-rw-r--r--upstart/cloud-init.conf3
2 files changed, 23 insertions, 2 deletions
diff --git a/upstart/cloud-init-nonet.conf b/upstart/cloud-init-nonet.conf
new file mode 100644
index 00000000..2ac98286
--- /dev/null
+++ b/upstart/cloud-init-nonet.conf
@@ -0,0 +1,22 @@
+# cloud-init-no-net
+# the purpose of this job is
+# * to block running of cloud-init until a non 'lo' interface is up
+# * timeout if one doens't come up in a reasonable amount of time
+start on mounted MOUNTPOINT=/ and stopped cloud-init-local
+stop on net-device-up IFACE!=lo
+task
+
+console output
+
+script
+ # if a non 'lo' interface is up, exit immediately
+ grep -qv '^lo' /var/run/network/ifstate && exit 0
+
+ [ -f /var/lib/cloud/instance/obj.pkl ] && exit 0
+ sleep 10
+ echo $UPSTART_JOB "waiting for a network device."
+ sleep 60
+ echo $UPSTART_JOB "gave up waiting for a network device."
+ : > /var/lib/cloud/data/no-net
+end script
+# EOF
diff --git a/upstart/cloud-init.conf b/upstart/cloud-init.conf
index cb2b437b..b9be5981 100644
--- a/upstart/cloud-init.conf
+++ b/upstart/cloud-init.conf
@@ -1,7 +1,6 @@
# cloud-init - the initial cloud-init job
# crawls metadata service, emits cloud-config
-start on (mounted MOUNTPOINT=/ and net-device-up IFACE=eth0 and \
- stopped cloud-init-local )
+start on mounted MOUNTPOINT=/ and stopped cloud-init-nonet
task