summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x[-rw-r--r--]README0
-rwxr-xr-x[-rw-r--r--]admin-tools/README0
-rwxr-xr-x[-rw-r--r--]config-processors/README0
-rwxr-xr-x[-rw-r--r--]converters/README1
-rwxr-xr-x[-rw-r--r--]converters/qvconvert.pl0
-rwxr-xr-xconverters/vyatta2openwrt-dhcp.sh60
6 files changed, 61 insertions, 0 deletions
diff --git a/README b/README
index 1222616..1222616 100644..100755
--- a/README
+++ b/README
diff --git a/admin-tools/README b/admin-tools/README
index e585704..e585704 100644..100755
--- a/admin-tools/README
+++ b/admin-tools/README
diff --git a/config-processors/README b/config-processors/README
index 45191f6..45191f6 100644..100755
--- a/config-processors/README
+++ b/config-processors/README
diff --git a/converters/README b/converters/README
index 9607a4e..eab660d 100644..100755
--- a/converters/README
+++ b/converters/README
@@ -3,3 +3,4 @@ files of other software to Vyatta configuration.
Files:
qvconvert.pl Quagga to Vyatta converter.
+vyatta2openwrt-dhcp.sh Exports Vyatta/EdgeOS DHCP static mapping to OpenWRT format
diff --git a/converters/qvconvert.pl b/converters/qvconvert.pl
index 374a70a..374a70a 100644..100755
--- a/converters/qvconvert.pl
+++ b/converters/qvconvert.pl
diff --git a/converters/vyatta2openwrt-dhcp.sh b/converters/vyatta2openwrt-dhcp.sh
new file mode 100755
index 0000000..deca6ef
--- /dev/null
+++ b/converters/vyatta2openwrt-dhcp.sh
@@ -0,0 +1,60 @@
+#!/bin/bash
+#
+# Export Vyatta/EdgeOS DHCP static mappings to OpenWRT format
+#
+# Copyright (C) 2013 by Daniil Baturin <daniil at baturin dot org>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+# OpenWRT format:
+# config 'host'
+# option 'mac' '00:aa:bb:cc:dd:ee'
+# option 'ip' '192.0.2.150'
+# option 'name' 'some-host'
+
+API=/bin/cli-shell-api
+DHCP_PATH="service dhcp-server shared-network-name $1 subnet $2 static-mapping"
+
+
+function usage
+{
+ echo "Usage: $0 <share-network-name> <subnet>"
+ echo "Example: $0 LAN 192.168.1.0/24"
+ exit 1
+}
+
+if [ $# != 2 ]; then
+ usage
+fi
+
+if ! $API exists $DHCP_PATH; then
+ echo "Specified subnet does not exist or has no static mappings"
+ exit 1
+fi
+
+host_list=$($API listNodes $DHCP_PATH)
+#echo $host_list
+eval "HOSTS=($host_list)"
+
+for i in "${HOSTS[@]}"; do
+ echo "config 'host'"
+ echo " option 'mac' '$($API returnValue $DHCP_PATH $i mac-address)'"
+ echo " option 'ip' '$($API returnValue $DHCP_PATH $i ip-address)'"
+ echo " option 'name' '$i'"
+done