[2/3] git commit: Simplify auth setup and make system_auth ks alterable
Simplify auth setup and make system_auth ks alterable Patch by Aleksey Yeschenko; reviewed by Jonathan Ellis for CASSANDRA-5112 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/26596406 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/26596406 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/26596406 Branch: refs/heads/trunk Commit: 265964064bd5012b871101e884d7e2032a44e32a Parents: e531be7 Author: Aleksey Yeschenko Authored: Thu Feb 14 01:19:04 2013 +0300 Committer: Aleksey Yeschenko Committed: Thu Feb 14 01:19:04 2013 +0300 -- CHANGES.txt|1 + bin/cqlsh |2 +- pylib/cqlshlib/cql3handling.py | 12 +- src/java/org/apache/cassandra/auth/Auth.java | 132 +-- .../org/apache/cassandra/config/CFMetaData.java|8 +- .../cassandra/config/DatabaseDescriptor.java |4 +- .../org/apache/cassandra/config/KSMetaData.java|7 - src/java/org/apache/cassandra/config/Schema.java |3 +- .../org/apache/cassandra/cql3/QueryProcessor.java |4 +- .../cql3/statements/ListUsersStatement.java|2 +- .../apache/cassandra/service/CassandraDaemon.java |4 - .../org/apache/cassandra/service/ClientState.java | 14 ++- .../apache/cassandra/service/MigrationManager.java |7 +- .../apache/cassandra/service/StorageService.java | 10 +- 14 files changed, 153 insertions(+), 57 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/26596406/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 5dd2499..3d0f633 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -18,6 +18,7 @@ * Implement caching of authorization results (CASSANDRA-4295) * Add support for LZ4 compression (CASSANDRA-5038) * Fix missing columns in wide rows queries (CASSANDRA-5225) + * Simplify auth setup and make system_auth ks alterable (CASSANDRA-5112) 1.2.1 http://git-wip-us.apache.org/repos/asf/cassandra/blob/26596406/bin/cqlsh -- diff --git a/bin/cqlsh b/bin/cqlsh index 4f58bdc..6db59a3 100755 --- a/bin/cqlsh +++ b/bin/cqlsh @@ -173,7 +173,7 @@ else: debug_completion = bool(os.environ.get('CQLSH_DEBUG_COMPLETION', '') == 'YES') -SYSTEM_KEYSPACES = ('system', 'system_traces', 'system_auth') +SYSTEM_KEYSPACES = ('system', 'system_traces') # we want the cql parser to understand our cqlsh-specific commands too my_commands_ending_with_newline = ( http://git-wip-us.apache.org/repos/asf/cassandra/blob/26596406/pylib/cqlshlib/cql3handling.py -- diff --git a/pylib/cqlshlib/cql3handling.py b/pylib/cqlshlib/cql3handling.py index 27bd67b..def573e 100644 --- a/pylib/cqlshlib/cql3handling.py +++ b/pylib/cqlshlib/cql3handling.py @@ -39,6 +39,7 @@ class UnexpectedTableStructure(UserWarning): return 'Unexpected table structure; may not translate correctly to CQL. ' + self.msg SYSTEM_KEYSPACES = ('system', 'system_traces', 'system_auth') +NONALTERBALE_KEYSPACES = ('system', 'system_traces') class Cql3ParsingRuleSet(CqlParsingRuleSet): keywords = set(( @@ -306,6 +307,8 @@ JUNK ::= /([ \t\r\f\v]+|(--|[/][/])[^\n\r]*([\n\r]|$)|[/][*].*?[*][/])/ ; ::= ksname= ; + ::= ksname= ; + ::= | | ; @@ -686,6 +689,11 @@ def ks_name_completer(ctxt, cass): ksnames = [n for n in cass.get_keyspace_names() if n not in SYSTEM_KEYSPACES] return map(maybe_escape_name, ksnames) +@completer_for('alterableKeyspaceName', 'ksname') +def ks_name_completer(ctxt, cass): +ksnames = [n for n in cass.get_keyspace_names() if n not in NONALTERBALE_KEYSPACES] +return map(maybe_escape_name, ksnames) + @completer_for('columnFamilyName', 'ksname') def cf_ks_name_completer(ctxt, cass): return [maybe_escape_name(ks) + '.' for ks in cass.get_keyspace_names()] @@ -1242,7 +1250,7 @@ def alter_table_col_completer(ctxt, cass): explain_completion('alterInstructions', 'newcol', '') syntax_rules += r''' - ::= "ALTER" ( "KEYSPACE" | "SCHEMA" ) ks= + ::= "ALTER" ( "KEYSPACE" | "SCHEMA" ) ks= "WITH" ( "AND" )* ; ''' @@ -1295,7 +1303,7 @@ syntax_rules += r''' ; ::= ( "ALL" "KEYSPACES" ) - | ( "KEYSPACE" ) + | ( "KEYSPACE" ) | ( "TABLE"? ) ; ''' http://git-wip-us.apache.org/repos/asf/cassandra/blob/26596406/src/java/org/apache/cassandra/auth/Auth.java -- diff --g
git commit: Simplify auth setup and make system_auth ks alterable
Updated Branches: refs/heads/cassandra-1.2 e531be77a -> 265964064 Simplify auth setup and make system_auth ks alterable Patch by Aleksey Yeschenko; reviewed by Jonathan Ellis for CASSANDRA-5112 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/26596406 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/26596406 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/26596406 Branch: refs/heads/cassandra-1.2 Commit: 265964064bd5012b871101e884d7e2032a44e32a Parents: e531be7 Author: Aleksey Yeschenko Authored: Thu Feb 14 01:19:04 2013 +0300 Committer: Aleksey Yeschenko Committed: Thu Feb 14 01:19:04 2013 +0300 -- CHANGES.txt|1 + bin/cqlsh |2 +- pylib/cqlshlib/cql3handling.py | 12 +- src/java/org/apache/cassandra/auth/Auth.java | 132 +-- .../org/apache/cassandra/config/CFMetaData.java|8 +- .../cassandra/config/DatabaseDescriptor.java |4 +- .../org/apache/cassandra/config/KSMetaData.java|7 - src/java/org/apache/cassandra/config/Schema.java |3 +- .../org/apache/cassandra/cql3/QueryProcessor.java |4 +- .../cql3/statements/ListUsersStatement.java|2 +- .../apache/cassandra/service/CassandraDaemon.java |4 - .../org/apache/cassandra/service/ClientState.java | 14 ++- .../apache/cassandra/service/MigrationManager.java |7 +- .../apache/cassandra/service/StorageService.java | 10 +- 14 files changed, 153 insertions(+), 57 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/26596406/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 5dd2499..3d0f633 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -18,6 +18,7 @@ * Implement caching of authorization results (CASSANDRA-4295) * Add support for LZ4 compression (CASSANDRA-5038) * Fix missing columns in wide rows queries (CASSANDRA-5225) + * Simplify auth setup and make system_auth ks alterable (CASSANDRA-5112) 1.2.1 http://git-wip-us.apache.org/repos/asf/cassandra/blob/26596406/bin/cqlsh -- diff --git a/bin/cqlsh b/bin/cqlsh index 4f58bdc..6db59a3 100755 --- a/bin/cqlsh +++ b/bin/cqlsh @@ -173,7 +173,7 @@ else: debug_completion = bool(os.environ.get('CQLSH_DEBUG_COMPLETION', '') == 'YES') -SYSTEM_KEYSPACES = ('system', 'system_traces', 'system_auth') +SYSTEM_KEYSPACES = ('system', 'system_traces') # we want the cql parser to understand our cqlsh-specific commands too my_commands_ending_with_newline = ( http://git-wip-us.apache.org/repos/asf/cassandra/blob/26596406/pylib/cqlshlib/cql3handling.py -- diff --git a/pylib/cqlshlib/cql3handling.py b/pylib/cqlshlib/cql3handling.py index 27bd67b..def573e 100644 --- a/pylib/cqlshlib/cql3handling.py +++ b/pylib/cqlshlib/cql3handling.py @@ -39,6 +39,7 @@ class UnexpectedTableStructure(UserWarning): return 'Unexpected table structure; may not translate correctly to CQL. ' + self.msg SYSTEM_KEYSPACES = ('system', 'system_traces', 'system_auth') +NONALTERBALE_KEYSPACES = ('system', 'system_traces') class Cql3ParsingRuleSet(CqlParsingRuleSet): keywords = set(( @@ -306,6 +307,8 @@ JUNK ::= /([ \t\r\f\v]+|(--|[/][/])[^\n\r]*([\n\r]|$)|[/][*].*?[*][/])/ ; ::= ksname= ; + ::= ksname= ; + ::= | | ; @@ -686,6 +689,11 @@ def ks_name_completer(ctxt, cass): ksnames = [n for n in cass.get_keyspace_names() if n not in SYSTEM_KEYSPACES] return map(maybe_escape_name, ksnames) +@completer_for('alterableKeyspaceName', 'ksname') +def ks_name_completer(ctxt, cass): +ksnames = [n for n in cass.get_keyspace_names() if n not in NONALTERBALE_KEYSPACES] +return map(maybe_escape_name, ksnames) + @completer_for('columnFamilyName', 'ksname') def cf_ks_name_completer(ctxt, cass): return [maybe_escape_name(ks) + '.' for ks in cass.get_keyspace_names()] @@ -1242,7 +1250,7 @@ def alter_table_col_completer(ctxt, cass): explain_completion('alterInstructions', 'newcol', '') syntax_rules += r''' - ::= "ALTER" ( "KEYSPACE" | "SCHEMA" ) ks= + ::= "ALTER" ( "KEYSPACE" | "SCHEMA" ) ks= "WITH" ( "AND" )* ; ''' @@ -1295,7 +1303,7 @@ syntax_rules += r''' ; ::= ( "ALL" "KEYSPACES" ) - | ( "KEYSPACE" ) + | ( "KEYSPACE" ) | ( "TABLE"? ) ; ''' http://git-wip-us.apache.org/repos/asf/cassandra/blob/26596406/src/java/org/apache/cassandra/auth/Auth.java -