Fixed nodeset code to accept profile.os.arch.tmpl, profile.os-base.arch.tmpl, profile.arch.tmpl, and profile.tmpl.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@11612 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
		| @@ -631,7 +631,10 @@ sub changeVM { | ||||
| 		$out = `ssh $hcp "$::DIR/add3390 $userId $pool $addr $cyl $mode $readPw $writePw $multiPw"`; | ||||
| 		 | ||||
| 		# Add to active configuration | ||||
| 		$out .= `ssh $hcp "$::DIR/add3390active $userId $addr $mode"`; | ||||
| 		my $ping = `pping $node`; | ||||
| 		if ($ping =~ m/ping/i) { | ||||
| 			$out .= `ssh $hcp "$::DIR/add3390active $userId $addr $mode"`; | ||||
| 		}		 | ||||
| 		$out = xCAT::zvmUtils->appendHostname( $node, $out ); | ||||
| 	} | ||||
|  | ||||
| @@ -3215,12 +3218,44 @@ sub nodeSet { | ||||
| 			@tmp = split( /\./, $os ); | ||||
| 		} | ||||
| 		my $osBase = $tmp[0]; | ||||
| 		 | ||||
| 		# Get node distro | ||||
| 		my $distro = ""; | ||||
| 		if ( $os =~ m/sles/i ) { | ||||
| 			$distro = "sles"; | ||||
| 		} elsif ( $os =~ m/rhel/i ) { | ||||
| 			$distro = "rh"; | ||||
| 		} else { | ||||
| 			xCAT::zvmUtils->printLn( $callback, "$node: (Error) Unable to determine node Linux distribution" ); | ||||
| 			xCAT::zvmUtils->printLn( $callback, "$node: (Solution) Verify the node Linux distribution is either sles* or rh*" ); | ||||
| 			return; | ||||
| 		} | ||||
|  | ||||
| 		# Get autoyast/kickstart template | ||||
| 		my $tmpl = "$profile.$osBase.$arch.tmpl"; | ||||
| 		 | ||||
| 		# Also check for $profile.$os.$arch.tmpl | ||||
| 		 | ||||
| 		my $tmpl; | ||||
| 				 | ||||
| 		# Check for $profile.$os.$arch.tmpl | ||||
| 		if ( -e "$installDir/custom/install/$distro/$profile.$os.$arch.tmpl" ) { | ||||
| 			$tmpl = "$profile.$os.$arch.tmpl"; | ||||
| 		}  | ||||
| 		# Check for $profile.$osBase.$arch.tmpl | ||||
| 		elsif ( -e "$installDir/custom/install/$distro/$profile.$osBase.$arch.tmpl" ) { | ||||
| 			$tmpl = "$profile.$osBase.$arch.tmpl"; | ||||
| 		}   | ||||
| 		# Check for $profile.$arch.tmpl | ||||
| 		elsif ( -e "$installDir/custom/install/$distro/$profile.$arch.tmpl" ) { | ||||
| 			$tmpl = "$profile.$arch.tmpl"; | ||||
| 		} | ||||
| 		# Check for $profile.tmpl second | ||||
| 		elsif ( -e "$installDir/custom/install/$distro/$profile.tmpl" ) { | ||||
| 			$tmpl = "$profile.tmpl"; | ||||
| 		} | ||||
| 		else { | ||||
| 			# No template exists | ||||
| 			xCAT::zvmUtils->printLn( $callback, "$node: (Error) Missing autoyast/kickstart template" ); | ||||
| 			xCAT::zvmUtils->printLn( $callback, "$node: (Solution) Create a template under $installDir/custom/install/$distro/" ); | ||||
| 			return; | ||||
| 		} | ||||
|  | ||||
| 		# Get host IP and hostname from /etc/hosts | ||||
| 		$out = `cat /etc/hosts | grep "$node "`; | ||||
| @@ -3229,16 +3264,27 @@ sub nodeSet { | ||||
| 		my $hostname = $words[2]; | ||||
| 		if ( !$hostIP || !$hostname ) { | ||||
| 			xCAT::zvmUtils->printLn( $callback, "$node: (Error) Missing IP for $node in /etc/hosts" ); | ||||
| 			xCAT::zvmUtils->printLn( $callback, "$node: (Solution) Verify that the node's IP address is specified in the hosts table and then run makehosts" ); | ||||
| 			xCAT::zvmUtils->printLn( $callback, "$node: (Solution) Verify that the nodes IP address is specified in the hosts table and then run makehosts" ); | ||||
| 			return; | ||||
| 		} | ||||
|  | ||||
| 		# Check template if DHCP is used | ||||
| 		my $dhcp = 0; | ||||
| 		if ( -e "$installDir/custom/install/sles/$tmpl" ) { | ||||
| 			$out = `cat $installDir/custom/install/sles/$tmpl | egrep -i "<bootproto>"`; | ||||
| 			if ($out =~ m/dhcp/i) { | ||||
| 				$dhcp = 1; | ||||
| 		if ($distro eq "sles") { | ||||
| 			# Check autoyast template | ||||
| 			if ( -e "$installDir/custom/install/sles/$tmpl" ) { | ||||
| 				$out = `cat $installDir/custom/install/sles/$tmpl | egrep -i "<bootproto>"`; | ||||
| 				if ($out =~ m/dhcp/i) { | ||||
| 					$dhcp = 1; | ||||
| 				} | ||||
| 			} | ||||
| 		} elsif ($distro eq "rh") { | ||||
| 			# Check kickstart template | ||||
| 			if ( -e "$installDir/custom/install/rh/$tmpl" ) { | ||||
| 				$out = `cat $installDir/custom/install/rh/$tmpl | egrep -i "--bootproto dhcp"`; | ||||
| 				if ($out =~ m/dhcp/i) { | ||||
| 					$dhcp = 1; | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user