Skip to content

Commit

Permalink
Catch and log all REEs in Auth#setup instead of propagating
Browse files Browse the repository at this point in the history
  • Loading branch information
iamaleksey committed Dec 10, 2012
1 parent 24f95e0 commit 35a653c
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 23 deletions.
14 changes: 7 additions & 7 deletions src/java/org/apache/cassandra/auth/Auth.java
Expand Up @@ -26,7 +26,7 @@
import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.cql3.UntypedResultSet;
import org.apache.cassandra.cql3.QueryProcessor;
import org.apache.cassandra.exceptions.UnavailableException;
import org.apache.cassandra.exceptions.RequestExecutionException;
import org.apache.cassandra.service.MigrationManager;
import org.apache.cassandra.service.StorageService;

Expand All @@ -52,7 +52,7 @@ public static boolean isExistingUser(String username)
{
return !QueryProcessor.process(query).isEmpty();
}
catch (UnavailableException e)
catch (RequestExecutionException e)
{
throw new RuntimeException(e);
}
Expand All @@ -72,7 +72,7 @@ public static boolean isSuperuser(String username)
UntypedResultSet result = QueryProcessor.process(query);
return !result.isEmpty() && result.one().getBoolean("super");
}
catch (UnavailableException e)
catch (RequestExecutionException e)
{
throw new RuntimeException(e);
}
Expand All @@ -84,7 +84,7 @@ public static boolean isSuperuser(String username)
* @param username Username to insert.
* @param isSuper User's new status.
*/
public static void insertUser(String username, boolean isSuper) throws UnavailableException
public static void insertUser(String username, boolean isSuper) throws RequestExecutionException
{
QueryProcessor.process(String.format("INSERT INTO %s.%s (name, super) VALUES ('%s', %s)",
AUTH_KS,
Expand All @@ -98,7 +98,7 @@ public static void insertUser(String username, boolean isSuper) throws Unavailab
*
* @param username Username to delete.
*/
public static void deleteUser(String username) throws UnavailableException
public static void deleteUser(String username) throws RequestExecutionException
{
QueryProcessor.process(String.format("DELETE FROM %s.%s WHERE name = '%s'",
AUTH_KS,
Expand Down Expand Up @@ -128,9 +128,9 @@ public void run()
if (QueryProcessor.process(String.format("SELECT * FROM %s.%s", AUTH_KS, USERS_CF)).isEmpty())
insertUser(DEFAULT_SUPERUSER_NAME, true);
}
catch (UnavailableException e)
catch (RequestExecutionException e)
{
logger.warn("Skipping default superuser setup: some nodes are unavailable");
logger.warn("Skipping default superuser setup: some nodes are not ready");
}
}
};
Expand Down
12 changes: 2 additions & 10 deletions src/java/org/apache/cassandra/cql3/QueryProcessor.java
Expand Up @@ -140,7 +140,7 @@ public static ResultMessage process(String queryString, ConsistencyLevel cl, Que
return processStatement(getStatement(queryString, queryState.getClientState()).statement, cl, queryState, Collections.<ByteBuffer>emptyList());
}

public static UntypedResultSet process(String query) throws UnavailableException
public static UntypedResultSet process(String query) throws RequestExecutionException
{
try
{
Expand All @@ -151,17 +151,9 @@ public static UntypedResultSet process(String query) throws UnavailableException
else
return null;
}
catch (UnavailableException e)
{
throw e;
}
catch (RequestExecutionException e)
{
throw new RuntimeException(e);
}
catch (RequestValidationException e)
{
throw new AssertionError(e);
throw new RuntimeException(e);
}
}

Expand Down
Expand Up @@ -23,8 +23,8 @@
import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.cql3.UserOptions;
import org.apache.cassandra.exceptions.InvalidRequestException;
import org.apache.cassandra.exceptions.RequestExecutionException;
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;

Expand Down Expand Up @@ -76,7 +76,7 @@ public void checkAccess(ClientState state) throws UnauthorizedException
}
}

public ResultMessage execute(ClientState state) throws InvalidRequestException, UnavailableException
public ResultMessage execute(ClientState state) throws InvalidRequestException, RequestExecutionException
{
if (!opts.isEmpty())
DatabaseDescriptor.getAuthenticator().alter(username, opts.getOptions());
Expand Down
Expand Up @@ -21,8 +21,8 @@
import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.cql3.UserOptions;
import org.apache.cassandra.exceptions.InvalidRequestException;
import org.apache.cassandra.exceptions.RequestExecutionException;
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;

Expand Down Expand Up @@ -56,7 +56,7 @@ public void checkAccess(ClientState state) throws UnauthorizedException
throw new UnauthorizedException("Only superusers are allowed to perfrom CREATE USER queries");
}

public ResultMessage execute(ClientState state) throws InvalidRequestException, UnavailableException
public ResultMessage execute(ClientState state) throws InvalidRequestException, RequestExecutionException
{
DatabaseDescriptor.getAuthenticator().create(username, opts.getOptions());
Auth.insertUser(username, superuser);
Expand Down
Expand Up @@ -21,8 +21,8 @@
import org.apache.cassandra.auth.AuthenticatedUser;
import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.exceptions.InvalidRequestException;
import org.apache.cassandra.exceptions.RequestExecutionException;
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;

Expand Down Expand Up @@ -52,7 +52,7 @@ public void checkAccess(ClientState state) throws UnauthorizedException
throw new UnauthorizedException("Only superusers are allowed to perfrom DROP USER queries");
}

public ResultMessage execute(ClientState state) throws InvalidRequestException, UnavailableException
public ResultMessage execute(ClientState state) throws InvalidRequestException, RequestExecutionException
{
// clean up permissions after the dropped user.
DatabaseDescriptor.getAuthorizer().revokeAll(username);
Expand Down

0 comments on commit 35a653c

Please sign in to comment.