-Have xen plugin not hang on certain hypervisors on a misconfiguration of ssh

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@2682 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
jbjohnso 2009-01-31 19:51:04 +00:00
parent ea7a896bd3
commit 58b51e8acf

View File

@ -329,7 +329,7 @@ sub pick_target {
if ($_ eq $currhyp) { next; } #skip current node
if (grep { "$_" eq $cand } @destblacklist) { print "$_ was blacklisted\n"; next; } #skip blacklisted destinations
print "maybe $_\n";
$targconn = Sys::Virt->new(uri=>"xen+ssh://".$_);
$targconn = Sys::Virt->new(uri=>"xen+ssh://".$_."?no_tty=1");
unless ($targconn) { next; } #skip unreachable destinations
foreach ($targconn->list_domains()) {
if ($_->get_name() eq 'Domain-0') { next; } #Dom0 memory usage is elastic, we are interested in HVM DomU memory, which is inelastic
@ -355,7 +355,7 @@ sub migrate {
$targ = pick_target($node);
}
my $prevhyp;
my $target = "xen+ssh://".$targ;
my $target = "xen+ssh://".$targ."?no_tty=1";
my $currhyp="xen+ssh://";
if ($vmhash->{$node}->[0]->{host}) {
$prevhyp=$vmhash->{$node}->[0]->{host};
@ -363,6 +363,7 @@ sub migrate {
} else {
return (1,"Unable to find current location of $node");
}
$currhyp.="?no_tty=1";
if ($currhyp eq $target) {
return (0,"Guest is already on host $targ");
}
@ -373,7 +374,7 @@ sub migrate {
my $rc=system("virsh -c $currhyp migrate --live $node $target");
system("arp -d $node"); #Make ethernet fabric take note of change
send($sock,"dummy",0,$pa);
my $newhypconn= Sys::Virt->new(uri=>"xen+ssh://".$targ);
my $newhypconn= Sys::Virt->new(uri=>"xen+ssh://".$targ."?no_tty=1");
my $dom;
eval {
$dom = $newhypconn->get_domain_by_name($node);
@ -622,7 +623,7 @@ sub process_request {
foreach (@$noderange) {
$hypconn=undef;
push @destblacklist,$_;
$hypconn= Sys::Virt->new(uri=>"xen+ssh://".$_);
$hypconn= Sys::Virt->new(uri=>"xen+ssh://".$_."?no_tty=1");
foreach ($hypconn->list_domains()) {
my $guestname = $_->get_name();
if ($guestname eq 'Domain-0') {
@ -842,7 +843,7 @@ sub dohyp {
$vmtab = xCAT::Table->new("vm");
$hypconn= Sys::Virt->new(uri=>"xen+ssh://".$hyp);
$hypconn= Sys::Virt->new(uri=>"xen+ssh://".$hyp."?no_tty=1");
unless ($hypconn) {
my %err=(node=>[]);
foreach (keys %{$hyphash{$hyp}->{nodes}}) {