diff options
author | Daniil Baturin <daniil@baturin.org> | 2013-07-01 18:44:54 +0700 |
---|---|---|
committer | Daniil Baturin <daniil@baturin.org> | 2013-07-01 18:44:54 +0700 |
commit | eaae5053ad6253c4e69bee9c41dc41f3dd81beb7 (patch) | |
tree | fa238f29a750ef27b243e282607e59d7696c12f9 | |
parent | 64047fe3b0d84ccc195638db93414f8cca2c17b2 (diff) | |
download | vyos-utils-misc-eaae5053ad6253c4e69bee9c41dc41f3dd81beb7.tar.gz vyos-utils-misc-eaae5053ad6253c4e69bee9c41dc41f3dd81beb7.zip |
Add Vyatta to OpenWRT DHCP static mappings converter.
-rwxr-xr-x[-rw-r--r--] | README | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | admin-tools/README | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | config-processors/README | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | converters/README | 1 | ||||
-rwxr-xr-x[-rw-r--r--] | converters/qvconvert.pl | 0 | ||||
-rwxr-xr-x | converters/vyatta2openwrt-dhcp.sh | 60 |
6 files changed, 61 insertions, 0 deletions
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 |