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

Release Notes

1.1.0

  1. Added --ssl flog for cqlsh command if connecton supports only SSL connecton; --ssl-cqlsh option
  2. Logic -p flag for sstableloader not mondatory for SSL connetion type
  3. Overridng folder main forlder 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

Descirptoin

CLI has 5 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

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 
  --create-keyspace-schema

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.1.0.tar.gz (9.3 kB view hashes)

Uploaded Source

Built Distribution

python_cassandra_cli-1.1.0-py3-none-any.whl (16.3 kB view hashes)

Uploaded Python 3

Supported by

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