2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-06-01 19:17:06 +00:00

Merge pull request #6294 from tingtli/rpowercase

update to add more debug information in case rpower_wrongpasswd
This commit is contained in:
Weihua Hu 2019-05-20 21:25:47 +08:00 committed by GitHub
commit cea1c2a5ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,55 +1,88 @@
#!/bin/bash
PATH="/opt/xcat/bin:/opt/xcat/sbin:/opt/xcat/share/xcat/tools:/usr/sbin:/usr/bin:/sbin:/bin:/root/bin"
export PATH
function runcmd(){
echo "Run command $*"
result=`$*`
if [[ $? -eq 0 ]];then
echo $result;
echo "Run command $*....[Succeed]\n";
return 0;
else
echo $result;
echo "Run command $*... [Failed]\n";
return 1;
fi
}
function check_passwd_table(){
echo "Run tabdump passwd to check if password with $MGT exists"
tabdump passwd |grep $MGT
if [ $? -eq 0 ];then
`tabdump passwd |grep $MGT>$TMPFILE`
else
echo "There is no password in passwd table associated with $MGT"
return 1;
fi
}
function modify_passwd_table(){
Username=`cat $TMPFILE |awk -F "\"" '{print $4}'`;
Passwd=`cat $TMPFILE |awk -F "\"" '{print $6}'`;
`chtab key=$MGT passwd.password=$Passwd.wrong passwd.username=$Username`;
tabdump passwd;
cmd="chtab key=$MGT passwd.password=$Passwd.wrong passwd.username=$Username";
runcmd $cmd;
cmd="tabdump passwd";
runcmd $cmd;
}
function add_passwd_table()
{
`chtab key=$MGT passwd.password=$2 passwd.username=$3`;
rpower $1 stat
cmd="chtab key=$MGT passwd.password=$2 passwd.username=$3";
runcmd $cmd;
cmd="rpower $1 stat";
runcmd $cmd;
if [ $? -eq 0 ];then
`chtab key=$MGT passwd.password=$2.wrong passwd.username=$3`;
tabdump passwd;
cmd="chtab key=$MGT passwd.password=$2.wrong passwd.username=$3";
runcmd $cmd;
cmd="tabdump passwd";
runcmd $cmd;
else
echo "wrong password";
echo "rpower $1 stat failed.Wrong password is provided, please check bmc username and password";
fi
}
function modify_node_definition()
{
chdef $1 bmcpassword=$2 bmcusername=$3
rpower $1 stat
cmd="chdef $1 bmcpassword=$2 bmcusername=$3";
runcmd $cmd;
cmd="rpower $1 stat";
runcmd $cmd;
if [ $? -eq 0 ];then
chdef $1 bmcpassword=$2.wrong bmcusername=$3;
tabdump passwd;
runcmd "chdef $1 bmcpassword=$2.wrong bmcusername=$3";
runcmd "tabdump passwd";
else
echo "wrong password";
echo "rpower $1 stat failed.Wrong password is provided, please check bmc username and password";
fi
}
function clear_env(){
if [ -f $TMPFILE ];then
Username=`cat $TMPFILE |awk -F "\"" '{print $4}'`;
Passwd=`cat $TMPFILE |awk -F "\"" '{print $6}'`;
chtab key=$MGT passwd.password=$Passwd passwd.username=$Username;tabdump passwd;
chdef $1 bmcpassword= bmcusername=;
cmd="chtab key=$MGT passwd.password=$Passwd passwd.username=$Username";
runcmd $cmd;
cmd="tabdump passwd";
runcmd $cmd;
cmd="chdef $1 bmcpassword= bmcusername=";
runcmd $cmd;
rm -rf $TMPFILE;
else
`chtab -d key=$MGT passwd`;
chdef $1 bmcpassword= bmcusername=;
cmd="chtab -d key=$MGT passwd";
runcmd $cmd;
cmd="chdef $1 bmcpassword= bmcusername=";
runcmd $cmd;
fi
}
function check_result(){
output=$(rpower $1 stat 2>&1)
echo output is $output
echo "rpower $1 stat output is $output"
value="";
if [[ `lsdef $1 |grep mgt ` =~ "ipmi" ]];then
value="Incorrect password provided";
@ -59,23 +92,21 @@ value="";
if [[ $output =~ $value ]];then
return 0;
else
echo "The expected output is \"$value\" since there password is wrong, but the real output is $output"
return 1;
fi
}
echo "0 ARG: $0"
SCRIPT=$(readlink -f $0)
echo "SCRIPT=$SCRIPT"
TMPFILE="/tmp/xcat-test-`basename $SCRIPT`.tmp"
echo "TMPFILE=$TMPFILE"
MGT=""
if [[ `lsdef $2 |grep mgt` =~ "ipmi" ]];then
MGT="ipmi";
else
MGT="openbmc";
fi
echo mgt is $MGT
echo "The node $2's mgt is defined as $MGT"
while [ "$#" -gt "0" ]
do
case $1 in
@ -103,7 +134,8 @@ do
"-apt"|"--addpasswdtable" )
check_passwd_table
if [[ $? -eq 0 ]];then
`chtab -d key=ipmi passwd`;
cmd="chtab -d key=ipmi passwd";
runcmd $cmd;
if [[ $? -eq 1 ]];then
exit 1
fi