You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2015/07/01 18:05:17 UTC
cassandra git commit: (cqlsh) Allow setting the initial connection
timeout
Repository: cassandra
Updated Branches:
refs/heads/cassandra-2.2 924d798a3 -> 96e7e6264
(cqlsh) Allow setting the initial connection timeout
patch by Stefania Alborghetti; reviewed by Benjamin Lerer for
CASSANDRA-9601
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/96e7e626
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/96e7e626
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/96e7e626
Branch: refs/heads/cassandra-2.2
Commit: 96e7e626424ca0ded713745d28017c4ad4f943c8
Parents: 924d798
Author: Stefania Alborghetti <st...@datastax.com>
Authored: Mon Jun 29 13:55:45 2015 +0800
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Wed Jul 1 19:04:56 2015 +0300
----------------------------------------------------------------------
CHANGES.txt | 1 +
bin/cqlsh | 30 +++++++++++++++++++++++-------
2 files changed, 24 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/96e7e626/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 9bd9d44..0abf6db 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
2.2.0-rc2
+ * (cqlsh) Allow setting the initial connection timeout (CASSANDRA-9601)
* BulkLoader has --transport-factory option but does not use it (CASSANDRA-9675)
* Allow JMX over SSL directly from nodetool (CASSANDRA-9090)
* Update cqlsh for UDFs (CASSANDRA-7556)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/96e7e626/bin/cqlsh
----------------------------------------------------------------------
diff --git a/bin/cqlsh b/bin/cqlsh
index f6e2f8c..13f0f1f 100755
--- a/bin/cqlsh
+++ b/bin/cqlsh
@@ -136,6 +136,7 @@ DEFAULT_HOST = '127.0.0.1'
DEFAULT_PORT = 9042
DEFAULT_CQLVER = '3.3.0'
DEFAULT_PROTOCOL_VERSION = 4
+DEFAULT_CONNECT_TIMEOUT_SECONDS = 5
DEFAULT_FLOAT_PRECISION = 5
DEFAULT_MAX_TRACE_WAIT = 10
@@ -172,6 +173,8 @@ parser.add_option('--cqlversion', default=DEFAULT_CQLVER,
help='Specify a particular CQL version (default: %default).'
' Examples: "3.0.3", "3.1.0"')
parser.add_option("-e", "--execute", help='Execute the statement and quit.')
+parser.add_option("--connect-timeout", default=DEFAULT_CONNECT_TIMEOUT_SECONDS, dest='connect_timeout',
+ help='Specify the connection timeout in seconds (default: %default seconds).')
optvalues = optparse.Values()
(options, arguments) = parser.parse_args(sys.argv[1:], values=optvalues)
@@ -598,7 +601,8 @@ class Shell(cmd.Cmd):
ssl=False,
single_statement=None,
client_timeout=10,
- protocol_version=DEFAULT_PROTOCOL_VERSION):
+ protocol_version=DEFAULT_PROTOCOL_VERSION,
+ connect_timeout=DEFAULT_CONNECT_TIMEOUT_SECONDS):
cmd.Cmd.__init__(self, completekey=completekey)
self.hostname = hostname
self.port = port
@@ -619,7 +623,8 @@ class Shell(cmd.Cmd):
protocol_version=protocol_version,
auth_provider=self.auth_provider,
ssl_options=sslhandling.ssl_settings(hostname, CONFIG_FILE) if ssl else None,
- load_balancing_policy=WhiteListRoundRobinPolicy([self.hostname]))
+ load_balancing_policy=WhiteListRoundRobinPolicy([self.hostname]),
+ connect_timeout=connect_timeout)
self.owns_connection = not use_conn
self.set_expanded_cql_version(cqlver)
@@ -1836,7 +1841,8 @@ class Shell(cmd.Cmd):
auth_provider=self.auth_provider,
ssl_options=sslhandling.ssl_settings(self.hostname, CONFIG_FILE) if self.ssl else None,
load_balancing_policy=WhiteListRoundRobinPolicy([self.hostname]),
- compression=None)
+ compression=None,
+ connect_timeout=self.conn.connect_timeout)
session = new_cluster.connect(self.keyspace)
conn = session._pools.values()[0]._connection
@@ -2257,7 +2263,8 @@ class Shell(cmd.Cmd):
protocol_version=self.conn.protocol_version,
auth_provider=auth_provider,
ssl_options=self.conn.ssl_options,
- load_balancing_policy=WhiteListRoundRobinPolicy([self.hostname]))
+ load_balancing_policy=WhiteListRoundRobinPolicy([self.hostname]),
+ connect_timeout=self.conn.connect_timeout)
if self.current_keyspace:
session = conn.connect(self.current_keyspace)
@@ -2429,7 +2436,6 @@ def option_with_default(cparser_getter, section, option, default=None):
except ConfigParser.Error:
return default
-
def raw_option_with_default(configs, section, option, default=None):
"""
Same (almost) as option_with_default() but won't do any string interpolation.
@@ -2491,12 +2497,20 @@ def read_options(cmdlineargs, environment):
optvalues.tty = sys.stdin.isatty()
optvalues.cqlversion = option_with_default(configs.get, 'cql', 'version', DEFAULT_CQLVER)
+ optvalues.connect_timeout = option_with_default(configs.getint, 'connection', 'timeout', DEFAULT_CONNECT_TIMEOUT_SECONDS)
optvalues.execute = None
(options, arguments) = parser.parse_args(cmdlineargs, values=optvalues)
hostname = option_with_default(configs.get, 'connection', 'hostname', DEFAULT_HOST)
port = option_with_default(configs.get, 'connection', 'port', DEFAULT_PORT)
+
+ try:
+ options.connect_timeout = int(options.connect_timeout)
+ except ValueError:
+ parser.error('{} is not a valid timeout.'.format(options.connect_timeout))
+ options.connect_timeout = DEFAULT_CONNECT_TIMEOUT_SECONDS
+
options.client_timeout = option_with_default(configs.get, 'connection', 'client_timeout', '10')
if options.client_timeout.lower() == 'none':
options.client_timeout = None
@@ -2590,7 +2604,8 @@ def main(options, hostname, port):
sys.exit("Can't open %r: %s" % (options.file, e))
if options.debug:
- sys.stderr.write("Using CQL driver: %s\n" % (cassandra,))
+ sys.stderr.write("Using CQL driver: {}\n".format(cassandra))
+ sys.stderr.write("Using connect timeout: {} seconds\n".format(options.connect_timeout))
try:
shell = Shell(hostname,
@@ -2610,7 +2625,8 @@ def main(options, hostname, port):
max_trace_wait=options.max_trace_wait,
ssl=options.ssl,
single_statement=options.execute,
- client_timeout=options.client_timeout)
+ client_timeout=options.client_timeout,
+ connect_timeout=options.connect_timeout)
except KeyboardInterrupt:
sys.exit('Connection aborted.')
except CQL_ERRORS, e: