Author: fapeeler Date: Fri Aug 5 16:35:37 2011 New Revision: 1154301 URL: http://svn.apache.org/viewvc?rev=1154301&view=rev Log: VCL-463
updated to handle adding a group of users for server loads Modified: incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Linux.pm Modified: incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Linux.pm URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Linux.pm?rev=1154301&r1=1154300&r2=1154301&view=diff ============================================================================== --- incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Linux.pm (original) +++ incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Linux.pm Fri Aug 5 16:35:37 2011 @@ -864,6 +864,7 @@ sub grant_access { my $user = $self->data->get_user_login_id(); my $computer_node_name = $self->data->get_computer_node_name(); my $identity = $self->data->get_image_identity; + my $server_request_id = $self->data->get_server_request_id(); notify($ERRORS{'OK'}, 0, "In grant_access routine $user,$computer_node_name"); my @sshcmd; @@ -883,9 +884,26 @@ sub grant_access { notify($ERRORS{'CRITICAL'}, 0, "failed to add AllowUsers $user to external_sshd_config"); return 0; } + + notify($ERRORS{'OK'}, 0, "server_request_id= $server_request_id"); + + if ( $server_request_id ) { + my $server_allow_user_list = $self->data->get_server_ssh_allow_users(); + notify($ERRORS{'OK'}, 0, "server_allow_user_list= $server_allow_user_list"); + if ( $server_allow_user_list ) { + + $cmd = "echo \"AllowUsers $server_allow_user_list\" >> /etc/ssh/external_sshd_config"; + if (run_ssh_command($computer_node_name, $identity, $cmd, "root")) { + notify($ERRORS{'DEBUG'}, 0, "added AllowUsers $server_allow_user_list to external_sshd_config"); + } + else { + notify($ERRORS{'CRITICAL'}, 0, "failed to add AllowUsers $server_allow_user_list to external_sshd_config"); + } + } + } undef @sshcmd; - @sshcmd = run_ssh_command($computer_node_name, $identity, "/etc/init.d/ext_sshd restart", "root"); + @sshcmd = run_ssh_command($computer_node_name, $identity, "/etc/init.d/ext_sshd stop; /etc/init.d/ext_sshd start", "root"); foreach my $l (@{$sshcmd[1]}) { if ($l =~ /Stopping ext_sshd:/i) { @@ -896,6 +914,8 @@ sub grant_access { } } #foreach notify($ERRORS{'OK'}, 0, "started ext_sshd on $computer_node_name"); + + return 1; } ## end sub grant_access @@ -2846,7 +2866,7 @@ sub create_user { foreach my $l (@{$sshcmd[1]}) { if ($l =~ /$username exists/) { notify($ERRORS{'OK'}, 0, "detected user already has account"); - if ($self->delete_user()) { + if ($self->delete_user($username)) { notify($ERRORS{'OK'}, 0, "user has been deleted from $computer_node_name"); @sshcmd = run_ssh_command($computer_node_name, $management_node_keys, $useradd_string, "root"); } @@ -2901,7 +2921,37 @@ sub create_user { =cut sub update_server_access { + + my ($self) = shift; + + if (ref($self) !~ /linux/i) { + notify($ERRORS{'CRITICAL'}, 0, "subroutine was called as a function, it must be called as a class method"); + return; + } + + my ($server_allow_user_list) = shift; + + my $computer_node_name = $self->data->get_computer_node_name(); + my $identity = $self->data->get_image_identity; + + if ( !$server_allow_user_list ) { + my $server_allow_user_list = $self->data->get_server_ssh_allow_users(); + } + + notify($ERRORS{'OK'}, 0, "server_allow_user_list= $server_allow_user_list"); + if ( $server_allow_user_list ) { + + my $cmd = "echo \"AllowUsers $server_allow_user_list\" >> /etc/ssh/external_sshd_config"; + if (run_ssh_command($computer_node_name, $identity, $cmd, "root")) { + notify($ERRORS{'DEBUG'}, 0, "added AllowUsers $server_allow_user_list to external_sshd_config"); + } + else { + notify($ERRORS{'CRITICAL'}, 0, "failed to add AllowUsers $server_allow_user_list to external_sshd_config"); + } + } + + return 1; }