mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-31 11:22:27 +00:00 
			
		
		
		
	fix no bmc ip while reinstall node
This commit is contained in:
		| @@ -873,21 +873,26 @@ Usage: | ||||
|         my $oldNicsRef = xCAT::ProfiledNodeUtils->get_nodes_nic_attrs([$oldNetProfileName])->{$oldNetProfileName}; | ||||
|          | ||||
|         my %updateNicsHash = (); | ||||
|         my %reserveNicsHash = (); | ||||
|         foreach my $newNic (keys %$newNicsRef) { | ||||
|             if ($newNicsRef->{$newNic}->{'type'} ne 'BMC' and $newNicsRef->{$newNic}->{'type'} ne 'FSP'){ | ||||
|                 $updateNicsHash{$newNic} = 1; | ||||
|             } | ||||
|         } | ||||
|         # Add BMC/FSP as reserve NICs and not remove it form nics table | ||||
|         foreach my $oldNic (keys %$oldNicsRef) { | ||||
|             if ($oldNicsRef->{$oldNic}->{'type'} ne 'BMC' and $oldNicsRef->{$oldNic}->{'type'} ne 'FSP'){ | ||||
|                 $updateNicsHash{$oldNic} = 1; | ||||
|             } else { | ||||
|                 $reserveNicsHash{$oldNic} = 1; | ||||
|             } | ||||
|         } | ||||
|          | ||||
|         my $updateNics = join(",", keys %updateNicsHash); | ||||
|         my $reserveNics = join(",", keys %reserveNicsHash); | ||||
|         setrsp_progress("Regenerate IP addresses for nodes..."); | ||||
|         $retref = ""; | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["noderegenips"], node=>$nodes, arg=>["nics=$updateNics"], sequential=>[1]}, $request_command, 0, 2); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["noderegenips"], node=>$nodes, arg=>["nics=$updateNics", "reservenics=$reserveNics"], sequential=>[1]}, $request_command, 0, 2); | ||||
|         $retstrref = parse_runxcmd_ret($retref); | ||||
|         if ($::RUNCMD_RC != 0){ | ||||
|             setrsp_progress("Warning: failed to generate IPs for nodes."); | ||||
| @@ -986,7 +991,7 @@ Usage: | ||||
|         setrsp_infostr($helpmsg); | ||||
|         return; | ||||
|     } | ||||
|     my @enabledparams = ('nics'); | ||||
|     my @enabledparams = ('nics', 'reservenics'); | ||||
|     my $ret = validate_args($helpmsg, \@enabledparams); | ||||
|     if (! $ret){ | ||||
|         return; | ||||
| @@ -994,6 +999,7 @@ Usage: | ||||
|  | ||||
|     my @updateNics = (); | ||||
|     my @removedNics = (); | ||||
|     my @reserveNics = (); | ||||
|     my $netProfileName = ''; | ||||
|     my $netProfileNicsRef; | ||||
|     my %freeIPsHash = (); | ||||
| @@ -1027,6 +1033,9 @@ Usage: | ||||
|     if(exists $args_dict{'nics'}){ | ||||
|         @updateNics = split(",", $args_dict{'nics'}); | ||||
|     } | ||||
|     if (exists $args_dict{'reservenics'}){ | ||||
|         @reserveNics = split(",", $args_dict{'reservenics'}); | ||||
|     } | ||||
|     foreach (@updateNics){ | ||||
|         unless ($netProfileNicsRef->{$netProfileName}->{$_}){ | ||||
|             # We want to remove this nic from these nodes. | ||||
| @@ -1117,6 +1126,13 @@ Usage: | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         # Add reserve nics | ||||
|         foreach my $nicname (@reserveNics){ | ||||
|             my $oldip = $nodesNicsRef->{$node}->{$nicname}->{"ip"}; | ||||
|             if ($oldip) { | ||||
|                 $nicipsAttr{$node}{nicips} .= $nicname."!".$oldip.","; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     #8. Update database. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user