diff --git a/xCAT-test/autotest/testcase/rpower/cases0 b/xCAT-test/autotest/testcase/rpower/cases0 index 40dfa7a08..c7a1f70af 100644 --- a/xCAT-test/autotest/testcase/rpower/cases0 +++ b/xCAT-test/autotest/testcase/rpower/cases0 @@ -152,44 +152,35 @@ cmd:rpower $$CN onstandby cmd:a=0;while ! `rpower $$CN stat|grep "standby\|Standby" >/dev/null`; do sleep 5;((a++));if [ $a -gt 11 ];then break;fi done check:ouptut=~standby|Standby end -start:rpower_suspend_OpenpowerBmc -description:rpower openpowerbmc using suspend +start:rpower__wrongpasswd +description:rpower ipmi and openbmc using wrong passwd Attribute: $$CN-The operation object of rpower command +cmd:/opt/xcat/share/xcat/tools/autotest/testcase/rpower/rpower_wrongpasswd_test.sh -pt $$CN $$rightbmcpasswd $$rightbmcusername +check:rc==0 +cmd:/opt/xcat/share/xcat/tools/autotest/testcase/rpower/rpower_wrongpasswd_test.sh -c $$CN +check:rc==0 +cmd:/opt/xcat/share/xcat/tools/autotest/testcase/rpower/rpower_wrongpasswd_test.sh -apt $$CN $$rightbmcpasswd $$rightbmcusername +check:rc==0 +cmd:/opt/xcat/share/xcat/tools/autotest/testcase/rpower/rpower_wrongpasswd_test.sh -c $$CN +check:rc==0 +end +start:rpower_suspend_OpenpowerBmc cmd:rpower $$CN suspend check:output=~Error: unsupported command rpower suspend for OpenPOWER check:rc==1 end start:rpower_softoff_OpenpowerBmc -description:rpower openpowerbmc using softoff -Attribute: $$CN-The operation object of rpower command cmd:rpower $$CN softoff check:output=~Error: unsupported command rpower softoff for OpenPOWER check:rc==1 end start:rpower_wake_OpenpowerBmc -description:rpower openpowerbmc using wake -Attribute: $$CN-The operation object of rpower command cmd:rpower $$CN wake check:output=~Error: unsupported command rpower wake for OpenPOWER check:rc==1 end start:rpower_errorcommand_OpenpowerBmc -description:rpower openpowerbmc using errorcommand -Attribute: $$CN-The operation object of rpower command cmd:rpower $$CN ddd -check:output=~Unsupported command: +check:output=~Unsupported command: check:rc==1 end -start:rpower_ipmi_wrongpasswd -description:rpower ipmi and its password wrong -Attribute: $$CN-The operation object of rpower command -cmd:/opt/xcat/share/xcat/tools/autotest/testcase/rpower/rpower_ipmi_wrongpasswd_test.sh -pt $$CN $$ipmipasswd $$ipminame -check:rc==0 -cmd:/opt/xcat/share/xcat/tools/autotest/testcase/rpower/rpower_ipmi_wrongpasswd_test.sh -c $$CN -check:rc==0 -cmd:/opt/xcat/share/xcat/tools/autotest/testcase/rpower/rpower_ipmi_wrongpasswd_test.sh -apt $$CN $$ipmipasswd $$ipminame -check:rc==0 -cmd:/opt/xcat/share/xcat/tools/autotest/testcase/rpower/rpower_ipmi_wrongpasswd_test.sh -c $$CN -check:rc==0 -end - diff --git a/xCAT-test/autotest/testcase/rpower/rpower_wrongpasswd_test.sh b/xCAT-test/autotest/testcase/rpower/rpower_wrongpasswd_test.sh new file mode 100755 index 000000000..1e0b41222 --- /dev/null +++ b/xCAT-test/autotest/testcase/rpower/rpower_wrongpasswd_test.sh @@ -0,0 +1,136 @@ +#!/bin/bash +function check_passwd_table(){ +tabdump passwd |grep $MGT + if [ $? -eq 0 ];then + `tabdump passwd |grep $MGT>$TMPFILE` + else + 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; +} +function add_passwd_table() +{ +`chtab key=$MGT passwd.password=$2 passwd.username=$3`; +rpower $1 stat + if [ $? -eq 0 ];then + `chtab key=$MGT passwd.password=$2.wrong passwd.username=$3`; + tabdump passwd; + else + echo "wrong password"; + fi +} +function modify_node_definition() +{ +chdef $1 bmcpassword=$2 bmcusername=$3 +rpower $1 stat + if [ $? -eq 0 ];then + chdef $1 bmcpassword=$2.wrong bmcusername=$3; + tabdump passwd; + else + echo "wrong 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=; + rm -rf $TMPFILE; + else + `chtab -d key=$MGT passwd`; + chdef $1 bmcpassword= bmcusername=; + fi +} +function check_result(){ +output=$(rpower $1 stat 2>&1) +echo output is $output +value=""; + if [[ `lsdef $1 |grep mgt ` =~ "ipmi" ]];then + value="Incorrect password provided"; + else + value="Error: Invalid username or password"; + fi + if [[ $output =~ $value ]];then + return 0; + else + 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 +while [ "$#" -gt "0" ] +do + case $1 in + "-pt"|"--passwdtable" ) + check_passwd_table + if [[ $? -eq 0 ]];then + modify_passwd_table + check_result $2 + if [[ $? -eq 1 ]];then + exit 1 + else + exit 0 + fi + + else + add_passwd_table $2 $3 $4 + check_result $2 + if [[ $? -eq 1 ]];then + exit 1 + else + exit 0 + fi + fi + ;; + "-apt"|"--addpasswdtable" ) + check_passwd_table + if [[ $? -eq 0 ]];then + `chtab -d key=ipmi passwd`; + if [[ $? -eq 1 ]];then + exit 1 + fi + fi + modify_node_definition $2 $3 $4 + check_result $2 + if [[ $? -eq 1 ]];then + exit 1 + else + exit 0 + fi + ;; + "-c"|"--clear" ) + clear_env $2 + if [[ $? -eq 1 ]];then + exit 1 + else + exit 0 + fi + ;; + *) + echo + echo "Please Insert $0: -pt|-apt|-c" + echo + exit 1; + ;; + esac +done + +