diff --git a/xCAT-test/autotest/testcase/simulator/change_ip.sh b/xCAT-test/autotest/testcase/simulator/change_ip.sh deleted file mode 100755 index 59fb80b0a..000000000 --- a/xCAT-test/autotest/testcase/simulator/change_ip.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -flag=$1 -mnhn=$2 -cnhn=$3 - -if [ $flag = "-s" ]; then - cnip=`lsdef $cnhn -i bmc -c | awk -F '=' '{print $2}'` - echo $cnip > "/tmp/simulator" - mnip=`ping $mnhn -c 1 | grep "64 bytes from" |awk -F'(' '{print $2}'|awk -F')' '{print $1}'` - chdef $cnhn bmc=$mnip -elif [ $flag = "-c" ]; then - cnip=`cat /tmp/simulator` - chdef $cnhn bmc=$cnip - process=`ps aux | grep "simulator" | grep "python" | awk -F ' ' '{print $2}'` - if [ $process ]; then - kill $process - fi - rm -rf "openbmc_simulator" -fi -exit $? diff --git a/xCAT-test/autotest/testcase/simulator/clear_simulator b/xCAT-test/autotest/testcase/simulator/clear_simulator index 61e2207c9..03c442fd9 100644 --- a/xCAT-test/autotest/testcase/simulator/clear_simulator +++ b/xCAT-test/autotest/testcase/simulator/clear_simulator @@ -1,5 +1,23 @@ start:clear_openbmc_simulator description:clear evironment -cmd:/opt/xcat/share/xcat/tools/autotest/testcase/simulator/change_ip.sh -c $$MN $$CN +cmd:/opt/xcat/share/xcat/tools/autotest/testcase/simulator/config_simulator.sh -c $$MN $$CN +check:rc==0 +end + +start:clear_openbmc_simulator_multiple_100 +description:clear evironment that simulate 100 OpenBMCs +cmd:/opt/xcat/share/xcat/tools/autotest/testcase/simulator/config_simulator.sh -c $$MN $$CN $$bmcusername $$bmcpasswd 100 +check:rc==0 +end + +start:clear_openbmc_simulator_multiple_1000 +description:clear evironment that simulate 1000 OpenBMCs +cmd:/opt/xcat/share/xcat/tools/autotest/testcase/simulator/config_simulator.sh -c $$MN $$CN $$bmcusername $$bmcpasswd 1000 +check:rc==0 +end + +start:clear_openbmc_simulator_multiple_5000 +description:clear evironment that simulate 5000 OpenBMCs +cmd:/opt/xcat/share/xcat/tools/autotest/testcase/simulator/config_simulator.sh -c $$MN $$CN $$bmcusername $$bmcpasswd 5000 check:rc==0 end diff --git a/xCAT-test/autotest/testcase/simulator/config_simulator.sh b/xCAT-test/autotest/testcase/simulator/config_simulator.sh new file mode 100755 index 000000000..80860227a --- /dev/null +++ b/xCAT-test/autotest/testcase/simulator/config_simulator.sh @@ -0,0 +1,74 @@ +#!/bin/bash + +flag=$1 # -s:setup simulator -c:clear simulator env +mnhn=$2 # MN hostname +cnhn=$3 # CN hostname +username=$4 # bmcusername +password=$5 # bmcpassword +nodes=$6 # number of IPs want to config + +if [ $nodes -gt 10000 ]; then + echo "Unsupported number of nodes: $nodes" + exit 1 +fi + +mnip=`ping $mnhn -c 1 | grep "64 bytes from" |awk -F'(' '{print $2}'|awk -F')' '{print $1}'` +if [ $nodes ]; then + nic=`ip -4 -o a | grep $mnip | awk -F ' ' '{print $2}'` + + ((a=$nodes/100)) + ((b=$nodes%100)) + if [ $b -eq 0 ]; then + b=100 + fi + range=`for((i=1;i<=$a;i++)); do for((m=1;m<=$b;m++)); do echo -n "10.100.$i.$m ";done; done` +fi + +if [ $flag = "-s" ]; then + os=`cat /etc/*release*` + if [[ "$os" =~ "Red Hat" ]] || [[ "$os" =~ "suse" ]]; then + yum install git -y + if [ $? != 0 ]; then + echo "Install git Failed" + exit 1 + fi + elif [[ "$os" =~ "ubuntu" ]]; then + apt-get install git -y + if [ $? != 0 ]; then + echo "Install git Failed" + exit 1 + fi + fi + + cd /root/ && git clone git@github.com:xuweibj/openbmc_simulator.git + + if [ $nodes ]; then + lsdef $cnhn -z > /tmp/$cnhn.stanza + rmdef $cnhn + + /root/openbmc_simulator/simulator -n $nic -r $range + + node_end=$[nodes-1] + chdef -t group $cnhn mgt=openbmc bmc="|\D+(\d+)$|10.100.(1+((\$1)/100)).((\$1)%100+1)|" bmcusername=$username bmcpassword=$password + chdef simulator_test_[0-$node_end] groups=$cnhn # use CN hostname as group, so when run command against CN will rpower against all nodes added here + else + cnip=`lsdef $cnhn -i bmc -c | awk -F '=' '{print $2}'` + echo $cnip > "/tmp/simulator" + mnip=`ping $mnhn -c 1 | grep "64 bytes from" |awk -F'(' '{print $2}'|awk -F')' '{print $1}'` + chdef $cnhn bmc=$mnip + /root/openbmc_simulator/simulator + fi +elif [ $flag = "-c" ]; then + if [ $nodes ]; then + /root/openbmc_simulator/simulator -c -n $nic -r $range + rmdef $cnhn + cat /tmp/$cnhn.stanza | mkdef -z + else + /root/openbmc_simulator/simulator -c + cnip=`cat /tmp/simulator` + chdef $cnhn bmc=$cnip + fi + + rm -rf /root/openbmc_simulator +fi +exit $? diff --git a/xCAT-test/autotest/testcase/simulator/setup_simulator b/xCAT-test/autotest/testcase/simulator/setup_simulator index 6a4bb71f6..8ab412829 100644 --- a/xCAT-test/autotest/testcase/simulator/setup_simulator +++ b/xCAT-test/autotest/testcase/simulator/setup_simulator @@ -1,24 +1,23 @@ start:setup_openbmc_simulator description:install dependent packaages, setup and start openbmc simulator -cmd:#!/bin/bash -os=`cat /etc/*release*` -if [[ "$os" =~ "Red Hat" ]] || [[ "$os" =~ "suse" ]]; then - yum install git -y - if [ $? != 0 ]; then - exit 1 - fi -elif [[ "$os" =~ "ubuntu" ]]; then - apt-get install git -y - if [ $? != 0 ]; then - exit 1 - fi -fi -exit 0 -check:rc==0 -cmd:cd /root/ && git clone git@github.com:xuweibj/openbmc_simulator.git -check:rc==0 -cmd:/root/openbmc_simulator/simulator & -check:rc==0 -cmd:/opt/xcat/share/xcat/tools/autotest/testcase/simulator/change_ip.sh -s $$MN $$CN +cmd:/opt/xcat/share/xcat/tools/autotest/testcase/simulator/config_simulator.sh -s $$MN $$CN +check:rc==0 +end + +start:setup_openbmc_simulator_multiple_100 +description:install dependent packaages, setup and start 100 openbmc simulator +cmd:/opt/xcat/share/xcat/tools/autotest/testcase/simulator/config_simulator.sh -s $$MN $$CN $$bmcusername $$bmcpasswd 100 +check:rc==0 +end + +start:setup_openbmc_simulator_multiple_1000 +description:install dependent packaages, setup and start 1000 openbmc simulator +cmd:/opt/xcat/share/xcat/tools/autotest/testcase/simulator/config_simulator.sh -s $$MN $$CN $$bmcusername $$bmcpasswd 1000 +check:rc==0 +end + +start:setup_openbmc_simulator_multiple_5000 +description:install dependent packaages, setup and start 5000 openbmc simulator +cmd:/opt/xcat/share/xcat/tools/autotest/testcase/simulator/config_simulator.sh -s $$MN $$CN $$bmcusername $$bmcpasswd 5000 check:rc==0 end