2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-06-04 12:30:10 +00:00
Yuan Bai c17f009187 enhance setroute error check and return code. (#4217)
* enhance setroute error check.
2017-11-07 14:29:55 +08:00

66 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
# IBM(c) 2011 EPL license http://www.eclipse.org/legal/epl-v10.html
#-------------------------------------------------------------------------------
#=head1 setroute [add]
# [add] - The operation to manipulate the route entry. It is optional.
# The default is 'replace' if ignoring it.
#
#=head2 setrout command replaces/adds the routes to the node according to
# what is specified in the xCAT tables.
# The route name for the node is defined in noderes.routenames.
# The route itself is defined in the routes table.
#=cut
#-------------------------------------------------------------------------------
if [ -z "$NODEROUTENAMES" ]; then
echo "No static routes need be configured on this node."
exit 0
fi
OP="replace"
exit_code=0
if [ -n "$1" ] && [ "$1" = "add" ]; then
OP="add"
fi
for rn in `echo "$NODEROUTENAMES" | tr "," "\n"`
do
eval route_string=\$ROUTE_$rn
if [ -n "$route_string" ]; then
net=`echo $route_string |cut -d',' -f1`
mask=`echo $route_string |cut -d',' -f2`
gw=`echo $route_string |cut -d',' -f3`
ifname=`echo $route_string |cut -d',' -f4`
if [ -z "$gw" ]; then
echo "Error: Failed to configure route $rn as gateway is not configured."
exit_code=1
continue
fi
# remove the suffix /64 from ipv6 net
if echo $net | grep "/" 2>&1 1>/dev/null
then
net=`echo $net | awk -F'/' '{print $1}'`
fi
# remove the prefix "/" from ipv6 mask
if echo $mask | grep "/" 2>&1 1>/dev/null
then
mask=`echo $mask | awk -F'/' '{print $2}'`
fi
cmd="routeop $OP $net $mask $gw $ifname"
result=`$cmd 2>&1`
if [ $? -ne 0 ]; then
exit_code=1
fi
echo $result
else
echo "Error: $rn is configured incomplete from xCAT routes table."
exit_code=1
fi
done
exit $exit_code