mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-31 11:22:27 +00:00 
			
		
		
		
	Merge pull request #2593 from zet809/fix_issue_2362
fix issue 2362: If packimage is not run, osimage in the chain table w…
This commit is contained in:
		| @@ -422,7 +422,11 @@ while :; do | ||||
| 		logger -s -t $log_label -p local4.info "Poweroff..." | ||||
| 		poweroff -f | ||||
| 	else  | ||||
| 		logger -s -t $log_label -p local4.err "Unrecognized directive (dest=$dest)" | ||||
|                 if [ "$dest" = error ]; then | ||||
|                     logger -s -t $log_label -p local4.info "$destparameter" | ||||
|                 else | ||||
| 		    logger -s -t $log_label -p local4.err "Unrecognized directive (dest=$dest)" | ||||
|                 fi | ||||
| 		destiny='' | ||||
| 		dest='' | ||||
| 		delay=$((30+$RANDOM%270)) | ||||
|   | ||||
| @@ -7,23 +7,30 @@ echo "<xcatrequest> | ||||
| <callback_port>300</callback_port> | ||||
| </xcatrequest>" > /tmp/destreq.xml | ||||
| if [ -f /tmp/destiny.xml ]; then rm /tmp/destiny.xml; fi | ||||
| while [ ! -f /tmp/destiny.xml ] || grep error /tmp/destiny.xml; do | ||||
| 	if [ -f /tmp/destiny.xml ]; then | ||||
| 		timer=60 | ||||
| 		while [ $timer -gt 0 ]; do | ||||
| 			echo -en  "Retrying in $timer seconds  \r" >&2 | ||||
| 			sleep 1 | ||||
| 			timer=$(($timer-1)); | ||||
| 		done | ||||
| 	fi | ||||
| timer=0 | ||||
| while [ ! -f /tmp/destiny.xml ]; do | ||||
| 	while [ $timer -gt 0 ]; do | ||||
| 		echo -en  "No destiny command received, retrying in $timer seconds  \r" >&2 | ||||
| 		sleep 1 | ||||
| 		timer=$(($timer-1)); | ||||
| 	done | ||||
| 	echo "                                                         " >&2; | ||||
| 	if [ -f /etc/xcat/cert.pem -a -f /etc/xcat/certkey.pem ]; then #use client cert if available | ||||
| 		cat /tmp/destreq.xml | openssl s_client -key /etc/xcat/certkey.pem -cert /etc/xcat/cert.pem -connect $XCATDEST -quiet 2> /dev/null > /tmp/destiny.xml | ||||
| 	else | ||||
| 		cat /tmp/destreq.xml | openssl s_client -connect $XCATDEST -quiet 2> /dev/null > /tmp/destiny.xml | ||||
| 	fi | ||||
| 	timer=60 | ||||
| done | ||||
| rm /tmp/destreq.xml | ||||
| DESTINY=`grep '<destiny>' /tmp/destiny.xml | awk -F'>' '{print $2}'|awk -F'<' '{print $1}'` | ||||
| if [ -z "$DESTINY" ]; then | ||||
|     ERROR=`grep '<error>' /tmp/destiny.xml | awk -F'>' '{print $2}'|awk -F'<' '{print $1}'` | ||||
|     if [ ! -z "$ERROR" ]; then | ||||
|         DESTINY="error=$ERROR" | ||||
|     else | ||||
|         DESTINY="error=No destiny command received" | ||||
|     fi | ||||
| fi | ||||
| rm /tmp/destiny.xml | ||||
| echo $DESTINY | ||||
|   | ||||
| @@ -400,10 +400,7 @@ sub setdestiny { | ||||
|                     ignorekernelchk => $ignorekernelchk, | ||||
|                     bootparams => \$bphash}, \&relay_response); | ||||
|             if ($errored) { | ||||
|                 my @myself = xCAT::NetworkUtils->determinehostname(); | ||||
|                 my $myname = $myself[ (scalar @myself) - 1 ]; | ||||
|                 # The callback function point to xcatd::build_response, it use dclone to clone data, but it can only accept a reference. The error msg here is a simple string, and will cause dclone failed. Seems to be string array can be used by dclone. | ||||
|                 $callback->({ errorcode => [1], error => ["Some nodes failed to set up $state resources on server $myname, aborting"] }); | ||||
|                 # The error messeage for mkinstall/mknetboot/mkstatelite had been output within relay_response function above, don't need to output more | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user