From e21cc4704648b85f8eae737b1ca6194413231f72 Mon Sep 17 00:00:00 2001 From: Tom Grennan Date: Mon, 17 Dec 2007 17:14:11 -0800 Subject: support stand-alone validation --- scripts/vyatta_net_name | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) mode change 100644 => 100755 scripts/vyatta_net_name diff --git a/scripts/vyatta_net_name b/scripts/vyatta_net_name old mode 100644 new mode 100755 index 5cc1f4c5..43c71c1d --- 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: -- cgit v1.2.3 From 35a2193ed8baa7af1c4c01f239b0363a9d5a5d19 Mon Sep 17 00:00:00 2001 From: Tom Grennan Date: Mon, 17 Dec 2007 17:15:14 -0800 Subject: remove ifrename dependency --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index 88938b4a..ec7b49bd 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 Suggests: util-linux (>= 2.13-5), net-tools, -- cgit v1.2.3 From a9cd192305b779cb62aecd858ad9a4e5a1fbcad4 Mon Sep 17 00:00:00 2001 From: Tom Grennan Date: Mon, 17 Dec 2007 17:16:48 -0800 Subject: add init script to force udev settle before itf configured --- Makefile.am | 11 ++++--- debian/vyatta-cfg-system.postinst.in | 2 ++ etc/init.d/vyatta-udev | 58 ++++++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 4 deletions(-) create mode 100755 etc/init.d/vyatta-udev 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/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 +# **** 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: -- cgit v1.2.3