From f32f9dbc2b6bbdf1c7d8f419f9442c95c52fa77b Mon Sep 17 00:00:00 2001 From: jbjohnso Date: Fri, 26 Mar 2010 12:46:05 +0000 Subject: [PATCH] -Implement rpower suspend for vmware. git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@5589 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd --- xCAT-server/lib/xcat/plugins/esx.pm | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/xCAT-server/lib/xcat/plugins/esx.pm b/xCAT-server/lib/xcat/plugins/esx.pm index 79a90cfd9..e58e20f2e 100644 --- a/xCAT-server/lib/xcat/plugins/esx.pm +++ b/xCAT-server/lib/xcat/plugins/esx.pm @@ -947,7 +947,7 @@ sub power { } } if ($subcmd =~ /on/) { - if ($currstat eq 'off') { + if ($currstat eq 'off' or $currstat eq 'suspend') { if (not $args{vmview}) { #We are asking to turn on a system the hypervisor #doesn't know, attempt to register it first register_vm($hyp,$node,undef,\&power,\%args); @@ -965,7 +965,7 @@ sub power { $running_tasks{$task}->{hyp} = $args{hyp}; #$hyp_conns->{$hyp}; $running_tasks{$task}->{data} = { node => $node, successtext => $intent.'on', forceon=>$forceon }; } else { - sendmsg("on",$node); + sendmsg($currstat,$node); } } elsif ($subcmd =~ /off/) { if ($currstat eq 'on') { @@ -974,6 +974,16 @@ sub power { $running_tasks{$task}->{callback} = \&generic_task_callback; $running_tasks{$task}->{hyp} = $args{hyp}; $running_tasks{$task}->{data} = { node => $node, successtext => 'off' }; + } else { + sendmsg($currstat,$node); + } + } elsif ($subcmd =~ /suspend/) { + if ($currstat eq 'on') { + $task = $args{vmview}->SuspendVM_Task(); + $running_tasks{$task}->{task} = $task; + $running_tasks{$task}->{callback} = \&generic_task_callback; + $running_tasks{$task}->{hyp} = $args{hyp}; + $running_tasks{$task}->{data} = { node => $node, successtext => 'suspend' }; } else { sendmsg("off",$node); }