mirror of https://github.com/apache/cassandra
Warn when cqlsh does not match the server version it was built with
Patch by brandonwilliams; reviewed by bereng for CASSANDRA-18745
This commit is contained in:
parent
fd9f07dab8
commit
6bb585bf5d
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<project basedir="." name="apache-cassandra-cqlsh-tasks"
|
||||
xmlns:if="ant:if">
|
||||
<target name="set-cqlsh-version">
|
||||
<echo file="pylib/cqlshlib/serverversion.py" append="false">version = "${base.version}"${line.separator}</echo>
|
||||
</target>
|
||||
</project>
|
|
@ -1,4 +1,5 @@
|
|||
3.0.30
|
||||
* CQLSH emits a warning when the server version doesn't match (CASSANDRA-18745)
|
||||
* Fix missing speculative retries in tablestats (CASSANDRA-18767)
|
||||
* Fix Requires for Java for RPM package (CASSANDRA-18751)
|
||||
* Fix CQLSH online help topic link (CASSANDRA-17534)
|
||||
|
|
11
bin/cqlsh.py
11
bin/cqlsh.py
|
@ -171,6 +171,7 @@ from cqlshlib.formatting import (DEFAULT_DATE_FORMAT, DEFAULT_NANOTIME_FORMAT,
|
|||
formatter_for)
|
||||
from cqlshlib.tracing import print_trace, print_trace_session
|
||||
from cqlshlib.util import get_file_encoding_bomsize, trim_if_present
|
||||
from cqlshlib.serverversion import version as build_version
|
||||
|
||||
DEFAULT_HOST = '127.0.0.1'
|
||||
DEFAULT_PORT = 9042
|
||||
|
@ -797,6 +798,8 @@ class Shell(cmd.Cmd):
|
|||
if stdin is None:
|
||||
stdin = sys.stdin
|
||||
|
||||
self.check_build_versions()
|
||||
|
||||
if tty:
|
||||
self.reset_prompt()
|
||||
self.report_connection()
|
||||
|
@ -816,6 +819,14 @@ class Shell(cmd.Cmd):
|
|||
def batch_mode(self):
|
||||
return not self.tty
|
||||
|
||||
def check_build_versions(self):
|
||||
baseversion = self.connection_versions['build']
|
||||
extra = baseversion.rfind('-')
|
||||
if extra:
|
||||
baseversion = baseversion[0:extra]
|
||||
if baseversion != build_version:
|
||||
print("WARNING: cqlsh was built against {}, but this server is {}. All features may not work!".format(baseversion, build_version))
|
||||
|
||||
@property
|
||||
def is_using_utf8(self):
|
||||
# utf8 encodings from https://docs.python.org/{2,3}/library/codecs.html
|
||||
|
|
|
@ -684,7 +684,7 @@
|
|||
</target>
|
||||
|
||||
<!-- create properties file with C version -->
|
||||
<target name="createVersionPropFile">
|
||||
<target name="createVersionPropFile" depends="set-cqlsh-version">
|
||||
<taskdef name="propertyfile" classname="org.apache.tools.ant.taskdefs.optional.PropertyFile"/>
|
||||
<mkdir dir="${version.properties.dir}"/>
|
||||
<propertyfile file="${version.properties.dir}/version.properties">
|
||||
|
@ -1970,4 +1970,5 @@
|
|||
<import file="${basedir}/.build/build-resolver.xml"/>
|
||||
<import file="${basedir}/.build/build-rat.xml"/>
|
||||
<import file="${basedir}/.build/build-owasp.xml"/>
|
||||
<import file="${basedir}/.build/build-cqlsh.xml"/>
|
||||
</project>
|
||||
|
|
Loading…
Reference in New Issue