You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ee...@apache.org on 2011/02/08 18:46:34 UTC
svn commit: r1068492 - in /cassandra/trunk/drivers/py/cql: connection.py
connection_pool.py
Author: eevans
Date: Tue Feb 8 17:46:34 2011
New Revision: 1068492
URL: http://svn.apache.org/viewvc?rev=1068492&view=rev
Log:
authentication for Java CQL driver
Patch by eevans for CASSANDRA-1708
Modified:
cassandra/trunk/drivers/py/cql/connection.py
cassandra/trunk/drivers/py/cql/connection_pool.py
Modified: cassandra/trunk/drivers/py/cql/connection.py
URL: http://svn.apache.org/viewvc/cassandra/trunk/drivers/py/cql/connection.py?rev=1068492&r1=1068491&r2=1068492&view=diff
==============================================================================
--- cassandra/trunk/drivers/py/cql/connection.py (original)
+++ cassandra/trunk/drivers/py/cql/connection.py Tue Feb 8 17:46:34 2011
@@ -25,7 +25,7 @@ import zlib
try:
from cassandra import Cassandra
from cassandra.ttypes import Compression, InvalidRequestException, \
- CqlResultType
+ CqlResultType, AuthenticationRequest
except ImportError:
# Hack to run from a source tree
import sys
@@ -38,7 +38,7 @@ except ImportError:
'gen-py'))
from cassandra import Cassandra
from cassandra.ttypes import Compression, InvalidRequestException, \
- CqlResultType
+ CqlResultType, AuthenticationRequest
COMPRESSION_SCHEMES = ['GZIP']
DEFAULT_COMPRESSION = 'GZIP'
@@ -56,13 +56,18 @@ class Connection(object):
... for column in row.columns:
... print "%s is %s years of age" % (r.key, column.age)
"""
- def __init__(self, host, port=9160, keyspace=None):
+ def __init__(self, host, port=9160, keyspace=None, username=None,
+ password=None):
socket = TSocket.TSocket(host, port)
self.transport = TTransport.TFramedTransport(socket)
protocol = TBinaryProtocol.TBinaryProtocolAccelerated(self.transport)
self.client = Cassandra.Client(protocol)
socket.open()
+ if username and password:
+ credentials = {"username": username, "password": password}
+ self.client.login(AuthenticationRequest(credentials=credentials))
+
if keyspace:
self.execute('USE %s;' % keyspace)
Modified: cassandra/trunk/drivers/py/cql/connection_pool.py
URL: http://svn.apache.org/viewvc/cassandra/trunk/drivers/py/cql/connection_pool.py?rev=1068492&r1=1068491&r2=1068492&view=diff
==============================================================================
--- cassandra/trunk/drivers/py/cql/connection_pool.py (original)
+++ cassandra/trunk/drivers/py/cql/connection_pool.py Tue Feb 8 17:46:34 2011
@@ -37,26 +37,35 @@ class ConnectionPool(object):
>>> conn.execute(...)
>>> pool.return_connection(conn)
"""
- def __init__(self, hostname, port=9160, keyspace=None, max_conns=25,
- max_idle=5, eviction_delay=10000):
+ def __init__(self, hostname, port=9160, keyspace=None, username=None,
+ password=None, max_conns=25, max_idle=5, eviction_delay=10000):
self.hostname = hostname
self.port = port
self.keyspace = keyspace
+ self.username = username
+ self.password = password
self.max_conns = max_conns
self.max_idle = max_idle
self.eviction_delay = eviction_delay
self.connections = Queue()
- self.connections.put(Connection(hostname, port, keyspace))
+ self.connections.put(self.__create_connection())
self.eviction = Eviction(self.connections,
self.max_idle,
self.eviction_delay)
+
+ def __create_connection(self):
+ return Connection(self.hostname,
+ port=self.port,
+ keyspace=self.keyspace,
+ username=self.username,
+ password=self.password)
def borrow_connection(self):
try:
connection = self.connections.get(block=False)
except Empty:
- connection = Connection(self.hostname, self.port, self.keyspace)
+ connection = self.__create_connection()
return connection
def return_connection(self, connection):