Merge branch 'system-keyspace-cl-one' of https://github.com/dokai/cqlengine into system-keyspace-cl-one

This commit is contained in:
Jon Haddad
2013-12-11 16:24:12 -08:00
5 changed files with 23 additions and 16 deletions

View File

@@ -1,6 +1,7 @@
import json
import warnings
from cqlengine import SizeTieredCompactionStrategy, LeveledCompactionStrategy
from cqlengine import ONE
from cqlengine.named import NamedTable
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
"""
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]:
#try the 1.2 method
replication_map = {
@@ -55,7 +56,7 @@ def create_keyspace(name, strategy_class='SimpleStrategy', replication_factor=3,
def delete_keyspace(name):
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]:
execute("DROP KEYSPACE {}".format(name))
@@ -80,7 +81,8 @@ def sync_table(model, create_missing_keyspace=True):
with connection_manager() as con:
tables = con.execute(
"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]
@@ -115,7 +117,8 @@ def sync_table(model, create_missing_keyspace=True):
with connection_manager() as con:
_, idx_names = con.execute(
"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]
@@ -230,14 +233,15 @@ def get_fields(model):
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]
# convert to Field named tuples
def get_table_settings(model):
return schema_columnfamilies.get(keyspace_name=model._get_keyspace(),
columnfamily_name=model.column_family_name(include_keyspace=False))
return schema_columnfamilies.objects.consistency(ONE).get(
keyspace_name=model._get_keyspace(),
columnfamily_name=model.column_family_name(include_keyspace=False))
def update_compaction(model):
@@ -282,7 +286,8 @@ def drop_table(model):
with connection_manager() as con:
_, tables = con.execute(
"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)
if raw_cf_name not in [t[0] for t in tables]:

View File

@@ -320,6 +320,11 @@ class AbstractQuerySet(object):
def all(self):
return copy.deepcopy(self)
def consistency(self, consistency):
clone = copy.deepcopy(self)
clone._consistency = consistency
return clone
def _parse_filter_arg(self, arg):
"""
Parses a filter arg in the format:
@@ -628,11 +633,6 @@ class ModelQuerySet(AbstractQuerySet):
clone._flat_values_list = flat
return clone
def consistency(self, consistency):
clone = copy.deepcopy(self)
clone._consistency = consistency
return clone
def ttl(self, ttl):
clone = copy.deepcopy(self)
clone._ttl = ttl

View File

@@ -2,6 +2,7 @@ from unittest import TestCase
from cql import OperationalError
from mock import MagicMock, patch, Mock
from cqlengine import ONE
from cqlengine.connection import ConnectionPool, Host
@@ -18,4 +19,4 @@ class OperationalErrorLoggingTest(TestCase):
with patch.object(p, 'get', return_value=MockConnection()):
with self.assertRaises(OperationalError):
p.execute("select * from system.peers", {})
p.execute("select * from system.peers", {}, ONE)

View File

@@ -1,5 +1,6 @@
from mock import MagicMock, patch
from cqlengine import ONE
from cqlengine.exceptions import CQLEngineException
from cqlengine.management import create_table, delete_table, get_fields
from cqlengine.tests.base import BaseCassEngTestCase
@@ -22,7 +23,7 @@ class ConnectionPoolFailoverTestCase(BaseCassEngTestCase):
with patch('cqlengine.connection.cql.connect') as mock:
mock.side_effect=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):
"""

View File

@@ -18,7 +18,7 @@ Cassandra CQL 3 Object Mapper for Python
setup(
name='cqlengine',
version=version,
version='0.9.2-2951ba35de1fc7213121a9b45b7ff679d543c5d3',
description='Cassandra CQL 3 Object Mapper for Python',
long_description=long_desc,
classifiers = [