mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-31 19:32:31 +00:00 
			
		
		
		
	Fix diskless dump issue and bogus messages. Fixes bugs-2833100, 2833501, and 2830266.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@3974 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
		| @@ -669,7 +669,6 @@ ll~; | ||||
|                     } | ||||
|                 } | ||||
|  | ||||
|  | ||||
|             } | ||||
|         } | ||||
|  | ||||
| @@ -1184,50 +1183,57 @@ sub mknimimage | ||||
|             $newres{root} = $root_name; | ||||
|         } | ||||
|  | ||||
| # TODO - dump is optional with new AIX versions | ||||
| #	- should check for AIX version????? | ||||
| if (0) { | ||||
|  | ||||
| 		# | ||||
| 		# dump res | ||||
| 		#  - dump is optional with new AIX versions | ||||
| 		# | ||||
| 		my $dump_name; | ||||
| 		if ( $::attrres{dump} ) { | ||||
|  | ||||
|         	# if provided then use it | ||||
|         	$dump_name=$::attrres{dump}; | ||||
|  | ||||
| 		} elsif ($::opt_i) { | ||||
|  | ||||
|         	# if one is provided in osimage  | ||||
|         	if ($::imagedef{$::opt_i}{dump}) { | ||||
|             	$dump_name=$::imagedef{$::opt_i}{dump}; | ||||
|         	} | ||||
|  | ||||
|     	} else { | ||||
|  | ||||
| 			# may need to create new one | ||||
| 			# all use the same dump res unless another is specified | ||||
| 			$dump_name= $::image_name . "_dump"; | ||||
| 			# see if it's already defined | ||||
|         	if (grep(/^$dump_name$/, @::nimresources)) { | ||||
| 				my $rsp; | ||||
| 				push @{$rsp->{data}}, "Using existing dump resource named \'$dump_name\'.\n"; | ||||
| 				xCAT::MsgUtils->message("I", $rsp, $callback); | ||||
|         	} else { | ||||
| 				# create it | ||||
| 				my $type="dump"; | ||||
| 				if (&mknimres($dump_name, $type, $callback, $::opt_l) != 0) { | ||||
| 					my $rsp; | ||||
| 					push @{$rsp->{data}}, "Could not create a NIM definition for \'$dump_name\'.\n"; | ||||
| 					xCAT::MsgUtils->message("E", $rsp, $callback); | ||||
| 					return 1; | ||||
| 				} | ||||
| 		my $dodumpold=0; | ||||
| 		my $vrmf = xCAT::Utils->get_OS_VRMF(); | ||||
| 		if (defined($vrmf)) { | ||||
| 			if (xCAT::Utils->testversion($vrmf, "<", "6.1.4.0")) { | ||||
| 					$dodumpold=1; | ||||
| 			} | ||||
| 		} # end dump res | ||||
| 		chomp $dump_name; | ||||
|         $newres{dump} = $dump_name; | ||||
| } # end no more dump res | ||||
| 		} | ||||
|  | ||||
| 		if ($dodumpold) { | ||||
|  | ||||
| 			my $dump_name; | ||||
| 			if ( $::attrres{dump} ) { | ||||
|  | ||||
|         		# if provided then use it | ||||
|         		$dump_name=$::attrres{dump}; | ||||
|  | ||||
| 			} elsif ($::opt_i) { | ||||
|  | ||||
|         		# if one is provided in osimage  | ||||
|         		if ($::imagedef{$::opt_i}{dump}) { | ||||
|             		$dump_name=$::imagedef{$::opt_i}{dump}; | ||||
|         		} | ||||
|  | ||||
|     		} else { | ||||
|  | ||||
| 				# may need to create new one | ||||
| 				# all use the same dump res unless another is specified | ||||
| 				$dump_name= $::image_name . "_dump"; | ||||
| 				# see if it's already defined | ||||
|         		if (grep(/^$dump_name$/, @::nimresources)) { | ||||
| 					my $rsp; | ||||
| 					push @{$rsp->{data}}, "Using existing dump resource named \'$dump_name\'.\n"; | ||||
| 					xCAT::MsgUtils->message("I", $rsp, $callback); | ||||
|         		} else { | ||||
| 					# create it | ||||
| 					my $type="dump"; | ||||
| 					if (&mknimres($dump_name, $type, $callback, $::opt_l) != 0) { | ||||
| 						my $rsp; | ||||
| 						push @{$rsp->{data}}, "Could not create a NIM definition for \'$dump_name\'.\n"; | ||||
| 						xCAT::MsgUtils->message("E", $rsp, $callback); | ||||
| 						return 1; | ||||
| 					} | ||||
| 				} | ||||
| 			} # end dump res | ||||
| 			chomp $dump_name; | ||||
|         	$newres{dump} = $dump_name; | ||||
| 		} # end dodump old | ||||
|  | ||||
| 		# | ||||
| 		# paging res | ||||
| @@ -3142,7 +3148,6 @@ sub update_dd_boot { | ||||
| 			if ($::RUNCMD_RC  != 0) | ||||
| 			{ | ||||
| 				my $rsp; | ||||
|  | ||||
|         		push @{$rsp->{data}}, "Could not copy $dd_boot_file.\n"; | ||||
|         		xCAT::MsgUtils->message("E", $rsp, $callback); | ||||
|         		return 1; | ||||
| @@ -3826,42 +3831,10 @@ sub prenimnodeset | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	# | ||||
| 	# create a hash containing the locations of the NIM resources  | ||||
| 	#	that are used for each osimage | ||||
| 	# - the NIM resource names are unique! | ||||
| 	# | ||||
| 	foreach my $i (@image_names) { | ||||
| 		foreach my $restype (keys %{$imghash{$i}} ) { | ||||
| 			my @reslist; | ||||
| 			if ( grep (/^$restype$/, @nimrestypes) ) { | ||||
| 				# spot, mksysb etc. | ||||
| 				my $resname = $imghash{$i}{$restype}; | ||||
|  | ||||
| 				# if comma list - split and put in list | ||||
| 				if ($resname) { | ||||
| 					foreach (split /,/,$resname) { | ||||
| 						chomp $_; | ||||
| 						push (@reslist, $_); | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			foreach my $res (@reslist) { | ||||
| 				# go to primary NIM master to get resource defs and  | ||||
| 				#	pick out locations | ||||
| 				# TODO - handle NIM prime!! | ||||
| 				my $loc = &get_nim_attr_val($res, "location", $callback, $nimprime); | ||||
|  | ||||
| 				# add to hash | ||||
| 				$lochash{$res} = "$loc"; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	# | ||||
|     # create a NIM script resource using xcataixscript | ||||
| 	# | ||||
|  | ||||
| 	if ($add_xcataixpost) {  # if we have at least one standalone node | ||||
|  | ||||
| 		my $pre; | ||||
| @@ -3873,6 +3846,7 @@ sub prenimnodeset | ||||
|  | ||||
| 		my $createscript=0; | ||||
| 		# see if it already exists | ||||
|  | ||||
| 		my $scmd = qq~$pre /usr/sbin/lsnim -l 'xcataixscript' 2>/dev/null~; | ||||
| 		xCAT::Utils->runcmd($scmd, 0); | ||||
| 		if ($::RUNCMD_RC != 0) { | ||||
| @@ -3924,9 +3898,41 @@ sub prenimnodeset | ||||
| 		my $ecmd = qq~$pre /usr/sbin/rmnfsexp -d /install/postscripts/xcataixpost -B 2>/dev/null~; | ||||
| 		xCAT::Utils->runcmd($ecmd, 0); | ||||
|  | ||||
| 		$lochash{'xcataixpost'} = "/install/nim/scripts/xcataixpost"; | ||||
| 	#	$lochash{'xcataixpost'} = "/install/nim/scripts/xcataixpost"; | ||||
| 	} | ||||
|  | ||||
| 	# | ||||
| 	# create a hash containing the locations of the NIM resources  | ||||
| 	#	that are used for each osimage | ||||
| 	# - the NIM resource names are unique! | ||||
| 	# | ||||
| 	foreach my $i (@image_names) { | ||||
| 		foreach my $restype (keys %{$imghash{$i}} ) { | ||||
| 			my @reslist; | ||||
| 			if ( grep (/^$restype$/, @nimrestypes) ) { | ||||
| 				# spot, mksysb etc. | ||||
| 				my $resname = $imghash{$i}{$restype}; | ||||
|  | ||||
| 				# if comma list - split and put in list | ||||
| 				if ($resname) { | ||||
| 					foreach (split /,/,$resname) { | ||||
| 						chomp $_; | ||||
| 						push (@reslist, $_); | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			foreach my $res (@reslist) { | ||||
| 				# go to primary NIM master to get resource defs and  | ||||
| 				#	pick out locations | ||||
| 				# TODO - handle NIM prime!! | ||||
| 				my $loc = &get_nim_attr_val($res, "location", $callback, $nimprime); | ||||
|  | ||||
| 				# add to hash | ||||
| 				$lochash{$res} = "$loc"; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	# make sure any diskless images are updated | ||||
| 	foreach my $i (@image_names) { | ||||
| @@ -3954,7 +3960,6 @@ sub prenimnodeset | ||||
| 	#		defined locally when this cmd runs there  | ||||
| 	# | ||||
| 	###################################################### | ||||
|  | ||||
| 	if (&doSNcopy($callback, \@nodelist, $nimprime, \@nimrestypes, \%imghash, \%lochash, \%nodeosi)) { | ||||
| 		my $rsp; | ||||
| 		push @{$rsp->{data}}, "Could not copy NIM resources to the xCAT service nodes.\n"; | ||||
| @@ -4982,7 +4987,7 @@ if (0) { | ||||
| 			$initcmd="/usr/sbin/nim -o dtls_init $arg_string $nim_name 2>&1"; | ||||
| 		} | ||||
|  | ||||
| 		my $time=`date | cut -f4 -d' '`; | ||||
| 		my $time=`date | cut -f5 -d' '`; | ||||
| 		chomp $time; | ||||
| 		my $rsp; | ||||
| 		push @{$rsp->{data}}, "$Sname: Initializing NIM machine \'$nim_name\'. This could take a while. $time\n"; | ||||
| @@ -5005,6 +5010,8 @@ if (0) { | ||||
| 			next; | ||||
|        	} | ||||
|  | ||||
| if (0) { | ||||
|  | ||||
| 		# Update the files in /install/custom/netboot/AIX/syncfile to the root image | ||||
| 		# figure out the path of root image  | ||||
| 		my $cmd = "/usr/sbin/lsnim -a location $imagehash{$image_name}{root} | /usr/bin/grep location 2>/dev/null"; | ||||
| @@ -5021,6 +5028,10 @@ xCAT::MsgUtils->message("S", "mkdsklsnode: $root_location, $syncfile"); | ||||
| 			$subreq->({command=>['xdcp'], node=>[$node], arg=>$arg, env=>$env}, $callback); | ||||
| 		} | ||||
|  | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| 	} # end - for each node | ||||
|  | ||||
| 	# | ||||
| @@ -6062,7 +6073,6 @@ sub myxCATname | ||||
|     return $shorthost; | ||||
| } | ||||
|  | ||||
|  | ||||
| #---------------------------------------------------------------------------- | ||||
|  | ||||
| =head3  is_me | ||||
|   | ||||
		Reference in New Issue
	
	Block a user