Skip to content

Latest commit

 

History

History
 
 

pylib

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

  1. Python 3 and 2.7 (for cqlsh)

  2. virtualenv

  3. 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.