You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by ar...@apache.org on 2016/02/18 17:53:12 UTC
svn commit: r1731094 - /vcl/trunk/managementnode/lib/VCL/reserved.pm
Author: arkurth
Date: Thu Feb 18 16:53:12 2016
New Revision: 1731094
URL: http://svn.apache.org/viewvc?rev=1731094&view=rev
Log:
VCL-934
Added check in reserved.pm for server requests when retrieving 'initialconnecttimeout' computerloadlog entry to prevent warnings in vcld.log.
Modified:
vcl/trunk/managementnode/lib/VCL/reserved.pm
Modified: vcl/trunk/managementnode/lib/VCL/reserved.pm
URL: http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/reserved.pm?rev=1731094&r1=1731093&r2=1731094&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/reserved.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/reserved.pm Thu Feb 18 16:53:12 2016
@@ -102,7 +102,7 @@ sub process {
my $computer_short_name = $self->data->get_computer_short_name();
my $is_parent_reservation = $self->data->is_parent_reservation();
my $parent_reservation_id = $self->data->get_parent_reservation_id();
- my $server_request_id = $self->data->get_server_request_id();
+ my $is_server_request = $self->data->is_server_request();
my $imagemeta_checkuser = $self->data->get_imagemeta_checkuser();
my $acknowledge_timeout_seconds = $self->os->get_timings('acknowledgetimeout');
@@ -158,6 +158,7 @@ sub process {
);
# Wait for the user to acknowledge the request by clicking Connect button or from API
+ # Note: for server requests, this will always return true because the frontend inserts reservation.remoteIP when the reservation is made
my $user_acknowledged = $self->code_loop_timeout(sub{$self->user_acknowledged()}, [], 'waiting for user acknowledgement', $acknowledge_timeout_remaining_seconds, 1, 10);
if (!$user_acknowledged) {
$self->notify_user_timeout_no_acknowledgement();
@@ -168,19 +169,24 @@ sub process {
insertloadlog($reservation_id, $computer_id, "noinitialconnection", "user clicked Connect");
delete_computerloadlog_reservation($reservation_id, 'acknowledgetimeout');
- # The frontend should have inserted an 'initialconnecttimeout' computerloadlog entry for the parent reservation, retrieve its timestamp
- my $connection_check_start_epoch_seconds = get_reservation_computerloadlog_time($parent_reservation_id, 'initialconnecttimeout');
- if ($connection_check_start_epoch_seconds) {
- notify($ERRORS{'DEBUG'}, 0, "retrieved timestamp of computerloadlog 'initialconnecttimeout' entry inserted by web frontend: $connection_check_start_epoch_seconds");
+ # For non-server requests, the frontend should have inserted an 'initialconnecttimeout' computerloadlog entry for the parent reservation when the user clicks Connect
+ # Web uses timestamp of this to determine when next to refresh the page
+ # The timestamp of this computerloadlog entry will be used to determine when to timeout the connection checking during the inuse state
+ my $connection_check_start_epoch_seconds;
+ if ($is_server_request) {
+ $connection_check_start_epoch_seconds = time;
+ insertloadlog($parent_reservation_id, $computer_id, "initialconnecttimeout", "begin initial connection timeout ($initial_connect_timeout_seconds seconds)");
}
else {
- $connection_check_start_epoch_seconds = time;
- notify($ERRORS{'WARNING'}, 0, "failed to retrieve timestamp of computerloadlog 'initialconnecttimeout' entry, web frontend should have inserted this, inserting new entry");
-
- # initialconnecttimeout should be inserted immediately after user acknowledged
- # Web uses timestamp of this to determine when next to refresh the page
- # The timestamp of this computerloadlog entry will be used to determine when to timeout the connection checking during the inuse state
- insertloadlog($reservation_id, $computer_id, "initialconnecttimeout", "begin initial connection timeout ($initial_connect_timeout_seconds seconds)");
+ $connection_check_start_epoch_seconds = get_reservation_computerloadlog_time($parent_reservation_id, 'initialconnecttimeout');
+ if ($connection_check_start_epoch_seconds) {
+ notify($ERRORS{'DEBUG'}, 0, "retrieved timestamp of computerloadlog 'initialconnecttimeout' entry inserted by web frontend: $connection_check_start_epoch_seconds");
+ }
+ else {
+ notify($ERRORS{'WARNING'}, 0, "failed to retrieve timestamp of computerloadlog 'initialconnecttimeout' entry, web frontend should have inserted this, inserting new entry");
+ $connection_check_start_epoch_seconds = time;
+ insertloadlog($reservation_id, $computer_id, "initialconnecttimeout", "begin initial connection timeout ($initial_connect_timeout_seconds seconds)");
+ }
}
# Call OS module's grant_access() subroutine which adds user accounts to computer
@@ -237,7 +243,7 @@ sub process {
if (!$imagemeta_checkuser || !$request_checkuser) {
notify($ERRORS{'OK'}, 0, "never detected user connection, skipping timeout, imagemeta checkuser: $imagemeta_checkuser, request checkuser: $request_checkuser");
}
- elsif ($server_request_id) {
+ elsif ($is_server_request) {
notify($ERRORS{'OK'}, 0, "never detected user connection, skipping timeout, server reservation");
}
elsif (is_request_deleted($request_id)) {