mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-30 19:02:27 +00:00 
			
		
		
		
	Improve genesistest test script
This commit is contained in:
		| @@ -100,6 +100,10 @@ if ($genesis_nodesetshell_test) { | ||||
|         send_msg(0, "[$$]:rpower $noderange failed..............."); | ||||
|         exit 1; | ||||
|     } | ||||
|     else { | ||||
|         send_msg(2, "Installing with \"nodeset $noderange shell\" for shell test"); | ||||
|         sleep 180; # wait 3 min for install to finish | ||||
|     } | ||||
|     #run nodeshell test | ||||
|     send_msg(2, "prepare for nodeshell script."); | ||||
|     if ( &testxdsh(3)) { | ||||
| @@ -208,6 +212,7 @@ sub rungenesiscmd { | ||||
|     } | ||||
|     else { | ||||
|         send_msg(2, "Installing with \"$rinstall_cmd\" for runcmd test"); | ||||
|         sleep 180; # wait 3 min for install to finish | ||||
|     } | ||||
|     return $value; | ||||
| } | ||||
| @@ -242,10 +247,14 @@ sub rungenesisimg { | ||||
|     chmod 0755, "/install/my_image/runme.sh"; | ||||
|     `tar -zcvf /tmp/my_image.tgz -C /install/my_image .`; | ||||
|     copy("/tmp/my_image.tgz", "/install/my_image") or die "Copy failed: $!"; | ||||
|     `rinstall $noderange "runimage=http://$master/install/my_image/my_image.tgz",shell`; | ||||
|     my $rinstall_cmd = "rinstall $noderange runimage=http://$master/install/my_image/my_image.tgz,shell"; | ||||
|     `$rinstall_cmd`; | ||||
|     if ($?) { | ||||
|         send_msg(0, "rinstall noderange runimage=* failed\n"); | ||||
|         send_msg(0, "Command \"$rinstall_cmd\" failed for runimage test\n"); | ||||
|         $value = -1; | ||||
|     } else { | ||||
|         send_msg(2, "Installing with \"$rinstall_cmd\" for runimage test\n"); | ||||
|         sleep 180; # wait 3 min for install to finish | ||||
|     } | ||||
|     return $value; | ||||
| } | ||||
| @@ -257,6 +266,7 @@ sub testxdsh { | ||||
|     my $checkstring; | ||||
|     my $checkfile; | ||||
|     my $nodestatus; | ||||
|     my $xdsh_out; | ||||
|     if ($value == 1) { | ||||
|         #mean runcmd test using test scripts genesistest.pl writes | ||||
|         $checkstring = "testcmd"; | ||||
| @@ -268,24 +278,26 @@ sub testxdsh { | ||||
|         $checkstring = "destiny=shell"; | ||||
|         $checkfile   = "/proc/cmdline"; | ||||
|     } elsif ($value == -1) { | ||||
|         send_msg(2,"Error setting up the node for testxdsh"); | ||||
|         send_msg(0,"Error setting up the node for testxdsh"); | ||||
|         return 1; | ||||
|     } | ||||
|  | ||||
|     send_msg(2, "Node $noderange has been installed with genesis shell. Checking $checkfile file on that node contains '$checkstring' \n"); | ||||
|     my $xdsh_command="xdsh $noderange -t 2 cat $checkfile 2>&1|grep $checkstring"; | ||||
|     send_msg(2, "Node $noderange has been installed with genesis shell for test value $value \n"); | ||||
|     send_msg(2, "Checking $checkfile file on that node contains '$checkstring' \n"); | ||||
|     my $xdsh_command="xdsh $noderange -t 2 cat $checkfile 2>&1"; | ||||
|     if (($value == 1) || ($value == 2) || ($value == 3)) { | ||||
|         `$xdsh_command`; | ||||
|         `$xdsh_command | grep $checkstring`; | ||||
|         if ($?) { | ||||
|             # First attempt to run xdsh failed, display console log to see what happened, then try few more times | ||||
|             my $console_log = `nodels $noderange | xargs -I % tail -v --lines 25 /var/log/consoles/%.log`; | ||||
|             send_msg(2, "Console log: $console_log \n"); | ||||
|             my @i = (1..5); | ||||
|             my @i = (1..3); | ||||
|             for (@i) { | ||||
|                 sleep 300; | ||||
|                 $xdsh_out=`$xdsh_command`; | ||||
|                 $nodestatus=`lsdef $noderange -i status -c  2>&1 | awk -F'=' '{print \$2}'`; | ||||
|                 send_msg(1,"[$_] Running \"$xdsh_command\" to check results. Node status: $nodestatus"); | ||||
|                 `$xdsh_command`; | ||||
|                 send_msg(1,"[$_] \"$xdsh_command\" returned: $xdsh_out. Node status: $nodestatus"); | ||||
|                 sleep 180; | ||||
|                 `$xdsh_command | grep $checkstring`; | ||||
|                 last if ($? == 0); | ||||
|             } | ||||
|         } | ||||
| @@ -375,7 +387,9 @@ sub send_msg { | ||||
|     my $logfile    = ""; | ||||
|     my $logfiledir = "/tmp/genesistestlog"; | ||||
|     my $date = `date  +"%Y%m%d"`; | ||||
|     my $time = `date  +"%T"`; | ||||
|     chomp($date); | ||||
|     chomp($time); | ||||
|     if (!-e $logfiledir) | ||||
|     { | ||||
|         mkpath( $logfiledir ); | ||||
| @@ -386,13 +400,13 @@ sub send_msg { | ||||
|     } elsif ($log_level == 1) { | ||||
|         $content = "Warning:"; | ||||
|     } elsif ($log_level == 2) { | ||||
|         $content = "Notice:"; | ||||
|         $content = "Info:"; | ||||
|     } | ||||
|     if (!open(LOGFILE, ">> $logfiledir/$logfile")) { | ||||
|         return 1; | ||||
|     } | ||||
|      | ||||
|     print "$date $$ $content $msg\n"; | ||||
|     print "$date $time $$ $content $msg\n"; | ||||
|     print LOGFILE "$date $$ $content $msg\n"; | ||||
|     close LOGFILE; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user