From 8501cd5e721b53cd8f892fbf9a323876aedd8256 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Wed, 1 Apr 2009 12:21:51 -0700 Subject: Add --warn option for vyatta-interfaces For when templates want to check for interface but not die. --- scripts/vyatta-interfaces.pl | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/scripts/vyatta-interfaces.pl b/scripts/vyatta-interfaces.pl index 4820ae3..d647e96 100755 --- a/scripts/vyatta-interfaces.pl +++ b/scripts/vyatta-interfaces.pl @@ -46,10 +46,11 @@ use warnings; my $dhcp_daemon = '/sbin/dhclient'; my ($eth_update, $eth_delete, $addr, $dev, $mac, $mac_update, $op_dhclient); -my ($check_name, $show_names, $intf_cli_path, $vif_name); +my ($check_name, $show_names, $intf_cli_path, $vif_name, $warn_name); sub usage() { print "Usage: $0 --dev= --check=\n"; + print " $0 --dev= --warn\n"; print " $0 --dev= --valid-mac=\n"; print " $0 --dev= --eth-addr-update=\n"; print " $0 --dev= --eth-addr-delete=\n"; @@ -68,6 +69,7 @@ GetOptions("eth-addr-update=s" => \$eth_update, "check=s" => \$check_name, "show=s" => \$show_names, "vif=s" => \$vif_name, + "warn", => \$warn_name, ) or usage(); if ($eth_update) { update_eth_addrs($eth_update, $dev); } @@ -77,6 +79,7 @@ if ($mac) { is_valid_mac($mac, $dev); } if ($mac_update) { update_mac($mac_update, $dev); } if ($op_dhclient) { op_dhcp_command($op_dhclient, $dev); } if ($check_name) { is_valid_name($check_name, $dev); } +if ($warn_name) { exists_name($dev); } if ($show_names) { show_interfaces($show_names); } sub is_ip_configured { @@ -450,6 +453,15 @@ sub is_valid_name { exit 0; } +sub exists_name { + my $name = shift; + die "Missing --dev argument\n" unless $name; + + warn "interface $name does not exist on system\n" + unless grep { $name eq $_ } getInterfaces(); + exit 0; +} + # generate one line with all known interfaces (for allowed) sub show_interfaces { my $type = shift; -- cgit v1.2.3