diff options
Diffstat (limited to 'scripts/vyatta_quagga_utils.pl')
-rw-r--r-- | scripts/vyatta_quagga_utils.pl | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/scripts/vyatta_quagga_utils.pl b/scripts/vyatta_quagga_utils.pl new file mode 100644 index 00000000..2b5b05ac --- /dev/null +++ b/scripts/vyatta_quagga_utils.pl @@ -0,0 +1,54 @@ +#!/usr/bin/perl +use lib "/opt/vyatta/share/perl5/"; +use VyattaConfig; +use VyattaMisc; +use NetAddr::IP; +use Getopt::Long; + +GetOptions("check-prefix-boundry=s" => \$prefix, + "not-exists=s" => \$notexists, + "exists=s" => \$exists, +); + +if (defined $prefix) { check_prefix_boundry($prefix); } +if (defined $notexists) { check_not_exists($notexists); } +if (defined $exists) { check_exists($exists); } + +exit 0; + +sub check_prefix_boundry() { + my $prefix = shift; + my $net, $cidr; + + $net = new NetAddr::IP $prefix; + $cidr = $net->network(); + if ( "$cidr" ne "$prefix" ) { + print "Your prefix must fall on a natural network boundry. Did you mean $cidr?\n"; + exit 1; + } + + exit 0; +} + +sub check_exists() { + my $node = shift; + my $config = new VyattaConfig; + + if ( $config->exists("$node") ) { + exit 0; + } + + exit 1; +} + +sub check_not_exists() { + my $node = shift; + my $config = new VyattaConfig; + + if (! $config->exists("$node") ) { + exit 0; + } + + exit 1; +} + |