git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@5285 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
		
			
				
	
	
		
			62 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/perl
 | |
| # removes the configuration of a node so that the next time you reboot 
 | |
| # a node it forces it to go through the discovery process.
 | |
| # usage: rmnodecfg <noderange>
 | |
| # this does not remove it completely from xCAT.  You may want to do this
 | |
| # command before running noderm to completely purge the system of the node
 | |
| BEGIN
 | |
| {
 | |
|     $::XCATROOT = $ENV{'XCATROOT'} ? $ENV{'XCATROOT'} : '/opt/xcat';
 | |
| }
 | |
| 
 | |
| use lib "$::XCATROOT/lib/perl";
 | |
| use xCAT::Utils;
 | |
| use strict;
 | |
| use Socket;
 | |
| 
 | |
| my $blades = shift;
 | |
| if(! $blades) {
 | |
|   print "Please specify a noderange of blades to remove\n";
 | |
|   exit; 
 | |
| }
 | |
| 
 | |
| my $tftpdir = xCAT::Utils->getTftpDir();
 | |
| 
 | |
| foreach my $blade (`/opt/xcat/bin/nodels $blades`){
 | |
|   chomp($blade);
 | |
|   my $hex = ip2hex($blade); 
 | |
|   my $cmd = "nodech $blade chain.currstate= chain.currchain= chain.chain=";
 | |
|   $cmd = "chtab -d node=$blade chain";
 | |
|   print "$cmd\n";
 | |
|   `$cmd`;
 | |
|   $cmd = "chtab -d node=$blade mac";
 | |
|   print "$cmd\n";
 | |
|   `$cmd`;
 | |
|   $cmd = "makedhcp -d $blade";
 | |
|   print "$cmd\n";
 | |
|   `$cmd`;
 | |
|   $cmd = "rm $tftpdir/pxelinux.cfg/$blade";
 | |
|   print "$cmd\n";
 | |
|   `$cmd`;
 | |
|   if($hex){
 | |
|     $cmd = "rm $tftpdir/pxelinux.cfg/$hex";
 | |
|     print "$cmd\n";
 | |
|     `$cmd`;     
 | |
|   }     
 | |
| }
 | |
| 
 | |
| sub ip2hex {
 | |
|   my $node = shift;
 | |
|   my $ip = '';
 | |
|   my @quad;
 | |
|   my $hex = '';
 | |
|   my $packed_ip = gethostbyname($node);
 | |
|   if(defined $packed_ip){
 | |
|     $ip = inet_ntoa($packed_ip);
 | |
|     @quad = split('\.', $ip);
 | |
|     $hex = sprintf("%02X%02X%02X%02X", @quad);
 | |
|   }
 | |
|   return $hex;
 | |
| }
 | |
| 
 |