Edward Capriolo created CASSANDRA-6789: ------------------------------------------
Summary: Triggers can not be added from thrift Key: CASSANDRA-6789 URL: https://issues.apache.org/jira/browse/CASSANDRA-6789 Project: Cassandra Issue Type: Bug Reporter: Edward Capriolo Assignee: Edward Capriolo While playing with groovy triggers, I determined that you can not add triggers from thrift, unless I am doing something wrong. (I see no coverage of this feature from thrift/python) https://github.com/edwardcapriolo/cassandra/compare/trigger_coverage?expand=1 {code} package org.apache.cassandra.triggers; import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import junit.framework.Assert; import org.apache.cassandra.SchemaLoader; import org.apache.cassandra.config.Schema; import org.apache.cassandra.service.EmbeddedCassandraService; import org.apache.cassandra.thrift.CassandraServer; import org.apache.cassandra.thrift.CfDef; import org.apache.cassandra.thrift.ColumnParent; import org.apache.cassandra.thrift.KsDef; import org.apache.cassandra.thrift.ThriftSessionManager; import org.apache.cassandra.thrift.TriggerDef; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.thrift.TException; import org.junit.BeforeClass; import org.junit.Test; public class TriggerTest extends SchemaLoader { private static CassandraServer server; @BeforeClass public static void setup() throws IOException, TException { Schema.instance.clear(); // Schema are now written on disk and will be reloaded new EmbeddedCassandraService().start(); ThriftSessionManager.instance.setCurrentSocket(new InetSocketAddress(9160)); server = new CassandraServer(); server.set_keyspace("Keyspace1"); } @Test public void createATrigger() throws TException { TriggerDef td = new TriggerDef(); td.setName("gimme5"); Map<String,String> options = new HashMap<>(); options.put("class", "org.apache.cassandra.triggers.ITriggerImpl"); td.setOptions(options); CfDef cfDef = new CfDef(); cfDef.setKeyspace("Keyspace1"); cfDef.setTriggers(Arrays.asList(td)); cfDef.setName("triggercf"); server.system_add_column_family(cfDef); KsDef keyspace1 = server.describe_keyspace("Keyspace1"); CfDef triggerCf = null; for (CfDef cfs :keyspace1.cf_defs){ if (cfs.getName().equals("triggercf")){ triggerCf=cfs; } } Assert.assertNotNull(triggerCf); Assert.assertEquals(1, triggerCf.getTriggers().size()); } } {code} junit.framework.AssertionFailedError: expected:<1> but was:<0> -- This message was sent by Atlassian JIRA (v6.1.5#6160)