Author: arkurth
Date: Thu Nov 11 21:01:29 2010
New Revision: 1034121

URL: http://svn.apache.org/viewvc?rev=1034121&view=rev
Log:
VCL-127
Updated vcld to add a reference to the DataStructure object for a reservation 
to %ENV.  This allows it to be accessed from subroutines which aren't called as 
a VCL::Module object method.  Also cleaned up some old, unused code.

Modified:
    incubator/vcl/trunk/managementnode/bin/vcld

Modified: incubator/vcl/trunk/managementnode/bin/vcld
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/bin/vcld?rev=1034121&r1=1034120&r2=1034121&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/bin/vcld (original)
+++ incubator/vcl/trunk/managementnode/bin/vcld Thu Nov 11 21:01:29 2010
@@ -156,9 +156,10 @@ sub main () {
                delete $ENV{request_id};
                delete $ENV{reservation_id};
                delete $ENV{state};
+               delete $ENV{data};
                
                sleep $management_node_checkin_interval;
-                       
+               
                
#===========================================================================
                # Update lastcheckin for this management node
                my $lastcheckin_timestamp = 
update_lastcheckin($management_node_id);
@@ -313,6 +314,9 @@ sub main () {
                                        next RESERVATION;
                                }
                                
+                               # Add the DataStructure reference to %ENV so it 
can be accessed from non-object methods
+                               $ENV{data} = $data_structure;
+                               
                                # Update the request state to pending, 
laststate to next state
                                # Pending is set now so vcld doesn't try to 
process it again
                                # The previous state is already in the hash as 
the laststate value
@@ -347,6 +351,7 @@ sub main () {
                delete $ENV{request_id};
                delete $ENV{reservation_id};
                delete $ENV{state};
+               delete $ENV{data};
 
                
#===========================================================================
                # Get all the block requests assigned to this management node
@@ -513,39 +518,6 @@ sub make_new_child {
                notify($ERRORS{'WARNING'}, $LOGFILE, "$state_module module 
could not be loaded");
        }
 
-       # For testing purposes on Windows
-       if ($^O =~ /win/i) {
-               # Set the request_id and reservation_id environment variables
-               $ENV{request_id}     = $request_id;
-               $ENV{reservation_id} = $reservation_id;
-
-               # Set the vcld environment variable to 0 so other subroutines 
know if this is the vcld or child process
-               $ENV{vcld} = 0;
-               notify($ERRORS{'DEBUG'}, $LOGFILE, "vcld environment variable 
set to $ENV{vcld} for this process");
-
-               my $kid;
-               if ($kid = ($state_module)->new({%{$request_data}, 
data_structure => $data_structure})) {
-                       notify($ERRORS{'OK'}, $LOGFILE, "$state object created 
and initialized");
-                       # Set the request_id and reservation_id environment 
variables
-                       $kid->process();
-               }
-               else {
-                       notify($ERRORS{'CRITICAL'}, $LOGFILE, "$state object 
could not be created and initialized");
-                       switch_state($request_data, 'failed', '', 'failed', 1);
-               }
-
-               # Set the request_id and reservation_id environment variables
-               delete $ENV{request_id};
-               delete $ENV{reservation_id};
-               delete $ENV{state};
-
-               # Restore the vcld environment variable to 1
-               $ENV{vcld} = 1;
-               
-               # Only return from make_new_child if running on Windows for 
testing without actually forking
-               return;
-       } ## end if ($^O =~ /win/i)
-
        # Build a signal set using POSIX::SigSet->new, contains only the SIGINT 
signal
        my $sigset = POSIX::SigSet->new(SIGINT);
        
@@ -586,6 +558,7 @@ sub make_new_child {
                        $ENV{request_id}     = $request_id;
                        $ENV{reservation_id} = $reservation_id if 
$reservation_id;
                        $ENV{state}          = $state;
+                       $ENV{data}           = $data_structure;
 
                        # Create a new VCL state object, passing it the 
reservation data
                        if (my $state_object = 
($state_module)->new({%{$request_data}, data_structure => $data_structure})) {


Reply via email to