Author: dimach
Date: Thu Sep  5 19:24:51 2013
New Revision: 1520393

URL: http://svn.apache.org/r1520393
Log:
VCL-722: changes to Linux.pm and Windows.pm to send shutdown via ONE controller

Modified:
    vcl/trunk/managementnode/lib/VCL/Module/OS/Linux.pm
    vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm

Modified: vcl/trunk/managementnode/lib/VCL/Module/OS/Linux.pm
URL: 
http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/Module/OS/Linux.pm?rev=1520393&r1=1520392&r2=1520393&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/Module/OS/Linux.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/Module/OS/Linux.pm Thu Sep  5 19:24:51 2013
@@ -2245,6 +2245,20 @@ sub shutdown {
                notify($ERRORS{'DEBUG'}, 0, "shutting down $computer_node_name 
and NOT waiting for power off");
        }
        
+       # If computer is on ONE cloud, shutdown via ONE controls:
+       
+       if ($self->provisioner->can("opennebula")) {
+               if(!$self->provisioner->power_off()) {
+                       notify($ERRORS{'CRITICAL'}, 0, "Couldn't shutdown 
$computer_node_name with provisioner->power_off()");
+                       return 0;
+               } 
+               else {
+                       notify($ERRORS{'DEBUG'}, 0, "Powered off computer 
$computer_node_name via provisioning module");
+                       return 1;
+               }
+       }
+       ######################################################
+       
        # Check if computer responds to ssh before preparing for shut down
        if ($self->wait_for_ssh(0)) {
                my $command = '/sbin/shutdown -h now';

Modified: vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm
URL: 
http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm?rev=1520393&r1=1520392&r2=1520393&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm Thu Sep  5 19:24:51 
2013
@@ -3668,6 +3668,23 @@ sub shutdown {
                notify($ERRORS{'DEBUG'}, 0, "shutting down 
$computer_node_name");
        }
        
+       # If computer is in ONE cloud, shutdown via ONE controls, else shutdown 
via shutdown.exe
+       
+       if($self->provisioner->can("opennebula")) {
+               if ($enable_dhcp) {
+                       my ($shutdown_exit_status, $shutdown_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $shutdown_command);
+                       notify($ERRORS{'DEBUG'}, 0, "Executed pre_shutdown 
command on $computer_node_name, exit status: $shutdown_exit_status, 
output:\n@{$shutdown_output}");
+               }
+               if(!$self->provisioner->power_off()) {
+                       notify($ERRORS{'CRITICAL'}, 0, "Couldn't shutdown 
$computer_node_name with provisioner->power_off()");
+                       return 0;
+               } 
+               else {
+                       notify($ERRORS{'DEBUG'}, 0, "Powered off computer 
$computer_node_name via provisioning module");
+                       return 1;
+               }
+       }
+       
        # Check if tsshutdn.exe exists on the computer
        # tsshutdn.exe is the preferred utility for Windows 2003, shutdown.exe 
often fails
        my $windows_product_name = $self->get_product_name() || '';


Reply via email to