summaryrefslogtreecommitdiff
path: root/scripts/vyatta-show-protocols
diff options
context:
space:
mode:
authorStephen Hemminger <stephen.hemminger@vyatta.com>2009-02-18 12:54:35 -0800
committerStephen Hemminger <stephen.hemminger@vyatta.com>2009-02-18 15:40:25 -0800
commit358846aef34e08817dbc7d7eefcffb2f075f786b (patch)
tree6ef2c5a65fcaec19ea6035efadccd1390b732e7d /scripts/vyatta-show-protocols
parent5205f4cd0d68a78c86fce6588f9c276861bb9cdd (diff)
downloadvyatta-cfg-quagga-358846aef34e08817dbc7d7eefcffb2f075f786b.tar.gz
vyatta-cfg-quagga-358846aef34e08817dbc7d7eefcffb2f075f786b.zip
Rework of protocol startup
Use scripts to do start/stop (instead of disable template). Integrate reload into new quagga-manager script
Diffstat (limited to 'scripts/vyatta-show-protocols')
-rwxr-xr-xscripts/vyatta-show-protocols51
1 files changed, 51 insertions, 0 deletions
diff --git a/scripts/vyatta-show-protocols b/scripts/vyatta-show-protocols
new file mode 100755
index 00000000..c81dcb82
--- /dev/null
+++ b/scripts/vyatta-show-protocols
@@ -0,0 +1,51 @@
+#! /usr/bin/perl
+# Author: Stephen Hemminger
+# Date: 2009
+# Description: Helper script to display configured protocols
+
+# **** License ****
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# This code was originally developed by Vyatta, Inc.
+# Portions created by Vyatta are Copyright (C) 2006, 2007, 2008 Vyatta, Inc.
+# All Rights Reserved.
+# **** End License ****
+
+use lib "/opt/vyatta/share/perl5";
+use Vyatta::Config;
+use strict;
+use warnings;
+
+# Map from command line to config->XXX() function
+my %actions = (
+ 'configured' => 'exists',
+ 'added' => 'isAdded',
+ 'changed' => 'isChanged',
+ 'deleted' => 'isDeleted',
+);
+
+my @protocols = qw(bgp isis ospf ospf6 rip ripng);
+
+sub usage {
+ die "Usage: $0 {",join('|',keys %actions),"}\n"
+}
+
+usage if ($#ARGV == -1);
+my $match = $actions{$ARGV[0]};
+usage unless $match;
+
+my $config = new Vyatta::Config;
+$config->setLevel('protocols');
+
+# Avoid the urge to do Perl Golf here...
+my @found = grep { $config->$match($_) } @protocols;
+my @daemons = map { $_ . 'd' } @found;
+print join(' ', @daemons), "\n";
+