From cdad6627452ecf5559149b6768e0691778c2b308 Mon Sep 17 00:00:00 2001 From: Sergey Popovich Date: Mon, 6 Aug 2018 08:55:13 +0300 Subject: [PATCH] initrds: ifup: Do not apply any config if NETAUTO=none There are three types of value accepted by NETAUTO: 1) "dhcp" for automatic network settings via DHCP 2) "up" to bring link up, wait for IPv6 tentative and link up operstate 3) anything else: apply static configuration, wait for IPv6 tentative and link up operstate Note that empty ("") value is subset of 3) and we only skip link up operstate monitoring for it since commit 3e89468cd07f ("Don't require link-up on ma1 if NETAUTO is not specified."). Add fourth case with NETAUTO=none to skip all but NETHW (hardware address) from boot-config file and support different management adapter config methods (e.g. Debian network config system). This also fixes incorrect "return" statement usage outside of function introduced with commit 3e89468cd07f ("Don't require link-up on ma1 if NETAUTO is not specified.") and adds newline before wait_link_up() to make code more readable. Signed-off-by: Sergey Popovich --- packages/base/all/initrds/loader-initrd-files/src/bin/ifup | 7 ++++++- .../src/python/onl/bootconfig/__init__.py | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/base/all/initrds/loader-initrd-files/src/bin/ifup b/packages/base/all/initrds/loader-initrd-files/src/bin/ifup index 453a55c9..434b32f5 100644 --- a/packages/base/all/initrds/loader-initrd-files/src/bin/ifup +++ b/packages/base/all/initrds/loader-initrd-files/src/bin/ifup @@ -81,6 +81,9 @@ case "${NETAUTO}" in up) ifconfig "${NETDEV}" up ;; + none) + exit 0 + ;; *) if [ "${NETIP}" ] && [ "${NETMASK}" ] && [ "${NETIP#*/}" = "${NETIP}" ]; then NETIP=${NETIP}/$(ipcalc -p -s ${NETIP} ${NETMASK} | sed -n 's/PREFIX=//p') @@ -118,6 +121,7 @@ for i in $(seq 30); do fi sleep 1 done + wait_link_up() { local intf=$1 @@ -144,4 +148,5 @@ wait_link_up() if [ -n "${NETAUTO}" ]; then wait_link_up $NETDEV 100 fi -return 0 + +exit 0 diff --git a/packages/base/all/vendor-config-onl/src/python/onl/bootconfig/__init__.py b/packages/base/all/vendor-config-onl/src/python/onl/bootconfig/__init__.py index 1e2ba00c..e85c9ca0 100755 --- a/packages/base/all/vendor-config-onl/src/python/onl/bootconfig/__init__.py +++ b/packages/base/all/vendor-config-onl/src/python/onl/bootconfig/__init__.py @@ -191,7 +191,7 @@ class OnlBootConfigNet(OnlBootConfig): if not self.is_ip_address(netdns): raise ValueError("NETDNS=%s is not a valid ip-address" % (netdns)) - elif self.keys['NETAUTO'] not in ['dhcp', 'up', '']: + elif self.keys['NETAUTO'] not in ['dhcp', 'up', 'none', '']: raise ValueError("The NETAUTO value '%s' is invalid." % self.keys['NETAUTO']) elif self.keys['NETAUTO'] == 'up' and self.NET_REQUIRED: raise ValueError("NETAUTO is 'up' but non-local networking is required.")