Is it possible that you are somehow using the 0.7 generated cassandra module, perhaps from some previous installation of a client library? In 0.7, insert takes only 5 arguments.
Also, is there any particular reason that you are using raw Thrift and not a high level client like pycassa, telephus, etc? - Tyler On Wed, Sep 22, 2010 at 9:32 PM, Shashank Tiwari <tsha...@gmail.com> wrote: > Jeremy and Aaron, > Thanks for your help. > > I had already installed Thrift on my Snow Leopard so I thought running > *thrift > -gen cassandra.thrift* file would work. However as the wiki suggests it > appears only a specific version of Thrift work with a particular Cassandra > version. So I checked out the matching version of Thrift. Even after getting > the exact version of Thrift though, getting it to work wasn't straight > forward and in fact its still throwing errors. > > Aaron's suggestions of using the ant task (*ant gen-thrift-py*) seemed > much smoother but then that task does not generate the python thrift module, > it only generates the cassandra module. > > So I used a mix and match of both methods and finally have both the thrift > and the cassandra modules. However, it now seems there is a mismatch in the > API. I ran the python example from > http://wiki.apache.org/cassandra/ThriftExamples#Python and ended up with > the following errors: > > Traceback (most recent call last): > File "cassandra_client.py", line 52, in <module> > main() > File "cassandra_client.py", line 35, in main > ConsistencyLevel.ZERO) > TypeError: insert() takes exactly 5 arguments (7 given) > > ------ > Line 35 of cassandra_client.py is the same as line 35 of the python example > on the Cassandra wiki Thrift Examples page. Its the line in bold in the code > snippet below: > > try: > transport.open() > #Insert the data into Keyspace 1 > *client.insert(keyspace,* > * key,* > * column_path,* > * value,* > * timestamp,* > * ConsistencyLevel.ZERO)* > #Query for data > column_parent = ColumnParent(column_family="Standard1") > slice_range = SliceRange(start="", finish="") > predicate = SlicePredicate(slice_range=slice_range) > result = client.get_slice(keyspace, > key, > column_parent, > predicate, > ConsistencyLevel.ONE) > pp.pprint(result) > except Thrift.TException, tx: > print 'Thrift: %s' % tx.message > finally: > > Can somebody please help and make sense of this. Isn't there a more simple > and straightforward way getting Thrift to work with Cassandra? If not, why > not? > > Thanks, Shashank > > > On Wed, Sep 22, 2010 at 1:16 PM, Aaron Morton <aa...@thelastpickle.com>wrote: > >> I normally get the source download, then run ant gen-thrift-py >> >> Is there a reason you want to build it manually? >> >> Aaron >> >> >> On 22 Sep, 2010,at 07:35 PM, Shashank Tiwari <tsha...@gmail.com> wrote: >> >> I installed thrift successfully on Snow Leaopard. However, when I run >> *thrift -gen java interface/cassandra.thrift* with Cassandra 0.6.5, I get >> an error which reads as follows: >> ....apache-cassandra-0.6.5/interface/cassandra.thrift:303] error: >> identifier ONE is unqualified! >> Line 303 of cassandra.thrift is highlighted in the text below: >> >> 296 /** >> 297 Get the Column or SuperColumn at the given column_path. If no >> value is present, NotFoundException is thrown . (This is >> 298 the only method that can throw an exception under non-failure >> conditions) >> 299 */ >> 300 ColumnOrSuperColumn get(1:required string keyspace, >> 301 2:required string key, >> 302 3:required ColumnPath column_path, >> *303 4:required ConsistencyLevel >> consistency_level=ONE)* >> 304 throws (1:InvalidRequestException ire, >> 2:NotFoundException nfe, 3:UnavailableException ue , 4:TimedOutException >> te), >> 305 >> >> Could somebody please help resolve this problem and also explain what's >> going on here. >> >> Thanks, Shashank >> >> >