diff --git a/create_group_matching.sh b/create_group_matching.sh new file mode 100755 index 00000000..47022898 --- /dev/null +++ b/create_group_matching.sh @@ -0,0 +1,67 @@ +#!/bin/bash +usage="$0 " +if [[ x$1 = x ]]; then + echo "Please provide lanforge manager hostname or ip" + echo $usage + exit 1 +fi +if [[ x$2 = x ]]; then + echo "Please provide a group name" + echo $usage + exit 1 +fi +if [[ x$3 = x ]]; then + echo "Please provide an endpoint name prefix" + echo $usage + exit 1 +fi + +# query for endpoints maching prefix +if [ -f /tmp/endp.$$ ]; then + rm -f /tmp/endp.$$ +fi + +./lf_firemod.pl --mgr $1 --quiet yes --action list_endp > /tmp/endp.$$ +lines=`wc -l < /tmp/endp.$$` +if [ $lines -lt 1 ]; then + echo "Unable to see any endpoints" + exit 1 +fi + +declare -A names +while read line; do + hunks=($line) + endp="${hunks[1]}" + endp=${endp/]/} + endp=${endp/[/} + if [[ $endp = D_* ]]; then + continue + fi + + # if name lacks a -A/B ending, it is prolly generic and the cx begins with CX_ + if [[ $endp = *-A ]] || [[ $endp = *-B ]]; then + cxname=${endp%-A} + cxname=${cxname%-B} + else + cxname="CX_${endp}" + fi + if [[ $cxname = $3* ]] || [[ $cxname = CX_$3* ]]; then + names[$cxname]=1 + fi +done < /tmp/endp.$$ + +if [ ${#names[@]} -lt 1 ]; then + echo "No connections start with $3" + exit 1 +fi + +echo "Creating group $2" +./lf_firemod.pl --mgr $1 --quiet 1 --cmd "add_group '$2'" + + +for n in ${!names[@]}; do + echo "adding connection $n to '$2'" + ./lf_firemod.pl --mgr $1 --quiet 1 --cmd "add_tgcx '$2' '$n'" +done + +