xcat-core/xCAT-server/share/xcat/cons/xen

50 lines
1.2 KiB
Perl
Executable File

#!/usr/bin/env perl
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
BEGIN
{
use Time::HiRes qw(sleep);
$::XCATROOT = $ENV{'XCATROOT'} ? $ENV{'XCATROOT'} : '/opt/xcat';
my $sleepint=int(rand(10));
print "Opening console in ".(0.5*$sleepint)." seconds...\n";
sleep (0.5*$sleepint);
}
use lib "$::XCATROOT/lib/perl";
$ENV{HOME}='/root/';
require xCAT::Client;
require File::Basename;
import File::Basename;
my $scriptname = $0;
my $cmdref={
command=>"getxencons",
arg=>"text",
noderange=>$ARGV[0]
};
use Data::Dumper;
my $dsthost;
my $dstty;
my $speed;
sub getans {
my $rsp = shift;
if ($rsp->{node}) {
$dsthost = $rsp->{node}->[0]->{sshhost}->[0];
$dstty = $rsp->{node}->[0]->{psuedotty}->[0];
$speed = $rsp->{node}->[0]->{baudrate}->[0];
}
}
xCAT::Client::submit_request($cmdref,\&getans);
until ($dsthost and $speed and $dstty) {
print "console not ready";
sleep 5+int(rand(10));
xCAT::Client::submit_request($cmdref,\&getans);
}
exec "ssh -t $dsthost cu -s $speed -l $dstty";
#my $pathtochild= dirname($scriptname). "/";
#exec $pathtochild."blade.expect $mm $slot $username $password";