#!/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 "\n"; print $remote " syncfiles\n"; print $remote "\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;