Merge branch 'system-keyspace-cl-one' of https://github.com/dokai/cqlengine into system-keyspace-cl-one
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import json
|
import json
|
||||||
import warnings
|
import warnings
|
||||||
from cqlengine import SizeTieredCompactionStrategy, LeveledCompactionStrategy
|
from cqlengine import SizeTieredCompactionStrategy, LeveledCompactionStrategy
|
||||||
|
from cqlengine import ONE
|
||||||
from cqlengine.named import NamedTable
|
from cqlengine.named import NamedTable
|
||||||
|
|
||||||
from cqlengine.connection import connection_manager, execute
|
from cqlengine.connection import connection_manager, execute
|
||||||
@@ -28,7 +29,7 @@ def create_keyspace(name, strategy_class='SimpleStrategy', replication_factor=3,
|
|||||||
:param **replication_values: 1.2 only, additional values to ad to the replication data map
|
:param **replication_values: 1.2 only, additional values to ad to the replication data map
|
||||||
"""
|
"""
|
||||||
with connection_manager() as con:
|
with connection_manager() as con:
|
||||||
_, keyspaces = con.execute("""SELECT keyspace_name FROM system.schema_keyspaces""", {})
|
_, keyspaces = con.execute("""SELECT keyspace_name FROM system.schema_keyspaces""", {}, ONE)
|
||||||
if name not in [r[0] for r in keyspaces]:
|
if name not in [r[0] for r in keyspaces]:
|
||||||
#try the 1.2 method
|
#try the 1.2 method
|
||||||
replication_map = {
|
replication_map = {
|
||||||
@@ -55,7 +56,7 @@ def create_keyspace(name, strategy_class='SimpleStrategy', replication_factor=3,
|
|||||||
|
|
||||||
def delete_keyspace(name):
|
def delete_keyspace(name):
|
||||||
with connection_manager() as con:
|
with connection_manager() as con:
|
||||||
_, keyspaces = con.execute("""SELECT keyspace_name FROM system.schema_keyspaces""", {})
|
_, keyspaces = con.execute("""SELECT keyspace_name FROM system.schema_keyspaces""", {}, ONE)
|
||||||
if name in [r[0] for r in keyspaces]:
|
if name in [r[0] for r in keyspaces]:
|
||||||
execute("DROP KEYSPACE {}".format(name))
|
execute("DROP KEYSPACE {}".format(name))
|
||||||
|
|
||||||
@@ -80,7 +81,8 @@ def sync_table(model, create_missing_keyspace=True):
|
|||||||
with connection_manager() as con:
|
with connection_manager() as con:
|
||||||
tables = con.execute(
|
tables = con.execute(
|
||||||
"SELECT columnfamily_name from system.schema_columnfamilies WHERE keyspace_name = :ks_name",
|
"SELECT columnfamily_name from system.schema_columnfamilies WHERE keyspace_name = :ks_name",
|
||||||
{'ks_name': ks_name}
|
{'ks_name': ks_name},
|
||||||
|
ONE
|
||||||
)
|
)
|
||||||
tables = [x[0] for x in tables.results]
|
tables = [x[0] for x in tables.results]
|
||||||
|
|
||||||
@@ -115,7 +117,8 @@ def sync_table(model, create_missing_keyspace=True):
|
|||||||
with connection_manager() as con:
|
with connection_manager() as con:
|
||||||
_, idx_names = con.execute(
|
_, idx_names = con.execute(
|
||||||
"SELECT index_name from system.\"IndexInfo\" WHERE table_name=:table_name",
|
"SELECT index_name from system.\"IndexInfo\" WHERE table_name=:table_name",
|
||||||
{'table_name': raw_cf_name}
|
{'table_name': raw_cf_name},
|
||||||
|
ONE
|
||||||
)
|
)
|
||||||
|
|
||||||
idx_names = [i[0] for i in idx_names]
|
idx_names = [i[0] for i in idx_names]
|
||||||
@@ -230,14 +233,15 @@ def get_fields(model):
|
|||||||
|
|
||||||
logger.debug("get_fields %s %s", ks_name, col_family)
|
logger.debug("get_fields %s %s", ks_name, col_family)
|
||||||
|
|
||||||
tmp = con.execute(query, {'ks_name':ks_name, 'col_family':col_family})
|
tmp = con.execute(query, {'ks_name': ks_name, 'col_family': col_family}, ONE)
|
||||||
return [Field(x[0], x[1]) for x in tmp.results]
|
return [Field(x[0], x[1]) for x in tmp.results]
|
||||||
# convert to Field named tuples
|
# convert to Field named tuples
|
||||||
|
|
||||||
|
|
||||||
def get_table_settings(model):
|
def get_table_settings(model):
|
||||||
return schema_columnfamilies.get(keyspace_name=model._get_keyspace(),
|
return schema_columnfamilies.objects.consistency(ONE).get(
|
||||||
columnfamily_name=model.column_family_name(include_keyspace=False))
|
keyspace_name=model._get_keyspace(),
|
||||||
|
columnfamily_name=model.column_family_name(include_keyspace=False))
|
||||||
|
|
||||||
|
|
||||||
def update_compaction(model):
|
def update_compaction(model):
|
||||||
@@ -282,7 +286,8 @@ def drop_table(model):
|
|||||||
with connection_manager() as con:
|
with connection_manager() as con:
|
||||||
_, tables = con.execute(
|
_, tables = con.execute(
|
||||||
"SELECT columnfamily_name from system.schema_columnfamilies WHERE keyspace_name = :ks_name",
|
"SELECT columnfamily_name from system.schema_columnfamilies WHERE keyspace_name = :ks_name",
|
||||||
{'ks_name': ks_name}
|
{'ks_name': ks_name},
|
||||||
|
ONE
|
||||||
)
|
)
|
||||||
raw_cf_name = model.column_family_name(include_keyspace=False)
|
raw_cf_name = model.column_family_name(include_keyspace=False)
|
||||||
if raw_cf_name not in [t[0] for t in tables]:
|
if raw_cf_name not in [t[0] for t in tables]:
|
||||||
|
|||||||
@@ -320,6 +320,11 @@ class AbstractQuerySet(object):
|
|||||||
def all(self):
|
def all(self):
|
||||||
return copy.deepcopy(self)
|
return copy.deepcopy(self)
|
||||||
|
|
||||||
|
def consistency(self, consistency):
|
||||||
|
clone = copy.deepcopy(self)
|
||||||
|
clone._consistency = consistency
|
||||||
|
return clone
|
||||||
|
|
||||||
def _parse_filter_arg(self, arg):
|
def _parse_filter_arg(self, arg):
|
||||||
"""
|
"""
|
||||||
Parses a filter arg in the format:
|
Parses a filter arg in the format:
|
||||||
@@ -628,11 +633,6 @@ class ModelQuerySet(AbstractQuerySet):
|
|||||||
clone._flat_values_list = flat
|
clone._flat_values_list = flat
|
||||||
return clone
|
return clone
|
||||||
|
|
||||||
def consistency(self, consistency):
|
|
||||||
clone = copy.deepcopy(self)
|
|
||||||
clone._consistency = consistency
|
|
||||||
return clone
|
|
||||||
|
|
||||||
def ttl(self, ttl):
|
def ttl(self, ttl):
|
||||||
clone = copy.deepcopy(self)
|
clone = copy.deepcopy(self)
|
||||||
clone._ttl = ttl
|
clone._ttl = ttl
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ from unittest import TestCase
|
|||||||
from cql import OperationalError
|
from cql import OperationalError
|
||||||
from mock import MagicMock, patch, Mock
|
from mock import MagicMock, patch, Mock
|
||||||
|
|
||||||
|
from cqlengine import ONE
|
||||||
from cqlengine.connection import ConnectionPool, Host
|
from cqlengine.connection import ConnectionPool, Host
|
||||||
|
|
||||||
|
|
||||||
@@ -18,4 +19,4 @@ class OperationalErrorLoggingTest(TestCase):
|
|||||||
|
|
||||||
with patch.object(p, 'get', return_value=MockConnection()):
|
with patch.object(p, 'get', return_value=MockConnection()):
|
||||||
with self.assertRaises(OperationalError):
|
with self.assertRaises(OperationalError):
|
||||||
p.execute("select * from system.peers", {})
|
p.execute("select * from system.peers", {}, ONE)
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
from mock import MagicMock, patch
|
from mock import MagicMock, patch
|
||||||
|
|
||||||
|
from cqlengine import ONE
|
||||||
from cqlengine.exceptions import CQLEngineException
|
from cqlengine.exceptions import CQLEngineException
|
||||||
from cqlengine.management import create_table, delete_table, get_fields
|
from cqlengine.management import create_table, delete_table, get_fields
|
||||||
from cqlengine.tests.base import BaseCassEngTestCase
|
from cqlengine.tests.base import BaseCassEngTestCase
|
||||||
@@ -22,7 +23,7 @@ class ConnectionPoolFailoverTestCase(BaseCassEngTestCase):
|
|||||||
with patch('cqlengine.connection.cql.connect') as mock:
|
with patch('cqlengine.connection.cql.connect') as mock:
|
||||||
mock.side_effect=CQLEngineException
|
mock.side_effect=CQLEngineException
|
||||||
with self.assertRaises(CQLEngineException):
|
with self.assertRaises(CQLEngineException):
|
||||||
self.pool.execute("select * from system.peers", {})
|
self.pool.execute("select * from system.peers", {}, ONE)
|
||||||
|
|
||||||
def test_dead_node(self):
|
def test_dead_node(self):
|
||||||
"""
|
"""
|
||||||
|
|||||||
2
setup.py
2
setup.py
@@ -18,7 +18,7 @@ Cassandra CQL 3 Object Mapper for Python
|
|||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='cqlengine',
|
name='cqlengine',
|
||||||
version=version,
|
version='0.9.2-2951ba35de1fc7213121a9b45b7ff679d543c5d3',
|
||||||
description='Cassandra CQL 3 Object Mapper for Python',
|
description='Cassandra CQL 3 Object Mapper for Python',
|
||||||
long_description=long_desc,
|
long_description=long_desc,
|
||||||
classifiers = [
|
classifiers = [
|
||||||
|
|||||||
Reference in New Issue
Block a user