You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2013/10/12 18:51:01 UTC
git commit: stress: add username/password authentication support
Updated Branches:
refs/heads/cassandra-1.2 639c01a35 -> 5fab1276c
stress: add username/password authentication support
patch by Mikhail Stepura; reviewed by Aleksey Yeschenko for
CASSANDRA-6068
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5fab1276
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5fab1276
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5fab1276
Branch: refs/heads/cassandra-1.2
Commit: 5fab1276cae60d59dfbeafab98b9c6d1bce2e7f0
Parents: 639c01a
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Sat Oct 12 23:49:47 2013 +0700
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Sat Oct 12 23:49:47 2013 +0700
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/stress/Session.java | 32 ++++++++++++++++++--
2 files changed, 30 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/5fab1276/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 7d63a4b..afb1464 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -21,6 +21,7 @@
* Properly error out on CREATE INDEX for counters table (CASSANDRA-6160)
* Handle JMX notification failure for repair (CASSANDRA-6097)
* (Hadoop) Fetch no more than 128 splits in parallel (CASSANDRA-6169)
+ * stress: add username/password authentication support (CASSANDRA-6068)
1.2.10
http://git-wip-us.apache.org/repos/asf/cassandra/blob/5fab1276/tools/stress/src/org/apache/cassandra/stress/Session.java
----------------------------------------------------------------------
diff --git a/tools/stress/src/org/apache/cassandra/stress/Session.java b/tools/stress/src/org/apache/cassandra/stress/Session.java
index d527278..9c5d5a9 100644
--- a/tools/stress/src/org/apache/cassandra/stress/Session.java
+++ b/tools/stress/src/org/apache/cassandra/stress/Session.java
@@ -25,6 +25,8 @@ import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import com.yammer.metrics.Metrics;
+
+import org.apache.cassandra.auth.IAuthenticator;
import org.apache.cassandra.cli.transport.FramedTransportFactory;
import org.apache.cassandra.config.CFMetaData;
import org.apache.cassandra.config.EncryptionOptions;
@@ -114,7 +116,9 @@ public class Session implements Serializable
availableOptions.addOption("alg", SSL_ALGORITHM, true, "SSL: algorithm (default: SunX509)");
availableOptions.addOption("st", SSL_STORE_TYPE, true, "SSL: type of store");
availableOptions.addOption("ciphers", SSL_CIPHER_SUITES, true, "SSL: comma-separated list of encryption suites to use");
- availableOptions.addOption("th", "throttle", true, "Throttle the total number of operations per second to a maximum amount.");
+ availableOptions.addOption("th", "throttle", true, "Throttle the total number of operations per second to a maximum amount.");
+ availableOptions.addOption("un", "username", true, "Username for authentication.");
+ availableOptions.addOption("pw", "password", true, "Password for authentication.");
}
private int numKeys = 1000 * 1000;
@@ -131,6 +135,8 @@ public class Session implements Serializable
private int superColumns = 1;
private String compression = null;
private String compactionStrategy = null;
+ private String username = null;
+ private String password = null;
private int progressInterval = 10;
private int keysPerCall = 1000;
@@ -438,6 +444,11 @@ public class Session implements Serializable
if (cmd.hasOption("tf"))
transportFactory = validateAndSetTransportFactory(cmd.getOptionValue("tf"));
+ if (cmd.hasOption("un"))
+ username = cmd.getOptionValue("un");
+
+ if (cmd.hasOption("pw"))
+ password = cmd.getOptionValue("pw");
}
catch (ParseException e)
{
@@ -725,17 +736,32 @@ public class Session implements Serializable
try
{
- if(!transport.isOpen())
+ if (!transport.isOpen())
transport.open();
if (enable_cql)
client.set_cql_version(cqlVersion);
if (setKeyspace)
- {
client.set_keyspace("Keyspace1");
+
+ if (username != null && password != null)
+ {
+ Map<String, String> credentials = new HashMap<String, String>();
+ credentials.put(IAuthenticator.USERNAME_KEY, username);
+ credentials.put(IAuthenticator.PASSWORD_KEY, password);
+ AuthenticationRequest authenticationRequest = new AuthenticationRequest(credentials);
+ client.login(authenticationRequest);
}
}
+ catch (AuthenticationException e)
+ {
+ throw new RuntimeException(e.getWhy());
+ }
+ catch (AuthorizationException e)
+ {
+ throw new RuntimeException(e.getWhy());
+ }
catch (InvalidRequestException e)
{
throw new RuntimeException(e.getWhy());