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 2012/12/08 17:41:23 UTC
[3/3] git commit: ninja-followup 5003
ninja-followup 5003
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/62b9037d
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/62b9037d
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/62b9037d
Branch: refs/heads/trunk
Commit: 62b9037d1a2baa859b8bef27a4329f60a3bf356b
Parents: 66706d1
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Sat Dec 8 19:39:35 2012 +0300
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Sat Dec 8 19:39:35 2012 +0300
----------------------------------------------------------------------
src/java/org/apache/cassandra/auth/Auth.java | 28 +++++++++++----
.../org/apache/cassandra/cql3/QueryProcessor.java | 6 +++-
.../cql3/statements/AlterUserStatement.java | 3 +-
.../cql3/statements/CreateUserStatement.java | 3 +-
.../cql3/statements/DropUserStatement.java | 3 +-
5 files changed, 32 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/62b9037d/src/java/org/apache/cassandra/auth/Auth.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/auth/Auth.java b/src/java/org/apache/cassandra/auth/Auth.java
index 95312fe..123ffe6 100644
--- a/src/java/org/apache/cassandra/auth/Auth.java
+++ b/src/java/org/apache/cassandra/auth/Auth.java
@@ -24,7 +24,7 @@ import org.apache.commons.lang.StringUtils;
import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.cql3.UntypedResultSet;
import org.apache.cassandra.cql3.QueryProcessor;
-import org.apache.cassandra.exceptions.InvalidRequestException;
+import org.apache.cassandra.exceptions.UnavailableException;
import org.apache.cassandra.service.MigrationManager;
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.utils.WrappedRunnable;
@@ -45,7 +45,14 @@ public class Auth
public static boolean isExistingUser(String username)
{
String query = String.format("SELECT * FROM %s.%s WHERE name = '%s'", AUTH_KS, USERS_CF, escape(username));
- return !QueryProcessor.process(query).isEmpty();
+ try
+ {
+ return !QueryProcessor.process(query).isEmpty();
+ }
+ catch (UnavailableException e)
+ {
+ throw new RuntimeException(e);
+ }
}
/**
@@ -57,8 +64,15 @@ public class Auth
public static boolean isSuperuser(String username)
{
String query = String.format("SELECT super FROM %s.%s WHERE name = '%s'", AUTH_KS, USERS_CF, escape(username));
- UntypedResultSet result = QueryProcessor.process(query);
- return !result.isEmpty() && result.one().getBoolean("super");
+ try
+ {
+ UntypedResultSet result = QueryProcessor.process(query);
+ return !result.isEmpty() && result.one().getBoolean("super");
+ }
+ catch (UnavailableException e)
+ {
+ throw new RuntimeException(e);
+ }
}
/**
@@ -67,7 +81,7 @@ public class Auth
* @param username Username to insert.
* @param isSuper User's new status.
*/
- public static void insertUser(String username, boolean isSuper)
+ public static void insertUser(String username, boolean isSuper) throws UnavailableException
{
QueryProcessor.process(String.format("INSERT INTO %s.%s (name, super) VALUES ('%s', %s)",
AUTH_KS,
@@ -81,7 +95,7 @@ public class Auth
*
* @param username Username to delete.
*/
- public static void deleteUser(String username)
+ public static void deleteUser(String username) throws UnavailableException
{
QueryProcessor.process(String.format("DELETE FROM %s.%s WHERE name = '%s'",
AUTH_KS,
@@ -103,7 +117,7 @@ public class Auth
// schedule seeding a superuser in RING_DELAY milliseconds.
Runnable runnable = new WrappedRunnable()
{
- public void runMayThrow() throws InvalidRequestException
+ public void runMayThrow() throws UnavailableException
{
// insert a default superuser if AUTH_KS.USERS_CF is empty.
if (QueryProcessor.process(String.format("SELECT * FROM %s.%s", AUTH_KS, USERS_CF)).isEmpty())
http://git-wip-us.apache.org/repos/asf/cassandra/blob/62b9037d/src/java/org/apache/cassandra/cql3/QueryProcessor.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/QueryProcessor.java b/src/java/org/apache/cassandra/cql3/QueryProcessor.java
index b68f3c2..e172e59 100644
--- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java
+++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java
@@ -140,7 +140,7 @@ public class QueryProcessor
return processStatement(getStatement(queryString, queryState.getClientState()).statement, cl, queryState, Collections.<ByteBuffer>emptyList());
}
- public static UntypedResultSet process(String query)
+ public static UntypedResultSet process(String query) throws UnavailableException
{
try
{
@@ -151,6 +151,10 @@ public class QueryProcessor
else
return null;
}
+ catch (UnavailableException e)
+ {
+ throw e;
+ }
catch (RequestExecutionException e)
{
throw new RuntimeException(e);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/62b9037d/src/java/org/apache/cassandra/cql3/statements/AlterUserStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/statements/AlterUserStatement.java b/src/java/org/apache/cassandra/cql3/statements/AlterUserStatement.java
index 61655db..16872a2 100644
--- a/src/java/org/apache/cassandra/cql3/statements/AlterUserStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/AlterUserStatement.java
@@ -24,6 +24,7 @@ import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.cql3.UserOptions;
import org.apache.cassandra.exceptions.InvalidRequestException;
import org.apache.cassandra.exceptions.UnauthorizedException;
+import org.apache.cassandra.exceptions.UnavailableException;
import org.apache.cassandra.service.ClientState;
import org.apache.cassandra.transport.messages.ResultMessage;
@@ -75,7 +76,7 @@ public class AlterUserStatement extends AuthenticationStatement
}
}
- public ResultMessage execute(ClientState state) throws InvalidRequestException
+ public ResultMessage execute(ClientState state) throws InvalidRequestException, UnavailableException
{
if (!opts.isEmpty())
DatabaseDescriptor.getAuthenticator().alter(username, opts.getOptions());
http://git-wip-us.apache.org/repos/asf/cassandra/blob/62b9037d/src/java/org/apache/cassandra/cql3/statements/CreateUserStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/statements/CreateUserStatement.java b/src/java/org/apache/cassandra/cql3/statements/CreateUserStatement.java
index 6dd1b93..9611d9e 100644
--- a/src/java/org/apache/cassandra/cql3/statements/CreateUserStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/CreateUserStatement.java
@@ -22,6 +22,7 @@ import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.cql3.UserOptions;
import org.apache.cassandra.exceptions.InvalidRequestException;
import org.apache.cassandra.exceptions.UnauthorizedException;
+import org.apache.cassandra.exceptions.UnavailableException;
import org.apache.cassandra.service.ClientState;
import org.apache.cassandra.transport.messages.ResultMessage;
@@ -55,7 +56,7 @@ public class CreateUserStatement extends AuthenticationStatement
throw new UnauthorizedException("Only superusers are allowed to perfrom CREATE USER queries");
}
- public ResultMessage execute(ClientState state) throws InvalidRequestException
+ public ResultMessage execute(ClientState state) throws InvalidRequestException, UnavailableException
{
DatabaseDescriptor.getAuthenticator().create(username, opts.getOptions());
Auth.insertUser(username, superuser);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/62b9037d/src/java/org/apache/cassandra/cql3/statements/DropUserStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/statements/DropUserStatement.java b/src/java/org/apache/cassandra/cql3/statements/DropUserStatement.java
index af92fda..e5b9c2b 100644
--- a/src/java/org/apache/cassandra/cql3/statements/DropUserStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/DropUserStatement.java
@@ -22,6 +22,7 @@ import org.apache.cassandra.auth.AuthenticatedUser;
import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.exceptions.InvalidRequestException;
import org.apache.cassandra.exceptions.UnauthorizedException;
+import org.apache.cassandra.exceptions.UnavailableException;
import org.apache.cassandra.service.ClientState;
import org.apache.cassandra.transport.messages.ResultMessage;
@@ -51,7 +52,7 @@ public class DropUserStatement extends AuthenticationStatement
throw new UnauthorizedException("Only superusers are allowed to perfrom DROP USER queries");
}
- public ResultMessage execute(ClientState state) throws InvalidRequestException
+ public ResultMessage execute(ClientState state) throws InvalidRequestException, UnavailableException
{
// clean up permissions after the dropped user.
DatabaseDescriptor.getAuthorizer().revokeAll(username);