Author: arkurth
Date: Tue Nov 15 19:23:17 2011
New Revision: 1202385

URL: http://svn.apache.org/viewvc?rev=1202385&view=rev
Log:
VCL-30
Added additional key to request info hash containing info about all users for a 
reservation. Added key to hash in DataStructure.pm allowing 
$self->get_reservation_users. This will eventually be called when granting 
access to a reservation.

Modified:
    incubator/vcl/trunk/managementnode/lib/VCL/DataStructure.pm
    incubator/vcl/trunk/managementnode/lib/VCL/utils.pm

Modified: incubator/vcl/trunk/managementnode/lib/VCL/DataStructure.pm
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/DataStructure.pm?rev=1202385&r1=1202384&r2=1202385&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/DataStructure.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/DataStructure.pm Tue Nov 15 
19:23:17 2011
@@ -188,6 +188,7 @@ $SUBROUTINE_MAPPINGS{reservation_passwor
 #$SUBROUTINE_MAPPINGS{reservation_remote_ip} = 
'$self->request_data->{reservation}{RESERVATION_ID}{remoteIP}';
 #$SUBROUTINE_MAPPINGS{reservation_requestid} = 
'$self->request_data->{reservation}{RESERVATION_ID}{requestid}';
 $SUBROUTINE_MAPPINGS{reservation_ready} = 
'$self->request_data->{reservation}{RESERVATION_ID}{READY}';
+$SUBROUTINE_MAPPINGS{reservation_users} = 
'$self->request_data->{reservation}{RESERVATION_ID}{users}';
 
 $SUBROUTINE_MAPPINGS{computer_data}             = 
'$self->request_data->{reservation}{RESERVATION_ID}{computer}';
 $SUBROUTINE_MAPPINGS{computer_current_image_id} = 
'$self->request_data->{reservation}{RESERVATION_ID}{computer}{currentimageid}';

Modified: incubator/vcl/trunk/managementnode/lib/VCL/utils.pm
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/utils.pm?rev=1202385&r1=1202384&r2=1202385&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/utils.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/utils.pm Tue Nov 15 19:23:17 2011
@@ -4699,7 +4699,7 @@ sub get_request_info {
        # Affiliation specific changes
        # Check if the user's affiliation is listed in the $NOT_STANDALONE 
variable
        my $not_standalone_list = "";
-       if(defined($ENV{management_node_info}{NOT_STANDALONE}) && 
$ENV{management_node_info}{NOT_STANDALONE}){
+       if (defined($ENV{management_node_info}{NOT_STANDALONE}) && 
$ENV{management_node_info}{NOT_STANDALONE}){
                $not_standalone_list = 
$ENV{management_node_info}{NOT_STANDALONE};
        } 
        if (grep(/$request_info{user}{affiliation}{name}/, split(/,/, 
$not_standalone_list))) {
@@ -4711,14 +4711,14 @@ sub get_request_info {
        }
 
        #if uid is 0 set STANDALONE
-       if($request_info{user}{uid} == 0) {
+       if ($request_info{user}{uid} == 0) {
                $request_info{user}{STANDALONE} = 1;
                notify($ERRORS{'OK'}, 0, "found NULL uid setting standalone 
flag: $request_info{user}{unityid}, uid: NULL");
        }
        
        # Fix the unityid if if the user's UID is >= 1000000
        # Remove the domain section if the user's unityid contains @...
-       if(defined($request_info{user}{uid})) {
+       if (defined($request_info{user}{uid})) {
                if ($request_info{user}{uid} >= 1000000 ) {
                        my ($correct_unity_id, $user_domain) = split /@/, 
$request_info{user}{unityid};
                        $request_info{user}{unityid}    = $correct_unity_id;
@@ -4742,6 +4742,7 @@ sub get_request_info {
 
        # Loop through all the reservations
        foreach my $reservation_id (keys %{$request_info{reservation}}) {
+               $request_info{reservation}{$reservation_id}{users} = {};
 
                # Set server request NULL values to 0
                if 
(defined($request_info{reservation}{$reservation_id}{serverrequest}{id})) {
@@ -4774,7 +4775,40 @@ sub get_request_info {
                        
$request_info{reservation}{$reservation_id}{serverrequest}{logingroupid} = 0;
                        
$request_info{reservation}{$reservation_id}{serverrequest}{monitored} = 0;
                }
-
+               
+               my $root_access = 
$request_info{reservation}{$reservation_id}{image}{imagemeta}{rootaccess};
+               
+               # Add the reservation user to the hash, set ROOTACCESS to value 
configured for image
+               $request_info{reservation}{$reservation_id}{users}{$user_id} = 
get_user_info($user_id);
+               
$request_info{reservation}{$reservation_id}{users}{$user_id}{ROOTACCESS} = 
$root_access;
+               
+               # If imagemeta.usergroupid is set, add the user group members 
to the hash, set ROOTACCESS to value configured for image
+               if (my $imagemeta_group_id = 
$request_info{reservation}{$reservation_id}{image}{imagemeta}{usergroupid}) {
+                       my $imagemeta_group_member_info = 
get_user_group_member_info($imagemeta_group_id);
+                       for my $imagemeta_user_id (keys 
%$imagemeta_group_member_info, $user_id) {
+                               
$request_info{reservation}{$reservation_id}{users}{$imagemeta_user_id} = 
get_user_info($imagemeta_user_id);
+                               
$request_info{reservation}{$reservation_id}{users}{$imagemeta_user_id}{ROOTACCESS}
 = $root_access;
+                       }
+               }
+               
+               # If server request and logingroupid is set, add user group 
members to hash, set ROOTACCESS to 0
+               if (my $login_group_id = 
$request_info{reservation}{$reservation_id}{serverrequest}{logingroupid}) {
+                       my $login_group_member_info = 
get_user_group_member_info($login_group_id);
+                       for my $login_user_id (keys %$login_group_member_info) {
+                               
$request_info{reservation}{$reservation_id}{users}{$login_user_id} = 
get_user_info($login_user_id);
+                               
$request_info{reservation}{$reservation_id}{users}{$login_user_id}{ROOTACCESS} 
= 0;
+                       }
+               }
+               
+               # If server request and admingroupid is set, add user group 
members to hash, set ROOTACCESS to 1
+               if (my $admin_group_id = 
$request_info{reservation}{$reservation_id}{serverrequest}{admingroupid}) {
+                       my $admin_group_member_info = 
get_user_group_member_info($admin_group_id);
+                       for my $admin_user_id (keys %$admin_group_member_info, 
$user_id) {
+                               
$request_info{reservation}{$reservation_id}{users}{$admin_user_id} = 
get_user_info($admin_user_id);
+                               
$request_info{reservation}{$reservation_id}{users}{$admin_user_id}{ROOTACCESS} 
= 1;
+                       }
+               }
+               
                # Confirm lastcheck time is not NULL
                if 
(!defined($request_info{reservation}{$reservation_id}{lastcheck})) {
                        $request_info{reservation}{$reservation_id}{lastcheck} 
= 0;


Reply via email to