Skip to main content

Python CLI for cassandra snapshots. CLI allows to store and restore snapshot and uses AWS S3 bucket as storage.

Project description

Python Cassandra CLI tool

Descirptoin

CLI has 7 main commands:

  1. copy-snapshot-folder Copy folder with snapshots from s3 bucket
  2. restore-snapshot-keyspace Restore Keyspace snapshot from s3 bucket
  3. restore-snapshot-table Restore Table snapshot from s3 bucket
  4. store-snapshot-keyspace Take and store Keyspace snapshot to s3 bucket
  5. store-snapshot-table Take and store Table snapshot to s3 bucket
  6. store-backup-keyspace Take and store Keyspace backup to s3 bucket without running nodetool, sstableloader, and cqlsh
  7. restore-backup-keyspace Restore Keyspace backup from s3 bucket without running nodetool, sstableloader, and cqlsh

Release Notes

1.4.0

  1. Updated store-backup-keyspace and restore-backup-keyspace.

1.3.6

  1. Updated readme.

1.3.5

  1. cleanup.

1.3.4

  1. copy backup updates.

1.3.3

  1. boolean values updates.

1.3.2

  1. null values updates.

1.3.1

  1. Increased CSV file field size limit.
  2. Creation schema fix.

1.3.0

  1. store-backup-keyspace and restore-backup-keyspace commands which doesn't run nodetool, sstableloader, and cqlsh. It uses only cassandra-driver.

1.2.1

  1. --truststore-password and --keystore-password options
    which is used in sstableloader command in "restore-snapshot-keyspace" and "restore-snapshot-table"
  2. --version option

1.1.1

Clean up code

1.1.0

  1. Added --ssl flag for cqlsh command if connection supports only SSL connection; --ssl-cqlsh option
  2. Logic -p flag for sstableloader not mandatory for SSL connection type
  3. Overriding folder main folder name; --snapshot-folder-override option

1.0.3

Fix option description: create-keyspace-schema

1.0.2

Updated Authentication logic

1.0.1

Added boto3 libs in requirements

1.0.0

Initial release

AWS resources access

AWS S3 bucket

  1. You need to set -s3(--s3-bucket), -id(--aws-access-key-id) and -key(--aws-secret-access-key) options for the connection to AWS S3 bucket via access key.
  2. If your host has AWS profile setup in .aws/credentials and/or IAM role with s3 bucket permissons then CLI needs only -s3(--s3-bucket) option.

AWS Systems Manager

  1. You need to set -sn(--secret-name), -id(--aws-access-key-id) and -key(--aws-secret-access-key) for getting secrest from Paramenter Store.
  2. If your host has AWS profile setup in .aws/credentials and/or IAM role with SSM permissons then CLI needs only -sn(--secret-name) option.
  3. Optionally you can change -r(--aws-region) for SSM. Default value is 'us-east-1'

Commands examples:

Store keyspace snapshot on s3

python-cassandra-cli store-snapshot-keyspace  
  -k my_keyspace 
  -t tag-01-keyspace
  -e dev 
  -s3 my.s3.bucket 
  -h "10.99.3.55"   
  --ssm-secret -sn /cassandra/dev 

Store keyspace snapshot on s3 with keyspace schema

python-cassandra-cli store-snapshot-keyspace  
  -k my_keyspace 
  -t tag-01-keyspace
  -e dev -s3 my.s3.bucket -h "10.99.3.55"  
  --ssm-secret -sn /cassandra/dev 
  --create-keyspace-schema

Store table snapshot on s3 with keyspace schema

python-cassandra-cli store-snapshot-table 
  -k my_keyspace 
  -tn my_table
  -t tag-01-table 
  -e dev 
  -s3 my.s3.bucket 
  -h "10.99.3.55"  
  --ssm-secret
  -sn /cassandra/dev 
  --create-keyspace-schema

Resotore table

python-cassandra-cli restore-snapshot-table 
  -sf 1608700346_snapshots_tag-01-keyspace_my_keyspace_develop 
  -t tag-01-table 
  -k my_keyspace 
  -tn my_table -h "10.99.3.55" 
  --ssm-secret 
  -sn /cassandra/dev 
  -s3 my.s3.bucket

Restore table ssl

python-cassandra-cli restore-snapshot-table  
  -sf 1608700346_snapshots_tag-01-table_my_table_develop 
  -t tag-01-table 
  -k my_keyspace 
  -tn my_table 
  -h "10.99.3.55" 
  --ssm-secret 
  -s3 my.s3.bucket 
  -sn /cassandra/dev 
  -cf /etc/cassandra/conf/cassandra.yaml  
  -ks /etc/cassandra/conf/keystore.node0 
  -ts /etc/cassandra/conf/truststore.node0 
  -ssl 
  -pt 9142 

Restore keyspace ssl with keyspace creation

python-cassandra-cli restore-snapshot-keyspace  
  -sf 608700346_snapshots_tag-01-keyspace_my_keyspace_develop 
  -t tag-01-keyspace 
  -k my_keyspace  
  -h "10.99.3.55" 
  --ssm-secret 
  -s3 my.s3.bucket 
  -sn /cassandra/dev 
  --create-keyspace-schema 
  -e develop 
  -cf /etc/cassandra/conf/cassandra.yaml  
  -ks /etc/cassandra/conf/keystore.node0 
  -ts /etc/cassandra/conf/truststore.node0 
  -ssl 
  -pt 9142 

Copy folder with sanpshot on local

python-cassandra-cli copy-snapshot-folder 
  -s3 my.s3.bucket 
  -sf 1608700346_snapshots_tag-01-keyspace_my_keyspace_develop

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-cassandra-cli-1.4.0.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

python_cassandra_cli-1.4.0-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

File details

Details for the file python-cassandra-cli-1.4.0.tar.gz.

File metadata

  • Download URL: python-cassandra-cli-1.4.0.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.15

File hashes

Hashes for python-cassandra-cli-1.4.0.tar.gz
Algorithm Hash digest
SHA256 6734e07dcfc75d5bcbb2c974cb3fe0dd510d4dbbe76b398974d19b1fc498cf5f
MD5 31c6f3dec397f3943456e056dae9d736
BLAKE2b-256 20b8d40f862d6d21bde4af90b78e84c3a68cf33cfa5ef6e43300837acab2bd69

See more details on using hashes here.

File details

Details for the file python_cassandra_cli-1.4.0-py3-none-any.whl.

File metadata

  • Download URL: python_cassandra_cli-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 22.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.15

File hashes

Hashes for python_cassandra_cli-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e2f8c4a032ca8e7a2359abdb67401907cc69468b1900cb257aa8be506bff107d
MD5 68c6e1722ca6b677fa480ec317a8a07f
BLAKE2b-256 e04b5e2dd752517a5aac8f0245f501898101f1ce3f7b295e4ff8db2202a40ae6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page