dracut/0094-Implement-shortcut-ip-ifname-static-for-static-confi.patch

87 lines
3.1 KiB
Diff
Raw Normal View History

Accepting request 239538 from home:hreinecke:branches:Base:System - 90btrfs: Install rescue utilities to initrd * Add: 0100-btrfs-add-initrd-rescue-utilities.patch - 40network: create /var/lib/wicked in ifup.sh (bnc#885141) * Add: 0089-40network-create-var-lib-wicked-in-ifup.sh.patch - dracut: caps: Remove whole caps module * Add: 0090-dracut-caps-Remove-whole-caps-module.patch - dracut: biosdevname: Only install if present * Add: 0091-dracut-biosdevname-In-SUSE-biosdevname-package-is-in.patch - dracut: nbd: Only complain of missing binary in hostonly mode if rootfs is on nbd * Add: 0092-dracut-nbd-Only-complain-of-missing-binary-in-hoston.patch - 95iscsi: generate commandline for software iscsi (bnc#880108) * Add: 0093-95iscsi-generate-commandline-for-software-iscsi.patch - Implement shortcut 'ip=<ifname>:static' for static configuration * Add: 0094-Implement-shortcut-ip-ifname-static-for-static-confi.patch - 95iscsi: use static configuration for software iscsi (bnc#884768) * Add: 0095-95iscsi-use-static-configuration-for-software-iscsi.patch - dracut: Fix error: local: can only be used in a function * Add: 0096-dracut-Fix-error-local-can-only-be-used-in-a-functio.patch - Implement 'rd.timeout' to modify the device timeout (bnc#878770) * Add: 0097-Implement-rd.timeout-to-modify-the-device-timeout.patch - Do not call 'lvm' for non-LVM device-mapper devices * Add: 0098-Do-not-call-lvm-for-non-LVM-device-mapper-devices.patch - 90multipath: Load device_handler modules early during boot (bnc#871617) * Add: 0099-90multipath-Load-device_handler-modules-early-during.patch OBS-URL: https://build.opensuse.org/request/show/239538 OBS-URL: https://build.opensuse.org/package/show/Base:System/dracut?expand=0&rev=168
2014-07-05 23:13:32 +02:00
From a345cf3c3d7c15cfca5735c531f825062235c135 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Wed, 2 Jul 2014 11:20:22 +0200
Subject: Implement shortcut 'ip=<ifname>:static' for static configuration
To simplify static configurate we should be pulling in the
existing 'ifcfg' files when running in hostonly mode.
With that we can implement the shortcut 'ip=<ifname>:static'
to use the existing configuration from the ifcfg file.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
modules.d/40network/ifup.sh | 14 +++++++++++++-
modules.d/40network/module-setup.sh | 4 ++++
modules.d/40network/parse-ip-opts.sh | 8 +++++++-
3 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
index 6f279a4..f3e07a6 100755
--- a/modules.d/40network/ifup.sh
+++ b/modules.d/40network/ifup.sh
@@ -399,6 +399,18 @@ for p in $(getargs ip=); do
[ "$use_bridge" != 'true' ] && \
[ "$use_vlan" != 'true' ] && continue
+ if [ "$autoconf" = "static" ] &&
+ [ -e /etc/sysconfig/network/ifcfg-${netif} ] ; then
+ # Pull in existing static configuration
+ . /etc/sysconfig/network/ifcfg-${netif}
+ ip=${IPADDR}
+ mask=${PREFIXLEN}
+ mtu=${MTU}
+ server=${REMOTE_IPADDR}
+ gw=${GATEWAY}
+ autoconf=${BOOTPROTO}
+ fi
+
# setup nameserver
namesrv="$dns1 $dns2 $(getargs nameserver)"
for s in $namesrv; do
@@ -411,7 +423,7 @@ for p in $(getargs ip=); do
done > /tmp/net.$netif.override
case $autoconf in
- dhcp|on|any)
+ dhcp4|dhcp|on|any)
do_dhcp -4 ;;
dhcp6)
load_ipv6
diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
index 7e7f087..690ff08 100755
--- a/modules.d/40network/module-setup.sh
+++ b/modules.d/40network/module-setup.sh
@@ -101,6 +101,10 @@ install() {
_arch=$(uname -m)
+ [[ $hostonly ]] && {
+ inst_multiple /etc/sysconfig/network/ifcfg-*
+ }
+
inst_libdir_file {"tls/$_arch/",tls/,"$_arch/",}"libnss_dns.so.*" \
{"tls/$_arch/",tls/,"$_arch/",}"libnss_mdns4_minimal.so.*"
diff --git a/modules.d/40network/parse-ip-opts.sh b/modules.d/40network/parse-ip-opts.sh
index 7e73574..e48b0f3 100755
--- a/modules.d/40network/parse-ip-opts.sh
+++ b/modules.d/40network/parse-ip-opts.sh
@@ -64,7 +64,13 @@ for p in $(getargs ip=); do
# Error checking for autoconf in combination with other values
case $autoconf in
error) die "Error parsing option 'ip=$p'";;
- bootp|rarp|both) die "Sorry, ip=$autoconf is currenty unsupported";;
+ bootp|rarp|both) die "Sorry, ip=$autoconf is currently unsupported";;
+ static)
+ if [ ! -e /etc/sysconfig/network/ifcfg-${dev} ] ; then
+ warn "No ifcfg configuration present for interface $dev, skipping"
+ continue
+ fi
+ ;;
none|off)
[ -z "$ip" ] && \
die "For argument 'ip=$p'\nValue '$autoconf' without static configuration does not make sense"
--
1.8.4.5