-defect 2988177 is fixed;
correct the method to detect servicenode, and update the method to handle variables in statelite table git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@5793 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
		| @@ -440,8 +440,9 @@ sub mknetboot | ||||
| 		"NFSROOT=$nfssrv:$nfsdir STATEMNT=";	 | ||||
|  | ||||
|         # add support for subVars in the value of "statemnt" | ||||
|         my $statemnt = ""; | ||||
| 		if (exists($stateHash->{$node})) { | ||||
|             my $statemnt = $stateHash->{$node}->[0]->{statemnt}; | ||||
|             $statemnt = $stateHash->{$node}->[0]->{statemnt}; | ||||
|             if (grep /\$/, $statemnt) { | ||||
|                 my ($server, $dir) = split(/:/, $statemnt); | ||||
|                  | ||||
| @@ -457,25 +458,23 @@ sub mknetboot | ||||
|                 if($server) {  | ||||
|                     $server = subVars($server, $node, 'server', $callback); | ||||
|                 } | ||||
|                 $kcmdline .= $server . ":" . $dir . " "; | ||||
|             } else { | ||||
| 		        $kcmdline .= $stateHash->{$node}->[0]->{statemnt} . " "; | ||||
|                 $statemnt = $server . ":" . $dir; | ||||
|             } | ||||
| 		} else { | ||||
| 		    $kcmdline .= " "; | ||||
| 		} | ||||
| 		$kcmdline .= $statemnt ." "; | ||||
| 		$kcmdline .= | ||||
| 			"XCAT=$xcatmaster:$xcatdport "; | ||||
|         # BEGIN service node | ||||
|         my $isSV = xCAT::Utils->isServiceNode(); | ||||
|         my $res = xCAT::Utils->runcmd("hostname", 0); | ||||
|         my $sip = inet_ntoa(inet_aton($res));  # this is the IP of service node | ||||
|         if(($xcatmaster eq $sip) or ($xcatmaster eq $res)) { | ||||
|         if($isSV and (($xcatmaster eq $sip) or ($xcatmaster eq $res))) { | ||||
|             # if the NFS directory in litetree is on the service node, | ||||
|             # and it is not exported, then it will be mounted automatically | ||||
|             setupNFSTree($node, $sip, $callback); | ||||
|             # then, export the statemnt directory if it is on the service node | ||||
|             if($stateHash->{$node}->[0]->{statemnt}) { | ||||
|                 setupStatemnt($sip, $stateHash->{$node}->[0]->{statemnt}, $callback); | ||||
|             if($statemnt) { | ||||
|                 setupStatemnt($sip, $statemnt, $callback); | ||||
|             } | ||||
|         } | ||||
|         # END service node | ||||
|   | ||||
| @@ -306,8 +306,9 @@ sub mknetboot | ||||
|             $kcmdline =  | ||||
|                 "NFSROOT=$nfssrv:$nfsdir STATEMNT="; | ||||
|             # add support for subVars in the value of "statemnt" | ||||
|             my $statemnt=""; | ||||
|             if (exists($stateHash->{$node})) { | ||||
|                 my $statemnt = $stateHash->{$node}->[0]->{statemnt}; | ||||
|                 $statemnt = $stateHash->{$node}->[0]->{statemnt}; | ||||
|                 if (grep /\$/, $statemnt) { | ||||
|                     my ($server, $dir) = split(/:/, $statemnt); | ||||
|                      | ||||
| @@ -323,28 +324,26 @@ sub mknetboot | ||||
|                     if($server) { | ||||
|                         $server = subVars($server, $node, 'server', $callback); | ||||
|                     } | ||||
|                     $kcmdline .= $server . ":" . $dir . " "; | ||||
|                 } else { | ||||
|                     $kcmdline .= $stateHash->{$node}->[0]->{statemnt} . " "; | ||||
|                     $statemnt = $server . ":" . $dir; | ||||
|                 } | ||||
|             } else { | ||||
|                 $kcmdline .= " "; | ||||
|             } | ||||
|             $kcmdline .= $statemnt . " "; | ||||
|             # get "xcatmaster" value from the "noderes" table | ||||
|              | ||||
|             $kcmdline .= | ||||
|                 "XCAT=$xcatmaster:$xcatdport "; | ||||
|  | ||||
|             #BEGIN service node  | ||||
|             my $isSV = xCAT::Utils->isServiceNode(); | ||||
|             my $res = xCAT::Utils->runcmd("hostname", 0); | ||||
|             my $sip = inet_ntoa(inet_aton($res));  # this is the IP of service node | ||||
|             if(($xcatmaster eq $sip) or ($xcatmaster eq $res)) { | ||||
|             if($isSV and (($xcatmaster eq $sip) or ($xcatmaster eq $res))) { | ||||
|                 # if the NFS directory in litetree is on the service node,  | ||||
|                 # and it is not exported, then it will be mounted automatically  | ||||
|                 setupNFSTree($node, $sip, $callback); | ||||
|                 # then, export the statemnt directory if it is on the service node | ||||
|                 if($stateHash->{$node}->[0]->{statemnt}) { | ||||
|                     setupStatemnt($sip, $stateHash->{$node}->[0]->{statemnt}, $callback); | ||||
|                 if($statemnt) { | ||||
|                     setupStatemnt($sip, $statemnt, $callback); | ||||
|                 } | ||||
|             } | ||||
|             #END sevice node  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user