cql: Fix replication strategy class lookup
Fix replication strategy class lookup to support unqualified names such as "SimpleStrategy". The AbstractReplicationStrategy.getClass() method in origin does the same thing. Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
This commit is contained in:
@@ -11,7 +11,8 @@ abstract_replication_strategy::abstract_replication_strategy(const sstring& ks_n
|
||||
_ks_name(ks_name), _config_options(config_options), _token_metadata(token_metadata), _snitch(snitch) {}
|
||||
|
||||
std::unique_ptr<abstract_replication_strategy> abstract_replication_strategy::create_replication_strategy(const sstring& ks_name, const sstring& strategy_name, token_metadata& tk_metadata, i_endpoint_snitch& snitch, std::unordered_map<sstring, sstring>& config_options) {
|
||||
return create_object<abstract_replication_strategy>(strategy_name, ks_name, tk_metadata, snitch, config_options);
|
||||
sstring class_name = strategy_name.find(".") != sstring::npos ? strategy_name : "org.apache.cassandra.locator." + strategy_name;
|
||||
return create_object<abstract_replication_strategy>(class_name, ks_name, tk_metadata, snitch, config_options);
|
||||
}
|
||||
|
||||
std::vector<inet_address> abstract_replication_strategy::get_natural_endpoints(const token& search_token) {
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
SEASTAR_TEST_CASE(test_create_keyspace_statement) {
|
||||
return do_with_cql_env([] (auto& e) {
|
||||
return e.execute_cql("create keyspace ks2 with replication = { 'class' : 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor' : 1 };").discard_result().then([&e] {
|
||||
return e.execute_cql("create keyspace ks2 with replication = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };").discard_result().then([&e] {
|
||||
return e.require_keyspace_exists("ks2");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user