Author: arkurth
Date: Thu May 3 13:28:24 2012
New Revision: 1333452
URL: http://svn.apache.org/viewvc?rev=1333452&view=rev
Log:
VCL-463
Changed update_reservation_accounts to use "INSERT IGNORE" instead of just
"INSERT" for adding entries to the reservationaccounts table. A unique index
has been added to the reservationid and userid columns of this table. The SQL
command would generate an error if the row already exists without IGNORE.
VCL-503
Uncommented call to OS.pm::execute_new in run_ssh_command. This causes
execute_new to be used for all SSH calls.
Modified:
incubator/vcl/trunk/managementnode/lib/VCL/utils.pm
Modified: incubator/vcl/trunk/managementnode/lib/VCL/utils.pm
URL:
http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/utils.pm?rev=1333452&r1=1333451&r2=1333452&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/utils.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/utils.pm Thu May 3 13:28:24 2012
@@ -2298,71 +2298,78 @@ sub get_reservation_accounts {
return ();
}
-
+
+#/////////////////////////////////////////////////////////////////////////////
+
+=head2 update_reservation_accounts
+
+ Parameters : $reservation_id, $userid, $password, $mode
+ Returns : boolean
+ Description :
+
+=cut
+
sub update_reservation_accounts {
- my $resid = shift;
- my $userid = shift;
+ my $reservation_id = shift;
+ my $user_id = shift;
my $password = shift;
my $mode = shift;
- if(!$mode) {
- notify($ERRORS{'WARNING'}, 0, "mode argument was not specified,
either add or delete");
- return;
+ if (!$mode) {
+ notify($ERRORS{'WARNING'}, 0, "mode argument was not specified,
it must be either add or delete");
+ return;
}
-
- if ( !$resid ) {
- notify($ERRORS{'WARNING'}, 0, "resid argument was not
specified");
- return;
+
+ if (!$reservation_id) {
+ notify($ERRORS{'WARNING'}, 0, "reservation ID argument was not
specified");
+ return;
}
- if ( !$userid ) {
- notify($ERRORS{'WARNING'}, 0, "userid argument was not
specified");
- return;
- }
+ if (!$user_id) {
+ notify($ERRORS{'WARNING'}, 0, "user ID argument was not
specified");
+ return;
+ }
- if ( !$password ) {
+ if (!$password) {
$password = '';
}
my $statement;
-
- #ADD
- if($mode =~ /add/i) {
- $statement = "
- INSERT INTO
- reservationaccounts
- (
- reservationid,
- userid,
- password
- )
- VALUES
- (
- '$resid',
- '$userid',
- '$password'
- )
- ";
- }
- elsif( $mode =~ /delete/i ) {
- $statement = "
- DELETE
- reservationaccounts
- FROM
- reservationaccounts
- WHERE
- reservationid = '$resid' AND
- userid = '$userid'
- "
-
+ if ($mode =~ /add/i) {
+ $statement = <<EOF;
+INSERT IGNORE INTO
+reservationaccounts
+(
+ reservationid,
+ userid,
+ password
+)
+VALUES
+(
+ '$reservation_id',
+ '$user_id',
+ '$password'
+)
+EOF
}
-
- if(database_execute($statement) ) {
- #notify($ERRORS{'OK'}, 0, "executed $statement $resid $userid");
+ elsif ($mode =~ /delete/i) {
+ $statement = <<EOF;
+DELETE
+reservationaccounts
+FROM
+reservationaccounts
+WHERE
+reservationid = '$reservation_id' AND
+userid = '$user_id'
+EOF
+ }
+
+ if (database_execute($statement)) {
+ #notify($ERRORS{'OK'}, 0, "executed $statement $reservation_id
$user_id");
return 1;
}
else {
- notify($ERRORS{'OK'}, 0, "failed to to execute statement=
$statement");
+ notify($ERRORS{'OK'}, 0, "failed to to execute statement to
update reservationaccounts table:\n$statement");
return 0;
}
}
@@ -5121,7 +5128,7 @@ sub run_ssh_command {
$timeout_seconds = 0 if (!$timeout_seconds);
$identity_paths = get_management_node_info()->{keys} if (!defined
$identity_paths || length($identity_paths) == 0);
-#return VCL::Module::OS::execute_new($node, $command, $output_level,
$timeout_seconds, $max_attempts, $port, $user);
+return VCL::Module::OS::execute_new($node, $command, $output_level,
$timeout_seconds, $max_attempts, $port, $user);
# TODO: Add ssh path to config file and set global variable
# Locate the path to the ssh binary