{ "info": { "author": "Chase Sillevis", "author_email": "chase@sillevis.net", "bugtrack_url": null, "classifiers": [], "description": "![Build Status](https://travis-ci.org/DeviaVir/cassandras3.svg)\n\n# cassandras3\nA simple tool to help you backup and restore your cassandra data to and from S3.\n\n## Setup\n\n### AWS\n\nThis utility assumes you have correctly set up a (local) credentials file (via e.g. `aws configure`), it is also possible to pass credentials using the CLI environment variables:\n\n```\nAWS_ACCESS_KEY_ID\nAWS_SECRET_ACCESS_KEY\n```\n\nThe recommended way is to give nodes that run the backups permissions to the bucket via their instance profiles to execute PUT commands. When restoring a backup, we can use a separate user which will have GET permissions.\n\n## Python (pip)\n\n### Installation\n\nOn Debian-based systems, make sure you have installed the `python-pip` package.\n\n```\npip install cassandras3\n```\n\nOr install manually:\n```\ngit clone git@github.com:DeviaVir/cassandras3.git\ncd cassandras3\npython setup.py install\n```\n\n### Usage\n\nMake sure `cassandra` is running, `nodetool` requires it.\n\n#### Backup\n\n```\ncassandras3 backup --keyspace test --bucket test [--region us-east-1]\n```\n\nNote: `[--region us-east-1]` is optional, it is to cache the AWS client API's per region.\n\n#### View\n\n```\ncassandras3 view --keyspace test --hostname test --bucket test [--region us-east-1]\n```\n\nThis will return a list of all available backups to restore from.\n\nNote: `[--region us-east-1]` is optional, it is to cache the AWS client API's per region.\nNote: you do not need to specify the hostname, it is useful if you want to list backups from a different machine.\n\n#### Restore\n\n```\ncassandras3 restore --backup backup-timestamp --hostname test --keyspace test --bucket test [--region us-east-1]\n```\n\nNote: `backup-timestamp` can be retrieved via `cassandras3 view`.\nNote: `[--region us-east-1]` is optional, it is to cache the AWS client API's per region.\nNote: this command assumes the data directories are currently empty, if this restore is executed over a currently running cluster it can behave unexpectedly.\nNote: you do not need to specify the hostname, it is useful if you want to list backups from a different machine.\n\n\n## Docker\n\nYou can use docker in case you are already currently using docker to deploy your cassandra nodes. This allows for easy linking.\n\n### Installation\n\nSimply run:\n\n```\ndocker-compose build\n```\n\nAnd optionally push this to a public or private repository, from which every node that will be running this can pull the image from. (`docker pull [your-private-repository]/cassandras3:latest`)\n\n\n### Usage\n\n#### Backup\n\n```\ndocker run -it \\\n\t-v $HOME/.aws:/home/.aws \\\n\t-v /var/lib/cassandra/data:/var/lib/cassandra/data \\\n\t--link cassandra_node:cassandra \\\n\t cassandras3_app:latest backup --host cassandra --keyspace test --bucket test [--region us-east-1]\n```\n\nNote: the first mount (`-v`) expects AWS to be configured correctly on the host machine. The mount is not necessary when using instance profiles.\nNote: `[--region us-east-1]` is optional, it is to cache the AWS client API's per region.\n\n#### List\n\n```\ndocker run -it \\\n\t-v $HOME/.aws:/home/.aws \\\n\tcassandras3_app:latest view --keyspace test --hostname test --bucket test [--region us-east-1]\n```\n\nNote: the first mount (`-v`) expects AWS to be configured correctly on the host machine. The mount is not necessary when using instance profiles.\nNote: you do not need to specify the hostname, it is useful if you want to list backups from a different machine.\nNote: `[--region us-east-1]` is optional, it is to cache the AWS client API's per region.\n\n#### Restore\n\n```\ndocker run -it \\\n\t-v $HOME/.aws:/home/.aws \\\n\t-v /var/lib/cassandra/data:/var/lib/cassandra/data \\\n\t--link cassandra_node:cassandra \\\n\tcassandras3_app:latest restore --host cassandra --hostname test --keyspace test --bucket test [--region us-east-1]\n```\n\nNote: you do not need to specify the hostname, it is useful if you want to restore a backup from a different machine.\nNote: the first mount (`-v`) expects AWS to be configured correctly on the host machine. The mount is not necessary when using instance profiles.\nNote: this command assumes the data directories are currently empty, if this restore is executed over a currently running cluster it can behave unexpectedly.\nNote: `[--region us-east-1]` is optional, it is to cache the AWS client API's per region.\n\n## Development\n\nTo easily develop locally without the need for docker:\n\n```\ncd ~/into/the/project/directory\nmake clean build/venv\nsource build/venv/bin/activate\ncd src\npython -m cassandras3.main\n```\n\n### Deploy new pip versions\n\nRequires a correctly set up `~/.pypirc`.\n\nTesting:\n```\npython setup.py sdist upload -r pypitest\n```\n\nLive:\n```\npython setup.py sdist upload -r pypi\n```\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/deviavir/cassandras3", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "cassandras3", "package_url": "https://pypi.org/project/cassandras3/", "platform": "", "project_url": "https://pypi.org/project/cassandras3/", "project_urls": { "Homepage": "https://github.com/deviavir/cassandras3" }, "release_url": "https://pypi.org/project/cassandras3/0.1.6/", "requires_dist": null, "requires_python": "", "summary": "Cassandra S3 Backup, View and Restore", "version": "0.1.6" }, "last_serial": 4535011, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "10e3c173db55e59931b2669863210b55", "sha256": "2ddf613229613c5a290aaa1acb38aaeaf551c57bd352898ea5e3b71f91e9f3b4" }, "downloads": -1, "filename": "cassandras3-0.0.1.tar.gz", "has_sig": false, "md5_digest": "10e3c173db55e59931b2669863210b55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6478, "upload_time": "2017-05-28T08:27:25", "url": "https://files.pythonhosted.org/packages/6e/1b/024aee2f55a729eaca7427d2d3c6fbb02749a4796951976c58cb4531fd7b/cassandras3-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "7648105c38be5030db789332c5e057c7", "sha256": "2c1ece484f466a171f671800209f1d9b0f1b6398babbb78b435ede68e1868392" }, "downloads": -1, "filename": "cassandras3-0.0.2.tar.gz", "has_sig": false, "md5_digest": "7648105c38be5030db789332c5e057c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8557, "upload_time": "2017-05-28T16:27:50", "url": "https://files.pythonhosted.org/packages/67/78/9b7035ba5e8f83f95d8138f00bb7ab64d22ea0b14022c9805be430b85d39/cassandras3-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "1fe2a7168504af7889fae0b97e14a6f0", "sha256": "8f6549aabe082e9bbb8f03311567b13f9da97c5945eb3782e64266699deff176" }, "downloads": -1, "filename": "cassandras3-0.0.3.tar.gz", "has_sig": false, "md5_digest": "1fe2a7168504af7889fae0b97e14a6f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13901, "upload_time": "2017-05-28T16:39:02", "url": "https://files.pythonhosted.org/packages/c7/b3/17f90e5f33b5766d57a480f48f1f4ab333d537d566b5c78e8e224880a8ab/cassandras3-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "ab4cc8586542cd04a73a92fd71765509", "sha256": "ee377be28e25e1371f3b38551564a56e7de69259e46935e942890c9a116c1375" }, "downloads": -1, "filename": "cassandras3-0.0.4.tar.gz", "has_sig": false, "md5_digest": "ab4cc8586542cd04a73a92fd71765509", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13925, "upload_time": "2017-05-28T16:41:09", "url": "https://files.pythonhosted.org/packages/76/b7/3723aa97d1d31f18c464b120bf7a1a607be4695f517d37d8550942b19e82/cassandras3-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "55a64331e57d69af4c5e1cb9f42f45ab", "sha256": "0727378ccb6c379d8ce12892f1d99eb7029ed77ea357ae138d46dfd5acd833a3" }, "downloads": -1, "filename": "cassandras3-0.0.5.tar.gz", "has_sig": false, "md5_digest": "55a64331e57d69af4c5e1cb9f42f45ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13981, "upload_time": "2017-05-28T16:42:46", "url": "https://files.pythonhosted.org/packages/ab/58/2a329b3b44353ed9e46f77c9b7f6cf9e034fe23c445a5e889776a373e8dd/cassandras3-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "ace836b5879176704f8a08f7c53c82c2", "sha256": "4f03c7e530b1ef88386a596fd3f4357def0c603b2aeb2b9dc77ed349181128c4" }, "downloads": -1, "filename": "cassandras3-0.0.6.tar.gz", "has_sig": false, "md5_digest": "ace836b5879176704f8a08f7c53c82c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13983, "upload_time": "2017-05-28T16:56:31", "url": "https://files.pythonhosted.org/packages/5a/03/23f12f28a4733a10955474d3bbdf3be18e21ed256212026b0828319f7770/cassandras3-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "d240741f35fb87bcf14fd10e99a57629", "sha256": "612242c06ee1d56882f926cbecd47d059d181b1a04b0454cbd43c5b2a66776e3" }, "downloads": -1, "filename": "cassandras3-0.0.7.tar.gz", "has_sig": false, "md5_digest": "d240741f35fb87bcf14fd10e99a57629", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13938, "upload_time": "2017-05-28T17:11:48", "url": "https://files.pythonhosted.org/packages/7d/70/579420f7d2d168a616079dc80d4001f3fcbdb66cc9c080a842ccfddc49a5/cassandras3-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "840459d6bc5baf706d9cd1a680ef8e86", "sha256": "a1d45ed63eab3a0e0cd3d723a03ef306058ca4456309c45beab4de0697d76459" }, "downloads": -1, "filename": "cassandras3-0.0.8.tar.gz", "has_sig": false, "md5_digest": "840459d6bc5baf706d9cd1a680ef8e86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13976, "upload_time": "2017-05-28T17:17:08", "url": "https://files.pythonhosted.org/packages/a8/ff/d67b433ff66a873a70743998ee2c16724f81fea7abe2cfeeadddc3e5a0a9/cassandras3-0.0.8.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "e1dfc481c1948517230b64977e116e3f", "sha256": "6e687f276c45a6b9fdb58e60abb0ed6e28d03338fd72f3adf53bef412e9d5be1" }, "downloads": -1, "filename": "cassandras3-0.1.0.tar.gz", "has_sig": false, "md5_digest": "e1dfc481c1948517230b64977e116e3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13982, "upload_time": "2017-05-28T17:22:12", "url": "https://files.pythonhosted.org/packages/5b/e1/5057236ed1a7c146615d16b40cc2475dbce6ecb1bc0a5fa0078ecbe519ae/cassandras3-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "b8d136e974d2f7d169035851d14305ab", "sha256": "e2ad03137ffcce90d852af79d7fdbe6bf2db6ffff89c3715e53839845157a518" }, "downloads": -1, "filename": "cassandras3-0.1.1.tar.gz", "has_sig": false, "md5_digest": "b8d136e974d2f7d169035851d14305ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13958, "upload_time": "2017-06-08T12:02:06", "url": "https://files.pythonhosted.org/packages/86/b3/e5ac774eccb34c5c7544d36b1f611d4b4c65f8512990ce2f042d7b5915ec/cassandras3-0.1.1.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "ccc32e7b5c7f6d61922e5d4889318437", "sha256": "5adde6d77f4f18b068c3aa106ffbd1b71543cddec1e633cf3fad4292916166d2" }, "downloads": -1, "filename": "cassandras3-0.1.3.tar.gz", "has_sig": false, "md5_digest": "ccc32e7b5c7f6d61922e5d4889318437", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9043, "upload_time": "2018-05-24T10:39:16", "url": "https://files.pythonhosted.org/packages/56/cc/b75c389bf73ad3863c49c5b53cfc00dd9453b71b37804079beb57c457d0e/cassandras3-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "ecbd52990f011458ed5f9e0aa33fe41a", "sha256": "070c3f2c100286762dfbffaa926a70c5538f0d4da4c525bd9558861ab263a674" }, "downloads": -1, "filename": "cassandras3-0.1.4.tar.gz", "has_sig": false, "md5_digest": "ecbd52990f011458ed5f9e0aa33fe41a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14083, "upload_time": "2018-07-30T08:37:32", "url": "https://files.pythonhosted.org/packages/f1/66/8f37b5fe01544a9de6bd38a783c723760cbd7dd6fefead3aed9b18a0e22e/cassandras3-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "6aabb910db68d1703ddc39bc85224c32", "sha256": "3f2f61e298f8c51b3f58c15c5499112a8d70b5a52a469dfc49e70d2b3db46bfa" }, "downloads": -1, "filename": "cassandras3-0.1.5.tar.gz", "has_sig": false, "md5_digest": "6aabb910db68d1703ddc39bc85224c32", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14528, "upload_time": "2018-08-30T11:15:12", "url": "https://files.pythonhosted.org/packages/df/47/a727c630a606baee2a7c923ec212a88506a9bcf95450ba6f64c8807338be/cassandras3-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "4c34016ce3c36dcb42e4c5e7b8bb3c63", "sha256": "05ee33024f1950e8584ecb93da4c2b9fa75f8adc6dba79215695fb6ae968190a" }, "downloads": -1, "filename": "cassandras3-0.1.6.tar.gz", "has_sig": false, "md5_digest": "4c34016ce3c36dcb42e4c5e7b8bb3c63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9693, "upload_time": "2018-11-27T17:21:48", "url": "https://files.pythonhosted.org/packages/73/b7/92f19a32d32056f083a637701e368ff4fe6a13901b80dc3ff15c5e7c428f/cassandras3-0.1.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4c34016ce3c36dcb42e4c5e7b8bb3c63", "sha256": "05ee33024f1950e8584ecb93da4c2b9fa75f8adc6dba79215695fb6ae968190a" }, "downloads": -1, "filename": "cassandras3-0.1.6.tar.gz", "has_sig": false, "md5_digest": "4c34016ce3c36dcb42e4c5e7b8bb3c63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9693, "upload_time": "2018-11-27T17:21:48", "url": "https://files.pythonhosted.org/packages/73/b7/92f19a32d32056f083a637701e368ff4fe6a13901b80dc3ff15c5e7c428f/cassandras3-0.1.6.tar.gz" } ] }