Author: arkurth
Date: Thu Jun  4 20:22:40 2009
New Revision: 781848

URL: http://svn.apache.org/viewvc?rev=781848&view=rev
Log:
VCL-144
Changed name of image_creation_failed() sub in image.pm to 
reservation_failed(). There is a sub named reservation_failed() in State.pm. 
Having a sub with the same name in image.pm will cause any calls to this sub 
for imaging reservations to use the one in image.pm because of inheritance. 
Also changed name of image_creation_successful() to reservation_successful() 
for consistency. 

VCL-144
There were calls in xCAT.pm to image_creation_failed(). This is a state module 
function and provisioning modules don't have access to call state module 
functions so the call would have failed. I changed these calls to return 0. 
This will return control to the state module, which will then call 
reservation_failed();

VCL-23
Changed behavior in xCAT.pm::capture() when the OS module returns from 
pre_capture(). It now waits up to 2 minutes for the computer to shut down 
instead of shutting the computer down immediately. This will fix a problem 
where the OS initiates a shutdown then returns immediately, then xCAT.pm forces 
a power off while the OS is shutting down.

VCL-23
Added check for the existence of the TransardAFSDaemon service before 
attempting to stop it in clean_hard_drive(). This prevents an error from 
appearing in the log file if the service isn't installed.


Modified:
    incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows_mod.pm
    incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/xCAT.pm
    incubator/vcl/trunk/managementnode/lib/VCL/image.pm

Modified: incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows_mod.pm
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows_mod.pm?rev=781848&r1=781847&r2=781848&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows_mod.pm 
(original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows_mod.pm Thu Jun 
 4 20:22:40 2009
@@ -5857,7 +5857,9 @@
        );
 
        # Attempt to stop the AFS service, needed to delete AFS files
-       $self->stop_service('TransarcAFSDaemon');
+       if ($self->service_exists('TransarcAFSDaemon')) {
+               $self->stop_service('TransarcAFSDaemon');
+       }
 
        # Loop through the directories to empty
        # Don't care if they aren't emptied

Modified: incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/xCAT.pm
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/xCAT.pm?rev=781848&r1=781847&r2=781848&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/xCAT.pm 
(original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/xCAT.pm Thu 
Jun  4 20:22:40 2009
@@ -1242,14 +1242,13 @@
                        notify($ERRORS{'WARNING'}, 0, "OS module pre_capture() 
failed");
                        return 0;
                }
-
-               # Get the power status, make sure computer is off
-               my $power_status = $self->power_status();
-               notify($ERRORS{'DEBUG'}, 0, "retrieved power status: 
$power_status");
-               if ($power_status eq 'off') {
-                       notify($ERRORS{'OK'}, 0, "verified $computer_node_name 
power is off");
+               
+               # The OS module should turn the computer power off
+               # Wait up to 2 minutes for the computer's power status to be off
+               if ($self->wait_for_off(2)) {
+                       notify($ERRORS{'OK'}, 0, "computer $computer_node_name 
power is off");
                }
-               elsif ($power_status eq 'on') {
+               else {
                        notify($ERRORS{'WARNING'}, 0, "$computer_node_name 
power is still on, turning computer off");
 
                        # Attempt to power off computer
@@ -1260,22 +1259,18 @@
                                notify($ERRORS{'WARNING'}, 0, "failed to power 
off $computer_node_name");
                                return 0;
                        }
-               } ## end elsif ($power_status eq 'on')  [ if ($power_status eq 
'off')
-               else {
-                       notify($ERRORS{'WARNING'}, 0, "failed to determine 
power status of $computer_node_name");
-                       return 0;
                }
        } ## end if ($self->os->can("pre_capture"))
        elsif ($self->os->can("capture_prepare")) {
                notify($ERRORS{'OK'}, 0, "calling OS module's capture_prepare() 
subroutine");
                if (!$self->os->capture_prepare()) {
                        notify($ERRORS{'WARNING'}, 0, "OS module 
capture_prepare() failed");
-                       $self->image_creation_failed();
+                       return 0;
                }
        }
        else {
                notify($ERRORS{'WARNING'}, 0, "OS module does not have either a 
pre_capture() or capture_prepare() subroutine");
-               $self->image_creation_failed();
+               return 0;
        }
 
 
@@ -1324,12 +1319,12 @@
                notify($ERRORS{'OK'}, 0, "calling OS module's capture_start() 
subroutine");
                if (!$self->os->capture_start()) {
                        notify($ERRORS{'WARNING'}, 0, "OS module 
capture_start() failed");
-                       $self->image_creation_failed();
+                       return 0;
                }
        }
        else {
                notify($ERRORS{'WARNING'}, 0, "OS module does not have either a 
pre_capture() or capture_start() subroutine");
-               $self->image_creation_failed();
+               return 0;
        }
 
 

Modified: incubator/vcl/trunk/managementnode/lib/VCL/image.pm
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/image.pm?rev=781848&r1=781847&r2=781848&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/image.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/image.pm Thu Jun  4 20:22:40 2009
@@ -135,11 +135,11 @@
        my $image_already_exists = $self->provisioner->does_image_exist();
        if ($image_already_exists) {
                notify($ERRORS{'CRITICAL'}, 0, "image $image_name already 
exists in the repository");
-               $self->image_creation_failed();
+               $self->reservation_failed();
        }
        elsif (!defined($image_already_exists)) {
                notify($ERRORS{'CRITICAL'}, 0, "image $image_name already 
partially exists in the repository");
-               $self->image_creation_failed();
+               $self->reservation_failed();
        }
        else {
                notify($ERRORS{'OK'}, 0, "image $image_name does not exist in 
the repository");
@@ -164,7 +164,7 @@
                }
                else {
                        notify($ERRORS{'WARNING'}, 0, "$image_name image failed 
to be captured by provisioning module");
-                       $self->image_creation_failed();
+                       $self->reservation_failed();
                }
        }
        # --- END NEW MODULARIZED METHOD ---
@@ -175,25 +175,25 @@
                notify($ERRORS{'OK'}, 0, "OS modularization supported, 
beginning OS module capture prepare");
                if (!$self->os->capture_prepare()) {
                        notify($ERRORS{'WARNING'}, 0, "OS module capture 
prepare failed");
-                       $self->image_creation_failed();
+                       $self->reservation_failed();
                }
 
                notify($ERRORS{'OK'}, 0, "beginning provisioning module capture 
prepare");
                if (!$self->provisioner->capture_prepare()) {
                        notify($ERRORS{'WARNING'}, 0, "provisioning module 
capture prepare failed");
-                       $self->image_creation_failed();
+                       $self->reservation_failed();
                }
                
                notify($ERRORS{'OK'}, 0, "beginning OS module capture start");
                if (!$self->os->capture_start()) {
                        notify($ERRORS{'WARNING'}, 0, "OS module capture start 
failed");
-                       $self->image_creation_failed();
+                       $self->reservation_failed();
                }
 
                notify($ERRORS{'OK'}, 0, "beginning provisioning module capture 
monitor");
                if (!$self->provisioner->capture_monitor()) {
                        notify($ERRORS{'WARNING'}, 0, "provisioning module 
capture monitor failed");
-                       $self->image_creation_failed();
+                       $self->reservation_failed();
                }
 
        } ## end if ($computer_type eq "blade" && $self->os)
@@ -210,7 +210,7 @@
        }
        else {
                notify($ERRORS{'CRITICAL'}, 0, "unsupported computer type: 
$computer_type");
-               $self->image_creation_failed();
+               $self->reservation_failed();
        }
 
        # Image creation was successful, proceed to update database tables
@@ -268,18 +268,18 @@
        # Check if image creation was successful and database tables were 
successfully updated
        # Notify user and admins of the results
        if ($create_image_result) {
-               $self->image_creation_successful($image_size);
+               $self->reservation_successful($image_size);
        }
 
        else {
                notify($ERRORS{'CRITICAL'}, 0, "image creation failed, see 
previous log messages");
-               $self->image_creation_failed();
+               $self->reservation_failed();
        }
 
 } ## end sub process
 #/////////////////////////////////////////////////////////////////////////////
 
-sub image_creation_successful {
+sub reservation_successful {
        my $self           = shift;
        my $image_size_old = shift;
 
@@ -359,11 +359,11 @@
 
        notify($ERRORS{'OK'}, 0, "exiting");
        exit;
-} ## end sub image_creation_successful
+} ## end sub reservation_successful
 
 #/////////////////////////////////////////////////////////////////////////////
 
-sub image_creation_failed {
+sub reservation_failed {
        my $self = shift;
 
        my $request_data               = $self->data->get_request_data();
@@ -456,7 +456,7 @@
 
        notify($ERRORS{'OK'}, 0, "exiting");
        exit;
-} ## end sub image_creation_failed
+} ## end sub reservation_failed
 
 #/////////////////////////////////////////////////////////////////////////////
 


Reply via email to