summaryrefslogtreecommitdiff
path: root/udev
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2016-06-03 16:22:19 -0400
committerScott Moser <smoser@ubuntu.com>2016-06-03 16:22:19 -0400
commitbc9bd58d1533d996029770da758f73217c15af33 (patch)
tree04a23063e872352604042a16171f908f7a8abb83 /udev
parente513fc39555242f0be3049fb36eb04e708e70e66 (diff)
parent42a7d2b6d44be5fd6e41734902e08897b709015d (diff)
downloadvyos-cloud-init-bc9bd58d1533d996029770da758f73217c15af33.tar.gz
vyos-cloud-init-bc9bd58d1533d996029770da758f73217c15af33.zip
improve network configuration
This branch accomplishes several things: - centrally handle 'dsmode' to be 'local' or 'net. This allows local data sources to run before networking but still have user-data read by default when networking is available. - support networking information being read on dreamcompute dreamcompute's openstack declares networking via the /etc/network/interfaces style 'network_config' format. - support reading and applying networking information on SmartOS - improve reading networking from openstack network_data.json (LP: #1577982) add support for mtu and routes and many miscellaneous fixes. - support for renaming devices in a container (LP: #1579130). Also rename network devices as instructed by the host on every boot where cloud-init networking is enabled. This is required because a.) containers do not get systemd.link files applied as they do not have udev. b.) if the initramfs is out of date then we need to apply them. - remove blocking of udev rules (LP: #1577844, LP: #1571761) LP: #1577982, #1579130, #1577844, #1571761
Diffstat (limited to 'udev')
-rw-r--r--udev/79-cloud-init-net-wait.rules10
-rwxr-xr-xudev/cloud-init-wait70
2 files changed, 0 insertions, 80 deletions
diff --git a/udev/79-cloud-init-net-wait.rules b/udev/79-cloud-init-net-wait.rules
deleted file mode 100644
index 8344222a..00000000
--- a/udev/79-cloud-init-net-wait.rules
+++ /dev/null
@@ -1,10 +0,0 @@
-# cloud-init cold/hot-plug blocking mechanism
-# this file blocks further processing of network events
-# until cloud-init local has had a chance to read and apply network
-SUBSYSTEM!="net", GOTO="cloudinit_naming_end"
-ACTION!="add", GOTO="cloudinit_naming_end"
-
-IMPORT{program}="/lib/udev/cloud-init-wait"
-
-LABEL="cloudinit_naming_end"
-# vi: ts=4 expandtab syntax=udevrules
diff --git a/udev/cloud-init-wait b/udev/cloud-init-wait
deleted file mode 100755
index b434005d..00000000
--- a/udev/cloud-init-wait
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/bin/sh
-
-CI_NET_READY="/run/cloud-init/network-config-ready"
-LOG="/run/cloud-init/${0##*/}.log"
-LOG_INIT=0
-MAX_WAIT=60
-DEBUG=0
-
-block_until_ready() {
- local fname="$1" max="$2"
- [ -f "$fname" ] && return 0
- # udevadm settle below will exit at the first of 3 conditions
- # 1.) timeout 2.) file exists 3.) all in-flight udev events are processed
- # since this is being run from a udev event, the 3 wont happen.
- # thus, this is essentially a inotify wait or timeout on a file in /run
- # that is created by cloud-init-local.
- udevadm settle "--timeout=$max" "--exit-if-exists=$fname"
-}
-
-log() {
- [ -n "${LOG}" ] || return
- [ "${DEBUG:-0}" = "0" ] && return
-
- if [ $LOG_INIT = 0 ]; then
- if [ -d "${LOG%/*}" ] || mkdir -p "${LOG%/*}"; then
- LOG_INIT=1
- else
- echo "${0##*/}: WARN: log init to ${LOG%/*}" 1>&2
- return
- fi
- elif [ "$LOG_INIT" = "-1" ]; then
- return
- fi
- local info="$$ $INTERFACE"
- if [ "$DEBUG" -gt 1 ]; then
- local up idle
- read up idle < /proc/uptime
- info="$$ $INTERFACE $up"
- fi
- echo "[$info]" "$@" >> "$LOG"
-}
-
-main() {
- local name="" readyfile="$CI_NET_READY"
- local info="INTERFACE=${INTERFACE} ID_NET_NAME=${ID_NET_NAME}"
- info="$info ID_NET_NAME_PATH=${ID_NET_NAME_PATH}"
- info="$info MAC_ADDRESS=${MAC_ADDRESS}"
- log "$info"
-
- ## Check to see if cloud-init.target is set. If cloud-init is
- ## disabled we do not want to do anything.
- if [ ! -f "/run/cloud-init/enabled" ]; then
- log "cloud-init disabled"
- return 0
- fi
-
- if [ "${INTERFACE#lo}" != "$INTERFACE" ]; then
- return 0
- fi
-
- block_until_ready "$readyfile" "$MAX_WAIT" ||
- { log "failed waiting for ready on $INTERFACE"; return 1; }
-
- log "net config ready"
-}
-
-main "$@"
-exit
-
-# vi: ts=4 expandtab