summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStig Thormodsrud <stig@vyatta.com>2007-12-18 09:54:39 -0800
committerStig Thormodsrud <stig@vyatta.com>2007-12-18 09:54:39 -0800
commit527ebe536c85691d79e5d81cd4f1fae4746db8c8 (patch)
treee821f97c50066133b058f28641965c4e4e6049f1
parent1802eb010fb9b382dde4d3e1574fd578027c7dc0 (diff)
parent44a2449730a5c379c96a486a8161daa8ebe2504f (diff)
downloadvyatta-cfg-system-527ebe536c85691d79e5d81cd4f1fae4746db8c8.tar.gz
vyatta-cfg-system-527ebe536c85691d79e5d81cd4f1fae4746db8c8.zip
Merge branch 'master' of http://phuket.vyatta.com/vyatta-cfg-system
-rw-r--r--Makefile.am11
-rw-r--r--debian/control2
-rw-r--r--debian/vyatta-cfg-system.postinst.in2
-rwxr-xr-xetc/init.d/vyatta-udev58
-rwxr-xr-x[-rw-r--r--]scripts/vyatta_net_name13
5 files changed, 76 insertions, 10 deletions
diff --git a/Makefile.am b/Makefile.am
index f893bf13..2d109577 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,7 +1,8 @@
-cfgdir = $(datadir)/vyatta-cfg/templates
-share_perl5dir = $(datarootdir)/perl5
-libudevdir = /lib/udev
-etcudevdir = /etc/udev
+cfgdir = $(datadir)/vyatta-cfg/templates
+share_perl5dir = $(datarootdir)/perl5
+libudevdir = /lib/udev
+etcudevdir = /etc/udev
+initddir = /etc/init.d
bin_SCRIPTS =
sbin_SCRIPTS =
@@ -39,6 +40,8 @@ sysconf_DATA += sysconf/config.boot.default
libudev_SCRIPTS = scripts/vyatta_net_name
etcudev_DATA = sysconf/vyatta-net.rules
+initd_SCRIPTS = etc/init.d/vyatta-udev
+
cpiop = find . ! -regex '\(.*~\|.*\.bak\|.*\.swp\|.*\#.*\#\)' -print0 | \
cpio -0pd
diff --git a/debian/control b/debian/control
index 19f15004..d950155d 100644
--- a/debian/control
+++ b/debian/control
@@ -12,7 +12,7 @@ Depends: bash (>= 3.1),
perl (>= 5.8.8),
procps (>= 1:3.2.7-3),
coreutils (>= 5.97-5.3),
- vyatta-cfg, sysv-rc, ifrename, ntp, sysklogd, busybox, ssh, whois, sudo,
+ vyatta-cfg, sysv-rc, ntp, sysklogd, busybox, ssh, whois, sudo,
snmpd, keepalived, vyatta-bash, bridge-utils
Suggests: util-linux (>= 2.13-5),
net-tools,
diff --git a/debian/vyatta-cfg-system.postinst.in b/debian/vyatta-cfg-system.postinst.in
index 13ba6dc6..b747b786 100644
--- a/debian/vyatta-cfg-system.postinst.in
+++ b/debian/vyatta-cfg-system.postinst.in
@@ -22,6 +22,8 @@ esac
ln -sf ../vyatta-net.rules /etc/udev/rules.d/$vyatta_net_rules
+update-rc.d vyatta-udev start 21 S .
+
if [ "$sysconfdir" != "/etc" ]; then
# for "admin" level (FIXME)
sed -i 's/^# %sudo ALL=NOPASSWD: ALL/%sudo ALL=NOPASSWD: ALL/' /etc/sudoers
diff --git a/etc/init.d/vyatta-udev b/etc/init.d/vyatta-udev
new file mode 100755
index 00000000..5c2c1d37
--- /dev/null
+++ b/etc/init.d/vyatta-udev
@@ -0,0 +1,58 @@
+#!/bin/bash
+### BEGIN INIT INFO
+# Provides: vyatta-udev
+# Required-Start: udev module-init-tools
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+# Short-Description: Trigger udev net subsystem to process interface renaming
+### END INIT INFO
+# **** License ****
+# Version: VPL 1.0
+#
+# The contents of this file are subject to the Vyatta Public License
+# Version 1.0 ("License"); you may not use this file except in
+# compliance with the License. You may obtain a copy of the License at
+# http://www.vyatta.com/vpl
+#
+# Software distributed under the License is distributed on an "AS IS"
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+# the License for the specific language governing rights and limitations
+# under the License.
+#
+# This code was originally developed by Vyatta, Inc.
+# Portions created by Vyatta are Copyright (C) 2007 Vyatta, Inc.
+# All Rights Reserved.
+#
+# Author: Tom Grennan <tgrennan@vyatta.com>
+# **** End License ****
+
+. /lib/lsb/init-functions
+
+: ${vyatta_env:=/etc/default/vyatta}
+source $vyatta_env
+
+declare progname=${0##*/}
+declare action=$1; shift
+
+start ()
+{
+ log_action_begin_msg "Trigger rename of network interfaces"
+ udevtrigger --subsystem-match=net
+ udevsettle
+ log_action_end_msg $?
+}
+
+case "$action" in
+ start) start ;;
+ stop|restart|force-reload) true ;;
+ *) log_failure_msg "usage: $progname [ start|stop|restart ]" ;
+ false ;;
+esac
+
+exit $?
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 4
+# End:
diff --git a/scripts/vyatta_net_name b/scripts/vyatta_net_name
index 5cc1f4c5..43c71c1d 100644..100755
--- a/scripts/vyatta_net_name
+++ b/scripts/vyatta_net_name
@@ -108,7 +108,8 @@ for name_hwid in ${cfg_net_hwid[@]} ; do
if [ "$hwid" == "$attr_address" ] ; then
# we mod the config file interface sub-clock in case it is missing
# "link-detect"
- ${vyatta_sbindir}/mod_bootfile_eth_hwid $BOOTFILE $name $attr_address
+ [[ "$BOOTFILE" != *test_* ]] && \
+ ${vyatta_sbindir}/mod_bootfile_eth_hwid $BOOTFILE $name $attr_address
echo $name
exit 0
fi
@@ -119,18 +120,17 @@ done
[ -z "$kname" ] && \
exit 1
-
# have not found matching hwid in config, see if we can use kernel name
if [ -z "$match" ] ; then
# the kernel interface name isnot in config
# so, we might as well use it
name=$kname
- ${vyatta_sbindir}/add_bootfile_eth_hwid $BOOTFILE $name $attr_address
+ cmd=add
elif [ -z "${match#*=}" ] ; then
# the config has this interface but the sub-block is missing the hwid
# so again, we might as well use the kernel name
name=$kname
- ${vyatta_sbindir}/mod_bootfile_eth_hwid $BOOTFILE $name $attr_address
+ cmd=mod
else
# The device mac address is not in the config but the config
# has another hwid associated with the device name. This
@@ -139,9 +139,12 @@ else
# Since this is non-deterministic, we make a new name.
(( ethn = last_ethn + 1 ))
name=eth$ethn
- ${vyatta_sbindir}/add_bootfile_eth_hwid $BOOTFILE $name $attr_address
+ cmd=add
fi
+[[ "$BOOTFILE" != *test_* ]] && \
+ ${vyatta_sbindir}/${cmd}_bootfile_eth_hwid $BOOTFILE $name $attr_address
+
echo $name
# Local Variables: