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");
}