| == Overview |
| |
| This directory contains code primarily for cqlsh. cqlsh uses cqlshlib in this directory. |
| Currently, cqlshlib supports Python 2 as well as Python 3. Support for Python 3 is relatively |
| new. |
| |
| == Requirements |
| . Python 3 and 2.7 (for cqlsh) |
| . virtualenv |
| . Docker (optional) |
| |
| == Running tests |
| |
| In order to run tests for cqlshlib, run cassandra-cqlsh-tests.sh in this directory. It will |
| automatically setup a virtualenv with the appropriate version of Python and run tests inside it. |
| |
| There are Dockerfiles that can be used to test whether cqlsh works with a default, barebones |
| Python installation. Assuming Cassandra's source is checked out at `$CASSANDRA_DIR`. To test, first |
| build the Docker image containing the barebones Python installation - |
| |
| $ docker build . --file Dockerfile.ubuntu.py3 -t ubuntu-lts-py3 |
| |
| Next, run cqlsh inside the newly built image - |
| |
| $ docker run -v $CASSANDRA_DIR:/code -it ubuntu-lts-py3:latest /code/bin/cqlsh host.docker.internal |
| |
| If `host.docker.internal` isn't supported, then you can use `--net="host"` with `docker run`: |
| |
| $ docker run --net="host" -v $CASSANDRA_DIR:/code -it ubuntu-lts-py3:latest /code/bin/cqlsh |
| |
| This will try to spawn a cqlsh instance inside the Docker container running Ubuntu LTS (18.04) |
| with minimal Python installation. It will try to connect to the Cassandra instance running on the |
| Docker host at port 9042. If you have Cassandra running elsewhere, replace host.docker.internal |
| with the IP / hostname as usual. Please ensure that the IP / host is accessible from _within_ the |
| Docker container. |