fix mkdsklsnode -n option
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@11067 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
		@@ -1078,6 +1078,7 @@ sub nimnodeset
 | 
			
		||||
                        foreach (split /,/, $resname)
 | 
			
		||||
                        {
 | 
			
		||||
                            chomp $_;
 | 
			
		||||
 | 
			
		||||
                            $bnd_string .= "-a installp_bundle=$_ ";
 | 
			
		||||
                        }
 | 
			
		||||
 | 
			
		||||
@@ -4235,6 +4236,7 @@ sub mk_spot
 | 
			
		||||
            {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                # error
 | 
			
		||||
                return undef;
 | 
			
		||||
            }
 | 
			
		||||
@@ -4732,7 +4734,7 @@ sub chk_resolv_conf
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
				my $n = xCAT::NetworkUtils->getipaddr($server);
 | 
			
		||||
       			chomp $n;
 | 
			
		||||
				chomp $n;
 | 
			
		||||
				push(@nservers, $n);
 | 
			
		||||
 | 
			
		||||
			} else {
 | 
			
		||||
@@ -4794,12 +4796,23 @@ sub chk_resolv_conf
 | 
			
		||||
                    $server=$nimprime;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                my $n = xCAT::NetworkUtils->getipaddr($server);
 | 
			
		||||
                chomp $n;
 | 
			
		||||
                push(@nservers, $n);
 | 
			
		||||
				# make sure to use the short host name or
 | 
			
		||||
				#		NIM will be unhappy !
 | 
			
		||||
				my ($host, $ip) = xCAT::NetworkUtils->gethostnameandip($server);
 | 
			
		||||
                chomp $host;
 | 
			
		||||
				chomp $ip;
 | 
			
		||||
 | 
			
		||||
				if (!$host || !$ip)
 | 
			
		||||
				{
 | 
			
		||||
					my $rsp = {};
 | 
			
		||||
					$rsp->{data}->[0] = "Can not resolve the node $node";
 | 
			
		||||
					xCAT::MsgUtils->message("E", $rsp, $callback);
 | 
			
		||||
					next;
 | 
			
		||||
				}
 | 
			
		||||
                push(@nservers, $ip);
 | 
			
		||||
 | 
			
		||||
				# use convention for res name "<SN>_resolv_conf"
 | 
			
		||||
				$resolv_conf_name = $server . "_resolv_conf";
 | 
			
		||||
				$resolv_conf_name = $host . "_resolv_conf";
 | 
			
		||||
				$resolv_conf_hash{$node} = $resolv_conf_name;
 | 
			
		||||
 | 
			
		||||
			} else {
 | 
			
		||||
@@ -9736,38 +9749,153 @@ sub mkdsklsnode
 | 
			
		||||
                close(NEWINFO);
 | 
			
		||||
            }    
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        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";
 | 
			
		||||
            my $location = xCAT::Utils->runcmd("$cmd", -1);
 | 
			
		||||
            $location =~ s/\s*location = //;
 | 
			
		||||
            chomp($location);
 | 
			
		||||
            my $root_location = $location . '/' . $nim_name . '/';
 | 
			
		||||
            if (-d $root_location)
 | 
			
		||||
            {
 | 
			
		||||
                my $syncfile = $$node_syncfile{$node};
 | 
			
		||||
                xCAT::MsgUtils->message("S",
 | 
			
		||||
                                      "mkdsklsnode: $root_location, $syncfile");
 | 
			
		||||
		#
 | 
			
		||||
		# If NEWNAME is specified we need to update either the /etc/bootptab
 | 
			
		||||
		#	file or the /etc/dhcpsd.cnf
 | 
			
		||||
		#	- the NIM alt def has to be created with no mac included - 
 | 
			
		||||
		#	- once the dkls_init is done we can then add the mac back
 | 
			
		||||
		#	- the the bootptab and or dhcpsd.cnf file
 | 
			
		||||
		#  This is only an issue if the "-n" (NEWNAME) option was specified
 | 
			
		||||
		#
 | 
			
		||||
 | 
			
		||||
                my $arg = ["-i", "$root_location", "-F", "$syncfile"];
 | 
			
		||||
                my $env = ["RSYNCSN=yes", "DSH_RSYNC_FILE=$syncfile"];
 | 
			
		||||
                $subreq->(
 | 
			
		||||
                          {
 | 
			
		||||
                           command => ['xdcp'],
 | 
			
		||||
                           node    => [$node],
 | 
			
		||||
                           arg     => $arg,
 | 
			
		||||
                           env     => $env
 | 
			
		||||
                          },
 | 
			
		||||
                          $callback
 | 
			
		||||
                          );
 | 
			
		||||
            }
 | 
			
		||||
		if ($::NEWNAME) {
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
			#  Only need to update this file if we are using dhcpsd daemon
 | 
			
		||||
 | 
			
		||||
			#Check if dhcpd is running
 | 
			
		||||
			my @res = xCAT::Utils->runcmd('lssrc -s dhcpsd',0);
 | 
			
		||||
			if ( $::RUNCMD_RC != 0)
 | 
			
		||||
			{
 | 
			
		||||
				my $rsp;
 | 
			
		||||
				push @{$rsp->{data}}, "Failed to check dhcpsd status.\n";
 | 
			
		||||
				xCAT::MsgUtils->message("E", $rsp, $callback);
 | 
			
		||||
			}
 | 
			
		||||
			if ( grep /\sactive/, @res)
 | 
			
		||||
			{
 | 
			
		||||
				# if dhcpsd is active then assume we need to update
 | 
			
		||||
				#	/etc/dhcpsd.cnf
 | 
			
		||||
 | 
			
		||||
				# read the dhcpsd.cnf file into an array
 | 
			
		||||
				my $dhcpfile = "/etc/dhcpsd.cnf";
 | 
			
		||||
				open(DHCPFILE, "<$dhcpfile");
 | 
			
		||||
				my @lines = <DHCPFILE>;
 | 
			
		||||
				close DHCPFILE;
 | 
			
		||||
 | 
			
		||||
				# copy file to backup
 | 
			
		||||
				my $cpcmd = qq~/usr/bin/cp $dhcpfile $dhcpfile.bak~;
 | 
			
		||||
				my $output = xCAT::Utils->runcmd("$cpcmd", -1);
 | 
			
		||||
				if ($::RUNCMD_RC != 0)
 | 
			
		||||
				{
 | 
			
		||||
					my $rsp;
 | 
			
		||||
					push @{$rsp->{data}}, "Could not copy $dhcpfile to $dhcpfile.bak.\n";
 | 
			
		||||
					xCAT::MsgUtils->message("E", $rsp, $callback);
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				foreach my $nd (@nodelist) {
 | 
			
		||||
					# short hostname for node
 | 
			
		||||
					$nd =~ s/\..*$//;
 | 
			
		||||
 | 
			
		||||
					# get the IP for the node
 | 
			
		||||
					my $ndIP = xCAT::NetworkUtils->getipaddr($nd);
 | 
			
		||||
					chomp $ndIP;
 | 
			
		||||
 | 
			
		||||
					# get mac for node
 | 
			
		||||
					my $mac=$objhash{$nd}{'mac'};
 | 
			
		||||
 | 
			
		||||
					# foreach line in file
 | 
			
		||||
					foreach my $l (@lines) {
 | 
			
		||||
 | 
			
		||||
						if (( $l =~ /client/) && ($l =~ /$ndIP/)  ) {
 | 
			
		||||
 | 
			
		||||
							# replace the "0" with the mac
 | 
			
		||||
							$l =~ s/ 0 / $mac /;
 | 
			
		||||
						} 
 | 
			
		||||
					} # end - foreach line
 | 
			
		||||
 | 
			
		||||
				} # end - foreach node
 | 
			
		||||
 | 
			
		||||
				# update the file
 | 
			
		||||
				unless (open(DHCPFILE, ">$dhcpfile")) {
 | 
			
		||||
					my $rsp;
 | 
			
		||||
					push @{$rsp->{data}}, "Could not open $dhcpfile.\n";
 | 
			
		||||
					xCAT::MsgUtils->message("E", $rsp, $callback);
 | 
			
		||||
				}
 | 
			
		||||
				foreach (@lines)
 | 
			
		||||
				{
 | 
			
		||||
					#print DHCPFILE $_ . "\n";
 | 
			
		||||
					print DHCPFILE $_;
 | 
			
		||||
				}
 | 
			
		||||
				close DHCPFILE;
 | 
			
		||||
 | 
			
		||||
				# refresh the dhcpsd daemon
 | 
			
		||||
				# my $dcmd=qq~/usr/bin/refresh -s dhcpsd~;
 | 
			
		||||
				my $out = xCAT::Utils->runcmd('/usr/bin/refresh -s dhcpsd',0);
 | 
			
		||||
				if ($::RUNCMD_RC != 0)
 | 
			
		||||
				{
 | 
			
		||||
					my $rsp;
 | 
			
		||||
					push @{$rsp->{data}}, "Failed to refresh dhcpsd configuration\n";
 | 
			
		||||
					xCAT::MsgUtils->message("E", $rsp, $callback);
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
			} # end - dhcpsd.cnf file
 | 
			
		||||
 | 
			
		||||
			# assume we always need to update the /etc/bootptab file.
 | 
			
		||||
 | 
			
		||||
			# read the bootptab file into an array
 | 
			
		||||
			my $bpfile = "/etc/bootptab";
 | 
			
		||||
			open(BPFILE, "<$bpfile");
 | 
			
		||||
			my @lines = <BPFILE>;
 | 
			
		||||
			close BPFILE;
 | 
			
		||||
 | 
			
		||||
			# copy file to backup
 | 
			
		||||
			my $cpcmd = qq~/usr/bin/cp $bpfile $bpfile.bak~;
 | 
			
		||||
			my $output = xCAT::Utils->runcmd("$cpcmd", -1);
 | 
			
		||||
			if ($::RUNCMD_RC != 0)
 | 
			
		||||
			{
 | 
			
		||||
				my $rsp;
 | 
			
		||||
				push @{$rsp->{data}}, "Could not copy $bpfile to $bpfile.bak.\n";
 | 
			
		||||
				xCAT::MsgUtils->message("E", $rsp, $callback);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			foreach my $nd (@nodelist) {
 | 
			
		||||
				# get short hostname for node
 | 
			
		||||
				$nd =~ s/\..*$//;
 | 
			
		||||
 | 
			
		||||
				# get mac for node
 | 
			
		||||
				my $mac=$objhash{$nd}{'mac'};
 | 
			
		||||
 | 
			
		||||
				# foreach line in file
 | 
			
		||||
				foreach my $l (@lines) {
 | 
			
		||||
 | 
			
		||||
					# split line
 | 
			
		||||
					my ($hn, $rest) = split(/:/, $l);
 | 
			
		||||
 | 
			
		||||
					# if this is the line for this hostname
 | 
			
		||||
					$hn =~ s/\..*$//;
 | 
			
		||||
					if ($hn eq $nd) {
 | 
			
		||||
						# if it doesn't have ha then add it
 | 
			
		||||
						if (!($l =~ /:ha=/)) {
 | 
			
		||||
							$l =~ s/:sa/:ha=$mac:sa/;
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
				} # end - foreach line
 | 
			
		||||
 | 
			
		||||
			} # end - foreach node
 | 
			
		||||
 | 
			
		||||
			# update the file
 | 
			
		||||
			unless (open(BPFILE, ">$bpfile")) {
 | 
			
		||||
				my $rsp;
 | 
			
		||||
				push @{$rsp->{data}}, "Could not open $bpfile.\n";
 | 
			
		||||
				xCAT::MsgUtils->message("E", $rsp, $callback);
 | 
			
		||||
			}
 | 
			
		||||
			foreach (@lines)
 | 
			
		||||
			{
 | 
			
		||||
				print BPFILE $_ ;
 | 
			
		||||
			}
 | 
			
		||||
			close BPFILE;
 | 
			
		||||
 | 
			
		||||
		} # end - if NEWNAME
 | 
			
		||||
 | 
			
		||||
        # Update /etc/bootptab for HFI mac address failover
 | 
			
		||||
        my $if = 1;
 | 
			
		||||
@@ -9813,16 +9941,28 @@ sub mkdsklsnode
 | 
			
		||||
		if (grep(/^$img$/, @imgsdone )) {
 | 
			
		||||
			next;
 | 
			
		||||
		}
 | 
			
		||||
		$n =~ s/\..*$//; # make sure we have the short hostname
 | 
			
		||||
		my $node;
 | 
			
		||||
		if ($::NEWNAME)
 | 
			
		||||
		{
 | 
			
		||||
			# need to use a new name for the node name
 | 
			
		||||
			#	- not node hostname
 | 
			
		||||
			# "<xcat_node_name>_<image_name>"
 | 
			
		||||
			$node = $n . "_" . $img;
 | 
			
		||||
		} else {
 | 
			
		||||
			$node = $n;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		push(@imgsdone, $img);
 | 
			
		||||
		# Only when using a shared_root resource
 | 
			
		||||
		if ($imagehash{$img}{shared_root}) {
 | 
			
		||||
			my $SRdir = xCAT::InstUtils->get_nim_attr_val( $imagehash{$img}{'shared_root'}, "location", $callback, $Sname, $subreq);
 | 
			
		||||
			my $cpcmd = qq~/usr/bin/cp $SRdir/etc/hosts $SRdir/etc/.client_data/hosts.$n 2>/dev/null~;
 | 
			
		||||
			my $cpcmd = qq~/usr/bin/cp $SRdir/etc/hosts $SRdir/etc/.client_data/hosts.$node 2>/dev/null~;
 | 
			
		||||
			my $output = xCAT::Utils->runcmd("$cpcmd", -1);
 | 
			
		||||
			if ($::RUNCMD_RC != 0)
 | 
			
		||||
			{
 | 
			
		||||
				my $rsp;
 | 
			
		||||
				push @{$rsp->{data}}, "Could not copy $SRdir/etc/hosts to $SRdir/etc/.client_data/hosts.$n.\n";
 | 
			
		||||
				push @{$rsp->{data}}, "Could not copy $SRdir/etc/hosts to $SRdir/etc/.client_data/hosts.$node.\n";
 | 
			
		||||
				xCAT::MsgUtils->message("E", $rsp, $callback);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
@@ -9837,6 +9977,9 @@ sub mkdsklsnode
 | 
			
		||||
    #       Update root/<nodename>/etc/hosts
 | 
			
		||||
    #       Update root/<nodename>/etc/filesystems
 | 
			
		||||
    #
 | 
			
		||||
	# Note: if "-n" option then we need a NIM name and not the nodename
 | 
			
		||||
	#   in some cases - ex. file and dir names
 | 
			
		||||
	#   - if NEWNAME then nim name = <nodename>_<osimage name>
 | 
			
		||||
 | 
			
		||||
    # convert the @nodesfailed to hash for search performance considerations
 | 
			
		||||
    my %fnhash = ();
 | 
			
		||||
@@ -9865,6 +10008,19 @@ sub mkdsklsnode
 | 
			
		||||
        }
 | 
			
		||||
        foreach my $snd (@snode)
 | 
			
		||||
        {
 | 
			
		||||
			my $nimname;
 | 
			
		||||
			if ($::NEWNAME)
 | 
			
		||||
			{
 | 
			
		||||
			 	# need to use a new name for the node name
 | 
			
		||||
				#   - not node hostname
 | 
			
		||||
				# used for filenames and dirs in shared_root
 | 
			
		||||
				# "<xcat_node_name>_<image_name>"
 | 
			
		||||
				$snd =~ s/\..*$//; # make sure we have the short hostname
 | 
			
		||||
				$nimname = $snd . "_" . $nodeosi{$snd};
 | 
			
		||||
			} else {
 | 
			
		||||
				$nimname = $snd;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
            # nfsserver defined for this node
 | 
			
		||||
            if($nfshash->{$snd}->[0]->{'nfsserver'})
 | 
			
		||||
            {
 | 
			
		||||
@@ -9888,16 +10044,16 @@ sub mkdsklsnode
 | 
			
		||||
                        my $imgsrdir = xCAT::InstUtils->get_nim_attr_val(
 | 
			
		||||
                                                        $imagehash{$osimg}{'shared_root'}, 
 | 
			
		||||
                                                        "location", $callback, $Sname, $subreq);
 | 
			
		||||
                        $hostfile = "$imgsrdir/etc/.client_data/hosts.$snd";
 | 
			
		||||
                        $filesystemsfile = "$imgsrdir/etc/.client_data/filesystems.$snd";
 | 
			
		||||
                        $hostfile = "$imgsrdir/etc/.client_data/hosts.$nimname";
 | 
			
		||||
                        $filesystemsfile = "$imgsrdir/etc/.client_data/filesystems.$nimname";
 | 
			
		||||
                    }
 | 
			
		||||
                    else # non-shared_root configuration
 | 
			
		||||
                    {
 | 
			
		||||
                        my $imgrootdir = xCAT::InstUtils->get_nim_attr_val(
 | 
			
		||||
                                                          $imagehash{$osimg}{'root'},
 | 
			
		||||
                                                          "location", $callback, $Sname, $subreq);
 | 
			
		||||
                        $hostfile = "$imgrootdir/$snd/etc/hosts";
 | 
			
		||||
                        $filesystemsfile = "$imgrootdir/$snd/etc/filesystems";
 | 
			
		||||
                        $hostfile = "$imgrootdir/$nimname/etc/hosts";
 | 
			
		||||
                        $filesystemsfile = "$imgrootdir/$nimname/etc/filesystems";
 | 
			
		||||
                        my ($nodehost, $nodeip) = xCAT::NetworkUtils->gethostnameandip($snd);
 | 
			
		||||
                        if (!$nodehost || !$nodeip)
 | 
			
		||||
                        {
 | 
			
		||||
@@ -10006,14 +10162,14 @@ sub mkdsklsnode
 | 
			
		||||
                my $imgsrdir = xCAT::InstUtils->get_nim_attr_val(
 | 
			
		||||
                                                $imagehash{$osimg}{'shared_root'},
 | 
			
		||||
                                                 "location", $callback, $Sname, $subreq);
 | 
			
		||||
                $filesystemsfile = "$imgsrdir/etc/.client_data/filesystems.$snd";
 | 
			
		||||
                $filesystemsfile = "$imgsrdir/etc/.client_data/filesystems.$nimname";
 | 
			
		||||
            }
 | 
			
		||||
            else # non-shared_root configuration
 | 
			
		||||
            {
 | 
			
		||||
                my $imgrootdir = xCAT::InstUtils->get_nim_attr_val(
 | 
			
		||||
                                                  $imagehash{$osimg}{'root'},
 | 
			
		||||
                                                  "location", $callback, $Sname, $subreq);
 | 
			
		||||
                $filesystemsfile = "$imgrootdir/$snd/etc/filesystems";
 | 
			
		||||
                $filesystemsfile = "$imgrootdir/$nimname/etc/filesystems";
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            my $fscontent;
 | 
			
		||||
@@ -11370,6 +11526,32 @@ sub rmdsklsnode
 | 
			
		||||
	    return 1; 
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	# save the existing bootptab file so it can be restored
 | 
			
		||||
	# this is needed when using alternate NIM clients (ex. mkdsklsnode -n)
 | 
			
		||||
	# NIM will remove files and entries but we may still need them for the 
 | 
			
		||||
	#	nodes since they may be booted using alternate NIM client defs
 | 
			
		||||
	# leaving the files and entries in place should not cause any issues
 | 
			
		||||
	# since they will be replaced the next time mkdsklsnode is run
 | 
			
		||||
	my $bootptabfile = "/etc/bootptab";
 | 
			
		||||
	my $bootptabback = "/etc/bootptab.bak";
 | 
			
		||||
	my $cpcmd = qq~/usr/bin/cp -p $bootptabfile $bootptabback~;
 | 
			
		||||
	my $output = xCAT::Utils->runcmd("$cpcmd", -1);
 | 
			
		||||
	if ($::RUNCMD_RC != 0)
 | 
			
		||||
	{
 | 
			
		||||
		my $rsp;
 | 
			
		||||
		push @{$rsp->{data}}, "Could not copy $bootptabfile to $bootptabback.\n";
 | 
			
		||||
		xCAT::MsgUtils->message("E", $rsp, $callback);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	# back up /tftpboot files so they can be restored
 | 
			
		||||
	# this is needed when using alternate NIM clients (ex. mkdsklsnode -n)
 | 
			
		||||
	my $tftploc = "/tftpboot";
 | 
			
		||||
	my $tftpbak = "/tftpboot/bak";
 | 
			
		||||
 | 
			
		||||
	# make sure to preserve links etc.
 | 
			
		||||
	my $cpcmd2 = qq~mkdir -m 644 -p $tftpbak; /usr/bin/cp -h -p $tftploc/* $tftpbak~;
 | 
			
		||||
	$output = xCAT::Utils->runcmd("$cpcmd2", -1);
 | 
			
		||||
 | 
			
		||||
    # for each node
 | 
			
		||||
    my @nodesfailed;
 | 
			
		||||
    my $error;
 | 
			
		||||
@@ -11502,6 +11684,27 @@ sub rmdsklsnode
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }    # end - for each node
 | 
			
		||||
 | 
			
		||||
	#   restore tftpboot and bootptab files
 | 
			
		||||
	$cpcmd = qq~/usr/bin/cp -p $bootptabback $bootptabfile; /usr/bin/rm $bootptabback~;
 | 
			
		||||
	$output = xCAT::Utils->runcmd("$cpcmd", -1);
 | 
			
		||||
	if ($::RUNCMD_RC != 0)
 | 
			
		||||
	{
 | 
			
		||||
		my $rsp;
 | 
			
		||||
		push @{$rsp->{data}}, "Could not copy $bootptabback to $bootptabfile.\n";
 | 
			
		||||
		xCAT::MsgUtils->message("E", $rsp, $callback);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	# make sure to preserve links etc.
 | 
			
		||||
	$cpcmd2 = qq~/usr/bin/cp -h -p $tftpbak/* $tftploc; /usr/bin/rm -R $tftpbak 2>/dev/null~;
 | 
			
		||||
	$output = xCAT::Utils->runcmd("$cpcmd2", -1);
 | 
			
		||||
	if ($::RUNCMD_RC != 0)
 | 
			
		||||
	{
 | 
			
		||||
		my $rsp;
 | 
			
		||||
		push @{$rsp->{data}}, "Could not copy $tftpbak to $tftploc.\n";
 | 
			
		||||
		xCAT::MsgUtils->message("E", $rsp, $callback);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	my  $retcode=0;
 | 
			
		||||
    if ($error)
 | 
			
		||||
    {
 | 
			
		||||
@@ -11524,7 +11727,6 @@ sub rmdsklsnode
 | 
			
		||||
        xCAT::MsgUtils->message("I", $rsp, $callback);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    #now run the end part of the prescripts
 | 
			
		||||
    #the call is distrubuted to the service node already, so only need to handles my own children
 | 
			
		||||
    $errored=0;
 | 
			
		||||
@@ -11544,15 +11746,14 @@ sub rmdsklsnode
 | 
			
		||||
                arg=>["remove", '-l']},\&pass_along);
 | 
			
		||||
    }
 | 
			
		||||
    if ($errored) { 
 | 
			
		||||
	my $rsp;
 | 
			
		||||
	$rsp->{errorcode}->[0]=1;
 | 
			
		||||
	$rsp->{error}->[0]="Failed in running end prescripts.\n";
 | 
			
		||||
	$callback->($rsp);
 | 
			
		||||
	return 1; 
 | 
			
		||||
		my $rsp;
 | 
			
		||||
		$rsp->{errorcode}->[0]=1;
 | 
			
		||||
		$rsp->{error}->[0]="Failed in running end prescripts.\n";
 | 
			
		||||
		$callback->($rsp);
 | 
			
		||||
		return 1; 
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return  $retcode;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#----------------------------------------------------------------------------
 | 
			
		||||
@@ -12648,7 +12849,14 @@ sub update_spot_rpm
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    my $cdcmd = qq~cd $source_dir;~;
 | 
			
		||||
    my $cmd = qq~$::XCATROOT/bin/xcatchroot -i $spotname "$cdcmd export INUCLIENTS=1; /usr/bin/rpm $rpm_flags $rpmpkgs"~;
 | 
			
		||||
    my $cmd;
 | 
			
		||||
 | 
			
		||||
	if ($::VERBOSE)
 | 
			
		||||
	{
 | 
			
		||||
		$cmd = qq~$::XCATROOT/bin/xcatchroot -V -i $spotname "$cdcmd export INUCLIENTS=1; /usr/bin/rpm $rpm_flags $rpmpkgs"~;
 | 
			
		||||
	} else {
 | 
			
		||||
		$cmd = qq~$::XCATROOT/bin/xcatchroot -i $spotname "$cdcmd export INUCLIENTS=1; /usr/bin/rpm $rpm_flags $rpmpkgs"~;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    my $output =
 | 
			
		||||
      xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $nimprime, $cmd, 0);   
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user