2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-05-30 01:26:38 +00:00

Add test case for openbmc rspconfig command #2912

This commit is contained in:
junxiawang 2017-05-12 06:06:56 -04:00
parent 4db46093ea
commit 91cc1fbb4e

View File

@ -2,83 +2,82 @@
function test_ip()
{
IP=$1
VALID_CHECK=$(echo $IP|awk -F. '$1<=255&&$2<=255&&$3<=255&&$4<=255{print "yes"}')
VALID_CHECK=$(echo $IP|awk -F. '$1<=255&&$2<=255&&$3<=255&&$4<=255{print "yes"}')
if echo $IP|grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$">/dev/null; then
if [ ${VALID_CHECK:-no} == "yes" ]; then
echo $1;
else
return 1;
fi
else
return 1;
fi
else
return 1;
fi
else
return 1;
fi
return 0;
}
function net()
{
a=$(echo "$1" | awk -F "." '{print $1" "$2" "$3" "$4}')
for num in $a;
do
while (($num!=0));do
echo -n $(($num%2)) >> /tmp/$$.num;
num=$(($num/2));
done
done
rc=$(grep -o "1" /tmp/$$.num | wc -l)
rm /tmp/$$.num
do
while (($num!=0));do
echo -n $(($num%2)) >> /tmp/$$.num;
num=$(($num/2));
done
done
rc=$(grep -o "1" /tmp/$$.num | wc -l)
rm /tmp/$$.num
ip="$2/$rc"
A=($(echo "$ip"|sed 's/[./;]/ /g'))
B=$(echo $((2**(32-${A[4]})-1)))
C=($(echo "obase=256;ibase=10; $B"|bc|awk '{if(NF==4)a=$0;if(NF==3)a="0"$0;if(NF==2)a="0 0"$0;if(NF==1)a="0 0 0"$0;print a}'))
D=$(echo ${A[*]} ${C[*]})
rc2=echo echo $D|awk 'BEGIN{OFS="."}{print $1,$2,$3,$4"-"$1+$6,$2+$7,$3+$8,$4+$9}' |awk -F '-' '{print $2}'
A=($(echo "$ip"|sed 's/[./;]/ /g'))
B=$(echo $((2**(32-${A[4]})-1)))
C=($(echo "obase=256;ibase=10; $B"|bc|awk '{if(NF==4)a=$0;if(NF==3)a="0"$0;if(NF==2)a="0 0"$0;if(NF==1)a="0 0 0"$0;print a}'))
D=$(echo ${A[*]} ${C[*]})
rc2=echo echo $D|awk 'BEGIN{OFS="."}{print $1,$2,$3,$4"-"$1+$6,$2+$7,$3+$8,$4+$9}' |awk -F '-' '{print $2}'
}
function change_ip()
{
test_ip $1;
if [[ $? -ne 0 ]];then return 1;fi
echo $1 > /tmp/BMCIP
ip1=`echo $1|awk -F. '{print $1}'`
ip2=`echo $1|awk -F. '{print $2}'`
ip3=`echo $1|awk -F. '{print $3}'`
ip4=`echo $1|awk -F. '{print $4}'`
echo ip is $ip1.$ip2.$ip3.$ip4
rc=$(net $3 $1)
rc4=`echo $rc |awk -F. '{print $4}'`
rc4=`expr "$rc4"`
if [[ $rc4 > 255 ]];then rc4=255;fi
ip=$ip4
while true;
do [[ $ip == "$rc4" ]] && return 1;
ping $ip1.$ip2.$ip3.$ip -c 2 >/dev/null ;
if [[ $? != 0 ]]; then
coutip="$ip1.$ip2.$ip3.$ip"
BMCNEWIP=$coutip;
echo $1,$2,$3
rspconfig $2 ip=$BMCNEWIP
if [[ $? -eq 0 ]];then
echo right command;
else
return 1;
fi
chdef $2 bmc=$BMCNEWIP
check_result $2 ip $BMCNEWIP
if [[ $? -ne 0 ]] ;then
return 1;
else
return 0;
fi
fi
ip=`expr "$ip" "+" "1"`
done
echo $1 > /tmp/BMCIP
ip1=`echo $1|awk -F. '{print $1}'`
ip2=`echo $1|awk -F. '{print $2}'`
ip3=`echo $1|awk -F. '{print $3}'`
ip4=`echo $1|awk -F. '{print $4}'`
echo ip is $ip1.$ip2.$ip3.$ip4
rc=$(net $3 $1)
rc4=`echo $rc |awk -F. '{print $4}'`
rc4=`expr "$rc4"`
if [[ $rc4 > 255 ]];then rc4=255;fi
ip=$ip4
while true;
do [[ $ip == "$rc4" ]] && return 1;
ping $ip1.$ip2.$ip3.$ip -c 2 >/dev/null ;
if [[ $? != 0 ]]; then
coutip="$ip1.$ip2.$ip3.$ip"
BMCNEWIP=$coutip;
echo $1,$2,$3
rspconfig $2 ip=$BMCNEWIP
if [[ $? -eq 0 ]];then
echo right command;
else
return 1;
fi
chdef $2 bmc=$BMCNEWIP
check_result $2 ip $BMCNEWIP
if [[ $? -ne 0 ]] ;then
return 1;
else
return 0;
fi
fi
ip=`expr "$ip" "+" "1"`
done
}
function check_result()
{
a=0; while true;
do [ $a -eq 20 ] && return 1;
output=`rspconfig $1 $2 |awk -F: '{print $3}'`;
echo output is $output;
a=0; while true;
do [ $a -eq 20 ] && return 1;
output=`rspconfig $1 $2 |awk -F: '{print $3}'`;
echo output is $output;
if [[ $(echo $output|tr '.' '+'|bc) -eq $(echo $3|tr '.' '+'|bc) ]];then
echo checkresult is $output;
return 0 ;
@ -111,38 +110,39 @@ function clear_env()
fi
return 1;
}
function change_gateway {
function change_gateway
{
test_ip $1;
if [[ $? -ne 0 ]];then return 1;fi
rspconfig $2 gateway=$1;
rspconfig $2 gateway=$1;
if [[ $? -eq 0 ]];then
echo set gateway ok;
else
return 1;
fi
check_result $2 $3 $1
if [[ $? -ne 0 ]] ;then
return 1;
else
return 0;
fi
echo set gateway ok;
else
return 1;
fi
check_result $2 $3 $1
if [[ $? -ne 0 ]] ;then
return 1;
else
return 0;
fi
}
function change_netmask {
function change_netmask
{
test_ip $1;
if [[ $? -ne 0 ]];then return 1;fi
rspconfig $2 netmask=$1;
if [[ $? -eq 0 ]];then
echo set netmask ok;
else
return 1;
fi
if [[ $? -eq 0 ]];then
echo set netmask ok;
else
return 1;
fi
check_result $2 $3 $1
if [[ $? -ne 0 ]] ;then
return 1;
else
return 0;
fi
if [[ $? -ne 0 ]] ;then
return 1;
else
return 0;
fi
}
BMCIP=""
BMCGTEWAT=""
@ -150,13 +150,13 @@ BMCNETMASK=""
while [ "$#" -gt "0" ]
do
case $1 in
"-i"|"--ip" )
rspconfig $2 ip
"-i"|"--ip" )
rspconfig $2 ip
if [[ $? -eq 0 ]];then
BMCIP=`rspconfig $2 ip |awk -F":" '{print $3}'`
BMCNETMASK=`rspconfig $2 netmask |awk -F":" '{print $3}'`
else
exit 1;
BMCIP=`rspconfig $2 ip |awk -F":" '{print $3}'`
BMCNETMASK=`rspconfig $2 netmask |awk -F":" '{print $3}'`
else
exit 1;
fi
change_ip $BMCIP $2 $BMCNETMASK
if [[ $? -eq 1 ]];then
@ -167,46 +167,45 @@ do
;;
"-g"|"--gateway" )
rspconfig $2 gateway
if [[ $? -eq 0 ]];then
if [[ $? -eq 0 ]];then
BMCGATEWAYE=`rspconfig $2 gateway |awk -F":" '{print $3}'`
else
exit 1;
fi
change_gateway $BMCGATEWAYE $2 $3
if [[ $? -eq 1 ]];then
exit 1
else
exit 0
fi
change_gateway $BMCGATEWAYE $2 $3
if [[ $? -eq 1 ]];then
exit 1
else
exit 0
fi
;;
"-n"|"--netmask" )
rspconfig $2 netmask
"-n"|"--netmask" )
rspconfig $2 netmask
if [[ $? -eq 0 ]];then
BMCNETMASK=`rspconfig $2 netmask |awk -F":" '{print $3}'`
else
exit 1;
fi
change_netmask $BMCNETMASK $2 $3
if [[ $? -eq 1 ]];then
exit 1
else
exit 0
fi
exit 1;
fi
change_netmask $BMCNETMASK $2 $3
if [[ $? -eq 1 ]];then
exit 1
else
exit 0
fi
;;
"-c"|"--clear" )
clear_env $1 $2 $3
if [[ $? -eq 1 ]];then
exit 1
else
exit 0
fi
"-c"|"--clear" )
clear_env $1 $2 $3
if [[ $? -eq 1 ]];then
exit 1
else
exit 0
fi
;;
*)
echo
echo "Please Insert $0: -i|-g|-n|-c"
echo
exit 1;
*)
echo
echo "Please Insert $0: -i|-g|-n|-c"
echo
exit 1;
;;
esac
done