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 2014/12/15 23:16:46 UTC

svn commit: r1645773 - in /vcl/trunk/managementnode: bin/vcld lib/VCL/DataStructure.pm lib/VCL/image.pm lib/VCL/inuse.pm lib/VCL/makeproduction.pm lib/VCL/new.pm lib/VCL/reclaim.pm lib/VCL/reserved.pm lib/VCL/utils.pm

Author: arkurth
Date: Mon Dec 15 22:16:45 2014
New Revision: 1645773

URL: http://svn.apache.org/r1645773
Log:
VCL-428
Changed utils.pm::get_request_info to return a hash reference.

Modified:
    vcl/trunk/managementnode/bin/vcld
    vcl/trunk/managementnode/lib/VCL/DataStructure.pm
    vcl/trunk/managementnode/lib/VCL/image.pm
    vcl/trunk/managementnode/lib/VCL/inuse.pm
    vcl/trunk/managementnode/lib/VCL/makeproduction.pm
    vcl/trunk/managementnode/lib/VCL/new.pm
    vcl/trunk/managementnode/lib/VCL/reclaim.pm
    vcl/trunk/managementnode/lib/VCL/reserved.pm
    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=1645773&r1=1645772&r2=1645773&view=diff
==============================================================================
--- vcl/trunk/managementnode/bin/vcld (original)
+++ vcl/trunk/managementnode/bin/vcld Mon Dec 15 22:16:45 2014
@@ -224,7 +224,7 @@ sub main () {
 				next REQUEST;
 			}
 			
-			my %request_info;
+			my $request_info;
 			
 			#===========================================================================
 			# Loop through the reservations associated with this request
@@ -294,24 +294,24 @@ sub main () {
 				}
 				
 				# Get the full set of database data for this request
-				if (!%request_info) {
-					if (%request_info = get_request_info($request_id)) {
+				if (!$request_info) {
+					if ($request_info = get_request_info($request_id)) {
 						notify($ERRORS{'DEBUG'}, $LOGFILE, "retrieved request information from database");
 						
 						# Set request variables that may have changed by other processes to their original values
 						# They may change if this is a cluster reservation
-						$request_info{state}{name}     = $request_state_name;
-						$request_info{laststate}{name} = $request_laststate_name;
-						$request_info{preload}         = $request_preload;
+						$request_info->{state}{name}     = $request_state_name;
+						$request_info->{laststate}{name} = $request_laststate_name;
+						$request_info->{preload}         = $request_preload;
 						
 						# Add the check_time result to the hash
-						$request_info{CHECKTIME} = $check_time_result;
+						$request_info->{CHECKTIME} = $check_time_result;
 						
 						# Check if preload was returned by check_time and that preload flag is 0
 						# The preload flag will be set to 1 by new.pm module after it's done
-						if ($check_time_result =~ /preload/ && !($request_info{preload})) {
+						if ($check_time_result =~ /preload/ && !($request_info->{preload})) {
 							notify($ERRORS{'OK'}, $LOGFILE, "request start time within 25-35 minute window and preload flag is 0, processing preload request");
-							$request_info{PRELOADONLY} = 1;
+							$request_info->{PRELOADONLY} = 1;
 						}
 					}
 					else {
@@ -321,11 +321,11 @@ sub main () {
 				}
 				
 				# Add the reservation ID to be processed to the hash
-				$request_info{RESERVATIONID} = $reservation_id;
+				$request_info->{RESERVATIONID} = $reservation_id;
 				
 				# Get a new data structure object
 				my $data_structure;
-				eval {$data_structure = new VCL::DataStructure({request_data => \%request_info, reservation_id => $reservation_id});};
+				eval {$data_structure = new VCL::DataStructure({request_data => $request_info, reservation_id => $reservation_id});};
 				if (my $error = Exception::Class::Base->caught()) {
 					notify($ERRORS{'CRITICAL'}, 0, "unable to create DataStructure object" . $error->message);
 					next RESERVATION;
@@ -344,7 +344,7 @@ sub main () {
 				insertloadlog($reservation_id, $computer_id, "begin", "beginning to process, state is $request_state_name");
 
 				# Make a new child process, passing it the request/reservation info
-				make_new_child({request_info => \%request_info, data_structure => $data_structure});
+				make_new_child({request_info => $request_info, data_structure => $data_structure});
 			} ## end foreach my $reservation_id (keys %{$info{request...
 		} ## end foreach my $request_id (keys %{$info{request}})
 

Modified: vcl/trunk/managementnode/lib/VCL/DataStructure.pm
URL: http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/DataStructure.pm?rev=1645773&r1=1645772&r2=1645773&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/DataStructure.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/DataStructure.pm Mon Dec 15 22:16:45 2014
@@ -947,18 +947,18 @@ sub refresh {
 	my $request_laststate_name = $self->get_request_laststate_name();
 
 	# Get the full set of database data for this request
-	if (my %request_info = get_request_info($request_id)) {
+	if (my $request_info = get_request_info($request_id)) {
 		notify($ERRORS{'DEBUG'}, 0, "retrieved current request information from database for request $request_id");
 
 		# Set the state names in the newly retrieved hash to their original values
-		$request_info{state}{name}     = $request_state_name;
-		$request_info{laststate}{name} = $request_laststate_name;
+		$request_info->{state}{name}     = $request_state_name;
+		$request_info->{laststate}{name} = $request_laststate_name;
 
 		# Replace the request data for this DataStructure object
-		$self->refresh_request_data(\%request_info);
+		$self->refresh_request_data($request_info);
 		notify($ERRORS{'DEBUG'}, 0, "updated DataStructure object with current request information from database");
 
-	} ## end if (my %request_info = get_request_info($request_id...
+	}
 	else {
 		notify($ERRORS{'WARNING'}, 0, "could not retrieve current request information from database");
 		return;

Modified: vcl/trunk/managementnode/lib/VCL/image.pm
URL: http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/image.pm?rev=1645773&r1=1645772&r2=1645773&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/image.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/image.pm Mon Dec 15 22:16:45 2014
@@ -32,13 +32,13 @@ VCL::image - Perl module for the VCL ima
  my $reservation_id = 6;
 
  # Call the VCL::utils::get_request_info subroutine to populate a hash
- my %request_info = get_request_info($request_id);
+ my $request_info = get_request_info($request_id);
 
  # Set the reservation ID in the hash
- $request_info{RESERVATIONID} = $reservation_id;
+ $request_info->{RESERVATIONID} = $reservation_id;
 
  # Create a new VCL::image object based on the request information
- my $image = VCL::image->new(%request_info);
+ my $image = VCL::image->new($request_info);
 
 =head1 DESCRIPTION
 

Modified: vcl/trunk/managementnode/lib/VCL/inuse.pm
URL: http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/inuse.pm?rev=1645773&r1=1645772&r2=1645773&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/inuse.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/inuse.pm Mon Dec 15 22:16:45 2014
@@ -32,13 +32,13 @@ VCL::inuse - Perl module for the VCL inu
  my $reservation_id = 6;
 
  # Call the VCL::utils::get_request_info subroutine to populate a hash
- my %request_info = get_request_info($request_id);
+ my $request_info = get_request_info->($request_id);
 
  # Set the reservation ID in the hash
- $request_info{RESERVATIONID} = $reservation_id;
+ $request_info->{RESERVATIONID} = $reservation_id;
 
  # Create a new VCL::inuse object based on the request information
- my $inuse = VCL::inuse->new(%request_info);
+ my $inuse = VCL::inuse->new($request_info);
 
 =head1 DESCRIPTION
 

Modified: vcl/trunk/managementnode/lib/VCL/makeproduction.pm
URL: http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/makeproduction.pm?rev=1645773&r1=1645772&r2=1645773&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/makeproduction.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/makeproduction.pm Mon Dec 15 22:16:45 2014
@@ -32,13 +32,13 @@ VCL::makeproduction - Perl module for th
  my $reservation_id = 6;
 
  # Call the VCL::utils::get_request_info subroutine to populate a hash
- my %request_info = get_request_info($request_id);
+ my $request_info = get_request_info->($request_id);
 
  # Set the reservation ID in the hash
- $request_info{RESERVATIONID} = $reservation_id;
+ $request_info->{RESERVATIONID} = $reservation_id;
 
  # Create a new VCL::makeproduction object based on the request information
- my $makeproduction = VCL::makeproduction->new(%request_info);
+ my $makeproduction = VCL::makeproduction->new($request_info);
 
 =head1 DESCRIPTION
 

Modified: vcl/trunk/managementnode/lib/VCL/new.pm
URL: http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/new.pm?rev=1645773&r1=1645772&r2=1645773&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/new.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/new.pm Mon Dec 15 22:16:45 2014
@@ -32,13 +32,13 @@ VCL::new - Perl module for the VCL new s
  my $reservation_id = 6;
 
  # Call the VCL::utils::get_request_info subroutine to populate a hash
- my %request_info = get_request_info($request_id);
+ my $request_info = get_request_info->($request_id);
 
  # Set the reservation ID in the hash
- $request_info{RESERVATIONID} = $reservation_id;
+ $request_info->{RESERVATIONID} = $reservation_id;
 
  # Create a new VCL::new object based on the request information
- my $new = VCL::new->new(%request_info);
+ my $new = VCL::new->new($request_info);
 
 =head1 DESCRIPTION
 

Modified: vcl/trunk/managementnode/lib/VCL/reclaim.pm
URL: http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/reclaim.pm?rev=1645773&r1=1645772&r2=1645773&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/reclaim.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/reclaim.pm Mon Dec 15 22:16:45 2014
@@ -32,13 +32,13 @@ VCL::reclaim - Perl module for the VCL r
  my $reservation_id = 6;
 
  # Call the VCL::utils::get_request_info subroutine to populate a hash
- my %request_info = get_request_info($request_id);
+ my $request_info = get_request_info($request_id);
 
  # Set the reservation ID in the hash
- $request_info{RESERVATIONID} = $reservation_id;
+ $request_info->{RESERVATIONID} = $reservation_id;
 
  # Create a new VCL::reclaim object based on the request information
- my $reclaim = VCL::reclaim->new(%request_info);
+ my $reclaim = VCL::reclaim->new($request_info);
 
 =head1 DESCRIPTION
 

Modified: vcl/trunk/managementnode/lib/VCL/reserved.pm
URL: http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/reserved.pm?rev=1645773&r1=1645772&r2=1645773&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/reserved.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/reserved.pm Mon Dec 15 22:16:45 2014
@@ -32,13 +32,13 @@ VCL::reserved - Perl module for the VCL
  my $reservation_id = 6;
 
  # Call the VCL::utils::get_request_info subroutine to populate a hash
- my %request_info = get_request_info($request_id);
+ my $request_info = get_request_info($request_id);
 
  # Set the reservation ID in the hash
- $request_info{RESERVATIONID} = $reservation_id;
+ $request_info->{RESERVATIONID} = $reservation_id;
 
  # Create a new VCL::reserved object based on the request information
- my $reserved = VCL::reserved->new(%request_info);
+ my $reserved = VCL::reserved->new($request_info);
 
 =head1 DESCRIPTION
 

Modified: vcl/trunk/managementnode/lib/VCL/utils.pm
URL: http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/utils.pm?rev=1645773&r1=1645772&r2=1645773&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/utils.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/utils.pm Mon Dec 15 22:16:45 2014
@@ -1766,64 +1766,58 @@ sub is_request_imaging {
 
 #/////////////////////////////////////////////////////////////////////////////
 
-=head2 get_next_image_default
+=head2 get_reservation_accounts
 
  Parameters  : $reservationid
- Returns     : userid,password,affiliation
+ Returns     : 
  Description : Used for server loads, provides list of users for group access
 
 =cut
 
 sub get_reservation_accounts {
-        my ($reservationid) = @_;
-        my ($calling_package, $calling_filename, $calling_line, $calling_sub) = caller(0);
-
-        if (!defined($reservationid)) {
-                notify($ERRORS{'WARNING'}, 0, "$calling_sub $calling_package missing mandatory variable: reservationid ");
-                return 0;
-        }
-
-        my $select_statement = "
-	SELECT DISTINCT
-	reservationaccounts.userid AS reservationaccounts_userid,
-	reservationaccounts.password AS reservationaccounts_password,
-	affiliation.name AS affiliation_name,
-	user.unityid AS user_name
-	FROM
-	reservationaccounts,
-	affiliation,
-	user
-	WHERE
-	user.id = reservationaccounts.userid AND
-	affiliation.id = user.affiliationid AND
-	reservationaccounts.reservationid = $reservationid
+	my ($reservation_id) = @_;
+	if (!defined($reservation_id)) {
+		notify($ERRORS{'WARNING'}, 0, "reservation ID argument was not supplied");
+		return 0;
+	}
+	
+	my $select_statement = "
+		SELECT DISTINCT
+		reservationaccounts.userid AS reservationaccounts_userid,
+		reservationaccounts.password AS reservationaccounts_password,
+		affiliation.name AS affiliation_name,
+		user.unityid AS user_name
+		FROM
+		reservationaccounts,
+		affiliation,
+		user
+		WHERE
+		user.id = reservationaccounts.userid AND
+		affiliation.id = user.affiliationid AND
+		reservationaccounts.reservationid = $reservation_id
 	";
-
-        # Call the database select subroutine
-        # This will return an array of one or more rows based on the select statement
-        my @selected_rows = database_select($select_statement);
-
-        my @ret_array;
+	
+	# Call the database select subroutine
+	# This will return an array of one or more rows based on the select statement
+	my @selected_rows = database_select($select_statement);
+	
+	my @ret_array;
 	my %user_info;
-
-        # Check to make sure 1 or more rows were returned
-        if (scalar @selected_rows > 0) {
+	
+	# Check to make sure 1 or more rows were returned
+	if (scalar @selected_rows > 0) {
 		# It contains a hash
-                for (@selected_rows) {
-                        my %reservation_acct= %{$_};
+		for (@selected_rows) {
+			my %reservation_acct= %{$_};
 			my $userid = $reservation_acct{reservationaccounts_userid};
 			$user_info{$userid}{"userid"} = $userid;
 			$user_info{$userid}{"password"} = $reservation_acct{reservationaccounts_password};
 			$user_info{$userid}{"affiliation"} = $reservation_acct{affiliation_name};
 			$user_info{$userid}{"username"} = $reservation_acct{user_name};
 		}
-		
 		return %user_info;
-
 	}
-		
 	return ();
-
 }
 
 #/////////////////////////////////////////////////////////////////////////////
@@ -2981,7 +2975,7 @@ sub database_execute {
 =head2  get_request_info
 
  Parameters  : $request_id, $no_cache (optional)
- Returns     : hash
+ Returns     : hash reference
  Description : Retrieves all request/reservation information.
 
 =cut
@@ -3195,7 +3189,7 @@ EOF
 	$request_info->{UPDATED}          = '0';
 	
 	#notify($ERRORS{'DEBUG'}, 0, "retrieved request info:\n" . format_data($request_info));
-	return %$request_info;
+	return $request_info;
 }
 
 #/////////////////////////////////////////////////////////////////////////////
@@ -5075,9 +5069,9 @@ EOF
 		my $request_id = $row->{request_id};
 		my $reservation_id = $row->{reservation_id};
 		
-		my %request_info = get_request_info($request_id);
+		my $request_info = get_request_info($request_id);
 		
-		if (!%request_info) {
+		if (!$request_info) {
 			# Request may have been deleted in this brief period
 			if (is_request_deleted($request_id)) {
 				notify($ERRORS{'OK'}, 0, "request was deleted before request info could be retrieved: $request_id");
@@ -5090,7 +5084,7 @@ EOF
 		}
 		
 		my $data_structure;
-		eval {$data_structure = new VCL::DataStructure({request_data => \%request_info, reservation_id => $reservation_id});};
+		eval {$data_structure = new VCL::DataStructure({request_data => $request_info, reservation_id => $reservation_id});};
 		if (my $exception = Exception::Class::Base->caught()) {
 			notify($ERRORS{'WARNING'}, 0, "unable to create DataStructure object" . $exception->message);
 			return;
@@ -6728,6 +6722,7 @@ EOF
 	else {
 		my $management_node_info = get_management_node_info();
 		if ($management_node_info) {
+			my $user_affiliation_name = $user_info->{affiliation}{name};
 			my $not_standalone_list = $management_node_info->{NOT_STANDALONE};
 			if (grep(/^$user_affiliation_name$/i, split(/[,;]/, $not_standalone_list))) {
 				notify($ERRORS{'DEBUG'}, 0, "non-standalone affiliation found for user $user_login_id:\nuser affiliation: $user_affiliation_name\nnot standalone list: $not_standalone_list");
@@ -7325,7 +7320,7 @@ sub populate_reservation_natport {
 		return;
 	}
 	
-	my $request_info = {get_reservation_request_info($reservation_id, 0)};
+	my $request_info = get_reservation_request_info($reservation_id, 0);
 	my $computer_id = $request_info->{reservation}{$reservation_id}{computerid};
 	my $computer_name = $request_info->{reservation}{$reservation_id}{computer}{SHORTNAME};
 	my $imagerevision_id = $request_info->{reservation}{$reservation_id}{imagerevision}{id};