def dense_supercolumn_test(self): cursor = self.prepare(nodes=2, rf=2, row_factory=dict_factory) cluster = self.cluster node = self.cluster.nodelist()[0] node.nodetool("enablethrift") host, port = node.network_interfaces['thrift'] client = get_thrift_client(host, port) client.transport.open() client.set_keyspace('ks') client.system_add_column_family( _create_dense_super_cf('dense_super_1')) for i in xrange(1, 3): client.insert('k1', ColumnParent('dense_super_1', 'key{}'.format(i)), Column(_i64(100), 'value1', 0), ConsistencyLevel.ONE) client.insert('k2', ColumnParent('dense_super_1', 'key{}'.format(i)), Column(_i64(200), 'value2', 0), ConsistencyLevel.ONE) _validate_dense_cql(cursor) _validate_dense_thrift(client) for is_upgraded, cursor in self.do_upgrade(cursor, row_factory=dict_factory, use_thrift=True): debug("Querying {} node".format( "upgraded" if is_upgraded else "old")) client = get_thrift_client(host, port) _validate_dense_cql(cursor) _validate_dense_thrift(client)
def dense_supercolumn_test_with_renames(self): cursor = self.prepare(row_factory=dict_factory) cluster = self.cluster node = self.cluster.nodelist()[0] node.nodetool("enablethrift") host, port = node.network_interfaces['thrift'] client = get_thrift_client(host, port) client.transport.open() client.set_keyspace('ks') client.system_add_column_family( _create_dense_super_cf('dense_super_2')) for i in xrange(1, 3): client.insert('k1', ColumnParent('dense_super_2', 'key{}'.format(i)), Column(_i64(100), 'value1', 0), ConsistencyLevel.ONE) client.insert('k2', ColumnParent('dense_super_2', 'key{}'.format(i)), Column(_i64(200), 'value2', 0), ConsistencyLevel.ONE) cursor.execute( "ALTER TABLE ks.dense_super_2 RENAME key TO renamed_key") cursor.execute( "ALTER TABLE ks.dense_super_2 RENAME column1 TO renamed_column1") cursor.execute( "ALTER TABLE ks.dense_super_2 RENAME column2 TO renamed_column2") cursor.execute( "ALTER TABLE ks.dense_super_2 RENAME value TO renamed_value") _validate_dense_cql(cursor, cf='dense_super_2', key=u'renamed_key', column1=u'renamed_column1', column2=u'renamed_column2', value=u'renamed_value') _validate_dense_thrift(client, cf='dense_super_2') for is_upgraded, cursor in self.do_upgrade(cursor, row_factory=dict_factory, use_thrift=True): debug("Querying {} node".format( "upgraded" if is_upgraded else "old")) client = get_thrift_client(host, port) _validate_dense_cql(cursor, cf='dense_super_2', key=u'renamed_key', column1=u'renamed_column1', column2=u'renamed_column2', value=u'renamed_value') _validate_dense_thrift(client, cf='dense_super_2')
def _validate_sparse_thrift(client, cf='sparse_super_1'): client.transport.open() client.set_keyspace('ks') result = client.get_slice('k1', ColumnParent(cf), SlicePredicate(slice_range=SliceRange('', '', False, 5)), ConsistencyLevel.ONE) assert_length_equal(result, 2) assert_equal(result[0].super_column.name, 'key1') assert_equal(result[1].super_column.name, 'key2') for cosc in result: assert_equal(cosc.super_column.columns[0].name, 'col1') assert_equal(cosc.super_column.columns[0].value, _i64(200)) assert_equal(cosc.super_column.columns[1].name, 'col2') assert_equal(cosc.super_column.columns[1].value, _i64(300)) assert_equal(cosc.super_column.columns[2].name, 'value1') assert_equal(cosc.super_column.columns[2].value, _i64(100))
def dense_supercolumn_test(self): cluster = self.prepare() node = self.cluster.nodelist()[0] node.nodetool("enablethrift") cursor = self.patient_cql_connection(node, row_factory=dict_factory) cursor.execute( "CREATE KEYSPACE ks WITH replication = {'class': 'SimpleStrategy','replication_factor': '1' };" ) host, port = node.network_interfaces['thrift'] client = get_thrift_client(host, port) client.transport.open() client.set_keyspace('ks') client.system_add_column_family( _create_dense_super_cf('dense_super_1')) for i in xrange(1, 3): client.insert('k1', ColumnParent('dense_super_1', 'key{}'.format(i)), Column(_i64(100), 'value1', 0), ConsistencyLevel.ONE) client.insert('k2', ColumnParent('dense_super_1', 'key{}'.format(i)), Column(_i64(200), 'value2', 0), ConsistencyLevel.ONE) _validate_dense_thrift(client, cf='dense_super_1') _validate_dense_cql(cursor, cf='dense_super_1') self.upgrade_to_version('github:apache/cassandra-3.0') cursor = self.patient_cql_connection(node, row_factory=dict_factory) client = get_thrift_client(host, port) _validate_dense_thrift(client, cf='dense_super_1') node.stop() self.set_node_to_current_version(node) node.set_configuration_options(values={'start_rpc': 'true'}) node.start() cursor = self.patient_cql_connection(node, row_factory=dict_factory) client = get_thrift_client(host, port) _validate_dense_thrift(client, cf='dense_super_1') _validate_dense_cql(cursor, cf='dense_super_1')
def sparse_supercolumn_test(self): cursor = self.prepare(row_factory=dict_factory) cluster = self.cluster node = self.cluster.nodelist()[0] node.nodetool("enablethrift") host, port = node.network_interfaces['thrift'] client = get_thrift_client(host, port) client.transport.open() client.set_keyspace('ks') cf = _create_sparse_super_cf('sparse_super_2') client.system_add_column_family(cf) for i in xrange(1, 3): client.insert('k1', ColumnParent('sparse_super_2', 'key{}'.format(i)), Column("value1", _i64(100), 0), ConsistencyLevel.ONE) client.insert('k1', ColumnParent('sparse_super_2', 'key{}'.format(i)), Column("col1", _i64(200), 0), ConsistencyLevel.ONE) client.insert('k1', ColumnParent('sparse_super_2', 'key{}'.format(i)), Column("col2", _i64(300), 0), ConsistencyLevel.ONE) client.insert('k2', ColumnParent('sparse_super_2', 'key{}'.format(i)), Column("value2", _i64(100), 0), ConsistencyLevel.ONE) client.insert('k2', ColumnParent('sparse_super_2', 'key{}'.format(i)), Column("col1", _i64(200), 0), ConsistencyLevel.ONE) client.insert('k2', ColumnParent('sparse_super_2', 'key{}'.format(i)), Column("col2", _i64(300), 0), ConsistencyLevel.ONE) _validate_sparse_thrift(client, cf='sparse_super_2') _validate_sparse_cql(cursor, cf='sparse_super_2') for is_upgraded, cursor in self.do_upgrade(cursor, row_factory=dict_factory, use_thrift=True): debug("Querying {} node".format("upgraded" if is_upgraded else "old")) client = get_thrift_client(host, port) _validate_sparse_thrift(client, cf='sparse_super_2') _validate_sparse_cql(cursor, cf='sparse_super_2')
def dense_supercolumn_test_with_renames(self): cursor = self.prepare(row_factory=dict_factory) cluster = self.cluster node = self.cluster.nodelist()[0] node.nodetool("enablethrift") host, port = node.network_interfaces['thrift'] client = get_thrift_client(host, port) client.transport.open() client.set_keyspace('ks') client.system_add_column_family(_create_dense_super_cf('dense_super_2')) for i in xrange(1, 3): client.insert('k1', ColumnParent('dense_super_2', 'key{}'.format(i)), Column(_i64(100), 'value1', 0), ConsistencyLevel.ONE) client.insert('k2', ColumnParent('dense_super_2', 'key{}'.format(i)), Column(_i64(200), 'value2', 0), ConsistencyLevel.ONE) cursor.execute("ALTER TABLE ks.dense_super_2 RENAME key TO renamed_key") cursor.execute("ALTER TABLE ks.dense_super_2 RENAME column1 TO renamed_column1") cursor.execute("ALTER TABLE ks.dense_super_2 RENAME column2 TO renamed_column2") cursor.execute("ALTER TABLE ks.dense_super_2 RENAME value TO renamed_value") _validate_dense_cql(cursor, cf='dense_super_2', key=u'renamed_key', column1=u'renamed_column1', column2=u'renamed_column2', value=u'renamed_value') _validate_dense_thrift(client, cf='dense_super_2') for is_upgraded, cursor in self.do_upgrade(cursor, row_factory=dict_factory, use_thrift=True): debug("Querying {} node".format("upgraded" if is_upgraded else "old")) client = get_thrift_client(host, port) _validate_dense_cql(cursor, cf='dense_super_2', key=u'renamed_key', column1=u'renamed_column1', column2=u'renamed_column2', value=u'renamed_value') _validate_dense_thrift(client, cf='dense_super_2')
def sparse_supercolumn_test(self): cluster = self.prepare() node = self.cluster.nodelist()[0] node.nodetool("enablethrift") cursor = self.patient_cql_connection(node, row_factory=dict_factory) cursor.execute("CREATE KEYSPACE ks WITH replication = {'class': 'SimpleStrategy','replication_factor': '1' };") host, port = node.network_interfaces['thrift'] client = get_thrift_client(host, port) client.transport.open() client.set_keyspace('ks') cf = _create_sparse_super_cf('sparse_super_2') client.system_add_column_family(cf) for i in xrange(1, 3): client.insert('k1', ColumnParent('sparse_super_2', 'key{}'.format(i)), Column("value1", _i64(100), 0), ConsistencyLevel.ONE) client.insert('k1', ColumnParent('sparse_super_2', 'key{}'.format(i)), Column("col1", _i64(200), 0), ConsistencyLevel.ONE) client.insert('k1', ColumnParent('sparse_super_2', 'key{}'.format(i)), Column("col2", _i64(300), 0), ConsistencyLevel.ONE) client.insert('k2', ColumnParent('sparse_super_2', 'key{}'.format(i)), Column("value2", _i64(100), 0), ConsistencyLevel.ONE) client.insert('k2', ColumnParent('sparse_super_2', 'key{}'.format(i)), Column("col1", _i64(200), 0), ConsistencyLevel.ONE) client.insert('k2', ColumnParent('sparse_super_2', 'key{}'.format(i)), Column("col2", _i64(300), 0), ConsistencyLevel.ONE) _validate_sparse_thrift(client, cf='sparse_super_2') _validate_sparse_cql(cursor, cf='sparse_super_2') self.upgrade_to_version('github:apache/cassandra-3.0') cursor = self.patient_cql_connection(node, row_factory=dict_factory) client = get_thrift_client(host, port) _validate_sparse_thrift(client, cf='sparse_super_2') node.stop() self.set_node_to_current_version(node) node.set_configuration_options(values={'start_rpc': 'true'}) node.start() cursor = self.patient_cql_connection(node, row_factory=dict_factory) client = get_thrift_client(host, port) _validate_sparse_thrift(client, cf='sparse_super_2') _validate_sparse_cql(cursor, cf='sparse_super_2')