add check for servicenodes and computenodes in noderange for nodeset. Also remove very old commented out code defect 3750
This commit is contained in:
		@@ -5,6 +5,7 @@ use Sys::Syslog;
 | 
			
		||||
use xCAT::Scope;
 | 
			
		||||
use xCAT::Utils;
 | 
			
		||||
use xCAT::TableUtils;
 | 
			
		||||
use xCAT::ServiceNodeUtils;
 | 
			
		||||
use xCAT::NetworkUtils;
 | 
			
		||||
use xCAT::MsgUtils;
 | 
			
		||||
use File::Path;
 | 
			
		||||
@@ -334,7 +335,7 @@ sub preprocess_request {
 | 
			
		||||
	@args=($req->{arg});
 | 
			
		||||
    }
 | 
			
		||||
    @ARGV = @args;
 | 
			
		||||
 | 
			
		||||
    my $nodes = $req->{node};
 | 
			
		||||
    #use Getopt::Long;
 | 
			
		||||
    Getopt::Long::Configure("bundling");
 | 
			
		||||
    Getopt::Long::Configure("pass_through");
 | 
			
		||||
@@ -375,13 +376,23 @@ sub preprocess_request {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
   #Assume shared tftp directory for boring people, but for cool people, help sync up tftpdirectory contents when 
 | 
			
		||||
   #they specify no sharedtftp in site table
 | 
			
		||||
   #my $stab = xCAT::Table->new('site');
 | 
			
		||||
  
 | 
			
		||||
   #my $sent = $stab->getAttribs({key=>'sharedtftp'},'value');
 | 
			
		||||
   #if they specify no sharedtftp in site table
 | 
			
		||||
   my @entries =  xCAT::TableUtils->get_site_attribute("sharedtftp");
 | 
			
		||||
   my $t_entry = $entries[0];
 | 
			
		||||
   if ( defined($t_entry)  and ($t_entry == 0 or $t_entry =~ /no/i)) {
 | 
			
		||||
      # check for  computenodes and servicenodes from the noderange, if so error out
 | 
			
		||||
       my @SN;
 | 
			
		||||
       my @CN;
 | 
			
		||||
       xCAT::ServiceNodeUtils->getSNandCPnodes(\@$nodes, \@SN, \@CN);
 | 
			
		||||
       if ((@SN > 0) && (@CN >0 )) { # there are both SN and CN
 | 
			
		||||
            my $rsp;
 | 
			
		||||
            $rsp->{data}->[0] = 
 | 
			
		||||
              "Nodeset was run with a noderange containing both service nodes and compute nodes. This is not valid. You must submit with either compute nodes in the noderange or service nodes. \n";
 | 
			
		||||
            xCAT::MsgUtils->message("E", $rsp, $callback1);       
 | 
			
		||||
            return; 
 | 
			
		||||
           
 | 
			
		||||
       } 
 | 
			
		||||
 | 
			
		||||
      $req->{'_disparatetftp'}=[1];
 | 
			
		||||
      if ($req->{inittime}->[0]) {
 | 
			
		||||
          return [$req];
 | 
			
		||||
@@ -390,40 +401,6 @@ sub preprocess_request {
 | 
			
		||||
   }
 | 
			
		||||
   return [$req];
 | 
			
		||||
}
 | 
			
		||||
#sub preprocess_request {
 | 
			
		||||
#   my $req = shift;
 | 
			
		||||
#   my $callback = shift;
 | 
			
		||||
#  my %localnodehash;
 | 
			
		||||
#  my %dispatchhash;
 | 
			
		||||
#  my $nrtab = xCAT::Table->new('noderes');
 | 
			
		||||
#  foreach my $node (@{$req->{node}}) {
 | 
			
		||||
#     my $nodeserver;
 | 
			
		||||
#     my $tent = $nrtab->getNodeAttribs($node,['tftpserver']);
 | 
			
		||||
#     if ($tent) { $nodeserver = $tent->{tftpserver} }
 | 
			
		||||
#     unless ($tent and $tent->{tftpserver}) {
 | 
			
		||||
#        $tent = $nrtab->getNodeAttribs($node,['servicenode']);
 | 
			
		||||
#        if ($tent) { $nodeserver = $tent->{servicenode} }
 | 
			
		||||
#     }
 | 
			
		||||
#     if ($nodeserver) {
 | 
			
		||||
#        $dispatchhash{$nodeserver}->{$node} = 1;
 | 
			
		||||
#     } else {
 | 
			
		||||
#        $localnodehash{$node} = 1;
 | 
			
		||||
#     }
 | 
			
		||||
#  }
 | 
			
		||||
#  my @requests;
 | 
			
		||||
#  my $reqc = {%$req};
 | 
			
		||||
#  $reqc->{node} = [ keys %localnodehash ];
 | 
			
		||||
#  if (scalar(@{$reqc->{node}})) { push @requests,$reqc }
 | 
			
		||||
#
 | 
			
		||||
#  foreach my $dtarg (keys %dispatchhash) { #iterate dispatch targets
 | 
			
		||||
#     my $reqcopy = {%$req}; #deep copy
 | 
			
		||||
#     $reqcopy->{'_xcatdest'} = $dtarg;
 | 
			
		||||
#     $reqcopy->{node} = [ keys %{$dispatchhash{$dtarg}}];
 | 
			
		||||
#     push @requests,$reqcopy;
 | 
			
		||||
#  }
 | 
			
		||||
#  return \@requests;
 | 
			
		||||
#}
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
sub process_request {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user