git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@12684 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
#!/usr/bin/env perl -w
 | 
						|
# IBM(c) 2009 EPL license http://www.eclipse.org/legal/epl-v10.html
 | 
						|
#####################################################
 | 
						|
#
 | 
						|
#   xCAT post script for AIX nodes
 | 
						|
#   This script will send command "syncfiles" to the xcatd on 
 | 
						|
#   management node or service node to initiate the sync file
 | 
						|
#   operation by xdcp command
 | 
						|
#
 | 
						|
#####################################################
 | 
						|
 | 
						|
use XML::Simple;
 | 
						|
 | 
						|
my $useSocketSSL=eval { require IO::Socket::SSL; };
 | 
						|
if ($useSocketSSL) {
 | 
						|
        require IO::Socket::SSL;
 | 
						|
}
 | 
						|
 | 
						|
my $port = "3001";
 | 
						|
my $remote = IO::Socket::SSL->new( Proto => "tcp", PeerAddr => $ENV{MASTER}, PeerPort  => $port, );
 | 
						|
unless ($remote) {
 | 
						|
  `logger -t xCAT -p local4.err "startsyncfiles: Cannot connect to host $ENV{MASTER}"`;
 | 
						|
  exit 0;
 | 
						|
}
 | 
						|
 | 
						|
# Send Syncing File request to the xcatd
 | 
						|
print $remote "<xcatrequest>\n";
 | 
						|
print $remote "   <command>syncfiles</command>\n";
 | 
						|
print $remote "</xcatrequest>\n";
 | 
						|
 | 
						|
 | 
						|
my $response='';
 | 
						|
my $rsp;
 | 
						|
my $rc = 0;
 | 
						|
while (<$remote>) {
 | 
						|
  $response .= $_;
 | 
						|
  if ($response =~ m/<\/xcatresponse>/) {
 | 
						|
    $rsp = eval { XMLin($response,SuppressEmpty=>undef,ForceArray=>1) };
 | 
						|
 | 
						|
    if ($rsp->{errorcode}) {
 | 
						|
      $rc = $rsp->{errorcode}[0];
 | 
						|
    } elsif ($rsp->{error}) {
 | 
						|
      $rc = $rsp->{error}[0];
 | 
						|
    }
 | 
						|
    if ($rsp->{serverdone}) {
 | 
						|
      close $remote;
 | 
						|
      if ($rc) { $rc = 1; }
 | 
						|
      exit $rc;
 | 
						|
    }
 | 
						|
 | 
						|
    $response='';
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
close $remote;
 | 
						|
exit 0;
 | 
						|
 |