Author: fapeeler
Date: Fri May  2 20:22:33 2014
New Revision: 1592027

URL: http://svn.apache.org/r1592027
Log:
VCL-758

code to use server_inuse_check timing.
If serverrequest is detected, check_time routine will compare the 
server_inuse_check time variable instead of general_inuse_check variable


Modified:
    vcl/trunk/managementnode/bin/vcld
    vcl/trunk/managementnode/lib/VCL/utils.pm

Modified: vcl/trunk/managementnode/bin/vcld
URL: 
http://svn.apache.org/viewvc/vcl/trunk/managementnode/bin/vcld?rev=1592027&r1=1592026&r2=1592027&view=diff
==============================================================================
--- vcl/trunk/managementnode/bin/vcld (original)
+++ vcl/trunk/managementnode/bin/vcld Fri May  2 20:22:33 2014
@@ -204,6 +204,7 @@ sub main () {
                        my $request_start          = 
$info{request}{$request_id}{start};
                        my $request_end            = 
$info{request}{$request_id}{end};
                        my $request_preload        = 
$info{request}{$request_id}{preload};
+
                        
                        my @reservation_ids = sort { $a <=> $b } keys 
%{$info{request}{$request_id}{reservation}};
                        
@@ -235,7 +236,10 @@ sub main () {
                                my $reservation_info = 
$info{request}{$request_id}{reservation}{$reservation_id};
                                my $reservation_management_node_id = 
$reservation_info->{managementnodeid};
                                my $reservation_lastcheck = 
$reservation_info->{lastcheck};
-                               #notify($ERRORS{'DEBUG'}, $LOGFILE, "dump: " . 
format_data($reservation_info));
+                               my $server_request_id = 0;
+                               $server_request_id = 
$reservation_info->{serverrequestid} 
if(defined($reservation_info->{serverrequestid}));
+
+                               #notify($ERRORS{'DEBUG'}, $LOGFILE, "dump: " . 
format_data($info{request}{$request_id}));
                                
                                if ($management_node_id != 
$reservation_management_node_id) {
                                        notify($ERRORS{'DEBUG'}, $LOGFILE, 
"ignoring reservation $reservation_id assigned to management node ID 
$reservation_management_node_id");
@@ -244,8 +248,7 @@ sub main () {
                                
                                # Figure out the status of this reservation 
based on reservation times and the request state
                                # check_time_result can be: start, preload, 
end, poll, old, remove, 0
-                               my $check_time_result = 
check_time($request_start, $request_end, $reservation_lastcheck, 
$request_state_name, $request_laststate_name);
-                               #notify($ERRORS{'DEBUG'}, 0, "check_time 
returned \'$check_time_result\'");
+                               my $check_time_result = 
check_time($request_start, $request_end, $reservation_lastcheck, 
$request_state_name, $request_laststate_name, $server_request_id);
                                
                                # Do nothing if check_time returned 0
                                # Check this before querying for the large set 
of request data

Modified: vcl/trunk/managementnode/lib/VCL/utils.pm
URL: 
http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/utils.pm?rev=1592027&r1=1592026&r2=1592027&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/utils.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/utils.pm Fri May  2 20:22:33 2014
@@ -983,7 +983,7 @@ sub check_blockrequest_time {
 =cut
 
 sub check_time {
-       my ($request_start, $request_end, $reservation_lastcheck, 
$request_state_name, $request_laststate_name) = @_;
+       my ($request_start, $request_end, $reservation_lastcheck, 
$request_state_name, $request_laststate_name, $serverrequest) = @_;
        
        # Check the arguments
        if (!defined($request_state_name)) {
@@ -1086,16 +1086,27 @@ sub check_time {
                }
                else {
                        # End time is more than 10 minutes in the future
-                       #notify($ERRORS{'DEBUG'}, 0, "reservation will end in 
more than 10 minutes ($end_diff_minutes)");
-                       my $general_inuse_check_time = 
($ENV{management_node_info}->{GENERAL_INUSE_CHECK} * -1);
-
-                       if ($lastcheck_diff_minutes <= 
$general_inuse_check_time) {
-                               #notify($ERRORS{'DEBUG'}, 0, "reservation was 
last checked more than 5 minutes ago ($lastcheck_diff_minutes)");
-                               return "poll";
+                       if($serverrequest) {    
+                               my $server_inuse_check_time = 
($ENV{management_node_info}->{SERVER_INUSE_CHECK} * -1);
+                               if ($lastcheck_diff_minutes <= 
$server_inuse_check_time) {
+                                       return "poll";
+                               }
+                               else {
+                                       return 0;
+                               }
                        }
                        else {
-                               #notify($ERRORS{'DEBUG'}, 0, "reservation has 
been checked within the past 5 minutes ($lastcheck_diff_minutes)");
-                               return 0;
+                               #notify($ERRORS{'DEBUG'}, 0, "reservation will 
end in more than 10 minutes ($end_diff_minutes)");
+                               my $general_inuse_check_time = 
($ENV{management_node_info}->{GENERAL_INUSE_CHECK} * -1);
+
+                               if ($lastcheck_diff_minutes <= 
$general_inuse_check_time) {
+                                       #notify($ERRORS{'DEBUG'}, 0, 
"reservation was last checked more than 5 minutes ago 
($lastcheck_diff_minutes)");
+                                       return "poll";
+                               }
+                               else {
+                                       #notify($ERRORS{'DEBUG'}, 0, 
"reservation has been checked within the past 5 minutes 
($lastcheck_diff_minutes)");
+                                       return 0;
+                               }
                        }
                } ## end else [ if ($end_diff_minutes <= 10)
        } ## end elsif ($request_state_name =~ /inuse|imageinuse/) [ if 
($request_state_name =~ /new|imageprep|reload|tomaintenance|tovmhostinuse/)
@@ -3321,10 +3332,13 @@ sub get_management_node_requests {
    reservation.id AS reservation_id,
    reservation.requestid AS reservation_requestid,
    reservation.managementnodeid AS reservation_managementnodeid,
-       reservation.lastcheck AS reservation_lastcheck
+       reservation.lastcheck AS reservation_lastcheck,
+       
+       serverrequest.id AS ServerRequest_serverrequestid
 
    FROM
-   request,
+   request
+       LEFT JOIN (serverrequest) ON (serverrequest.requestid = request.id),
    reservation,
        state requeststate,
    state requestlaststate
@@ -3379,6 +3393,9 @@ sub get_management_node_requests {
                        elsif ($key =~ /reservation_/) {
                                
$requests{$request_id}{reservation}{$reservation_id}{$original_key} = $value;
                        }
+                       elsif ($key =~ /ServerRequest_/) {
+                               
$requests{$request_id}{reservation}{$reservation_id}{$original_key} = $value;
+                       }
                        else {
                                notify($ERRORS{'WARNING'}, 0, "unknown key 
found in SQL data: $key");
                        }


Reply via email to