#!/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";