diff --git a/xCAT/postscripts/xcataixpost b/xCAT/postscripts/xcataixpost index 4278eeab8..85fdb9b07 100755 --- a/xCAT/postscripts/xcataixpost +++ b/xCAT/postscripts/xcataixpost @@ -445,10 +445,19 @@ sub updateflag { my $state="booted"; my $port = "3002"; - my $remote = IO::Socket::INET->new( Proto => "tcp", PeerAddr => $servnode, PeerPort => $port, ); + my $servip = `host $servnode | awk '{print \$3}'`; + chomp($servip); + my $remote = IO::Socket::INET->new( Proto => "tcp", PeerAddr => $servip, PeerPort => $port, Timeout => 0); + + my $try = 10; + while (!$remote && $try-- > 0) { + sleep 1; + $remote = IO::Socket::INET->new( Proto => "tcp", PeerAddr => $servip, PeerPort => $port, Timeout => 0); + print $::LOG_FILE "$::sdate xcataixpost: Cannot connect to host \'$servip\'\n"; + } unless ($remote) { - print "$::sdate xcataixpost: Cannot connect to host \'$servnode\'\n"; - print $::LOG_FILE "$::sdate xcataixpost: Cannot connect to host \'$servnode\'\n"; + print "$::sdate xcataixpost: Cannot connect to host \'$servip\'\n"; + print $::LOG_FILE "$::sdate xcataixpost: Cannot connect to host \'$servip\'\n"; return 1; } $remote->autoflush(1);