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;