summaryrefslogtreecommitdiff
path: root/scripts/vyatta_quagga_utils.pl
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/vyatta_quagga_utils.pl')
-rw-r--r--scripts/vyatta_quagga_utils.pl54
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;
+}
+