Tags: scylladb/scylla-cqlsh
Tags
.github/workflows/build-push.yml: upgrade download/upload actions in … …sync cause part of it was update cause of some CVE, it wasn't completly working
Merge 'package python driver as wheels' from Israel Fruchter so far cqlsh bundles the python-driver in, but only as source. meaning the package wasn't architecture, and also didn't have the libev eventloop compiled in. Since from python 3.12 and up, that would mean we would fallback into asyncio eventloop (which still experimental) or into error (once we'll sync with the driver upstream) so to avoid those, we are change the packaging of cqlsh to be architecture specific, and get cqlsh compiled, and bundle all of it's requirements as per architecture installed bundle of wheels. using shiv, i.e. one file virtualenv that we'll be packing into our artifacts Fixes: #90 Closes #91 * github.com:scylladb/scylla-cqlsh: tests: switch from using cqlsh bash to the test the python file package python driver as wheels
cqlsh.py: fix server side describe after login command since login command create a new session, we run into an issue when describe was called after login seem like the row_factory wasn't used the reason was in the main session we used `execution_profiles` while in the one create in login we did not, which led to copying the wrong values (i.e. like `row_factory` that was needed for server side describe) this change saves the profiles into the instance, and reuse them when ever a new session is opened it simplify the code and we could remove a few repetitions of the same logic
cqlsh: try server-side DESCRIBE, then client-side Since Scylla 5.2 (scylladb/scylladb@e6ffc22) a support for server-side DESCRIBE was added. However, cqlsh did not start to use this functionality, since it is only enabled if it detects CQL version at least 4. Scylla did not increase this version number as it doesn't support all of its features, so there is a need for a different detection mechanism for server-side DESCRIBE. This commit changes the behavior in do_describe: cqlsh will first try to execute the server-side DESCRIBE. If this fails with SyntaxException, meaning that Scylla doesn't support that command, cqlsh falls back to the client-side DESCRIBE behavior. The other possible solutions were rejected: - Based on Scylla version: would require ugly hard-coding of versions - Modifying Scylla to provide some indication that this feature is enabled: Scylla 5.2 is already released without it, by implementing it in another way, we'll get it out sooner - Do a trial "DESCRIBE" at the start of connection to detect if the server supports it: if cqlsh ever supported connecting to multiple nodes (right now it uses WhiteListRoundRobinPolicy) we would have to do the check on all of the nodes in case a rolling upgrade is currently occurring and some of the nodes don't support server-side DESCRIBE. The change was tested manually on a couple of last Scylla OSS, Scylla Enterprise and Cassandra releases. Fixes #17
cqlshlib/sslhandling: fix logic of `ssl_check_hostname` the logic was broken, and could lead to `AttributeError`, like the following: ``` E AssertionError: Traceback (most recent call last): E File "/jenkins/workspace/scylla-master/gating-dtest-release/scylla/.ccm/scylla-repository/18591/share/cassandra/libexec/cqlsh.py", line 2723, in <module> E main(*read_options(sys.argv[1:], os.environ)) E File "/jenkins/workspace/scylla-master/gating-dtest-release/scylla/.ccm/scylla-repository/18591/share/cassandra/libexec/cqlsh.py", line 2664, in main E shell = Shell(hostname, E ^^^^^^^^^^^^^^^ E File "/jenkins/workspace/scylla-master/gating-dtest-release/scylla/.ccm/scylla-repository/18591/share/cassandra/libexec/cqlsh.py", line 495, in __init__ E kwargs['ssl_context'] = sslhandling.ssl_settings(hostname, CONFIG_FILE) if ssl else None E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E File "/jenkins/workspace/scylla-master/gating-dtest-release/scylla/.ccm/scylla-repository/18591/share/cassandra/libexec/../pylib/cqlshlib/sslhandling.py", line 64, in ssl_settings E ssl_check_hostname = ssl_check_hostname is not None or ssl_check_hostname.lower() != 'false' E ^^^^^^^^^^^^^^^^^^^^^^^^ E AttributeError: 'NoneType' object has no attribute 'lower' ```
github actions: update `cibuildwheel==v2.16.5` failed with following: ``` Invalid --only='""', must be a build selector with a known platform ```
dist/debian: fix the trailer line format should add two spaces between maintainer's mail and timestamp. this should address the warning like ``` 22:33:44 dpkg-parsechangelog: warning: debian/changelog(l5): badly formatted trailer line 22:33:44 LINE: -- Israel Fruchter <fruch@scylladb.com> Fri, 02 Feb 2024 14:33:31 +0000 ``` Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
Draft: explicit build-time packge dependencies Seen @ https://github.com/docker-library/python/blob/7899dbafd386ee264bd33574aafcd0f1369b2e21/3.11/slim-bullseye/Dockerfile#L33 Instead of installing all recommended packages, we explicitly mention what we need. It reduces the download of 10's of build-time dependencies. What I'm not sure of - are we missing features, that are not compiled as deps are not found? (encryption comes to mind). Signed-off-by: Yaniv Kaul <yaniv.kaul@scylladb>
PreviousNext