{ "info": { "author": "jpinto@ccsint.eu", "author_email": "jpinto@ccsint.eu", "bugtrack_url": null, "classifiers": [ "Development Status :: 1 - Planning", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: Freely Distributable", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Testing", "Topic :: Utilities" ], "description": "OpenStack Server Volumes Backup and Restore Tool\n================================================\n\nThis command line utility can be used to backup/restore OpenStack volume backed server instances using Cinder backup service.\n\nScreenshot\n----------\n\n\n.. image:: imgs/osvolbackup_test.png\n :target: imgs/osvolbackup_test.png\n :alt: Screenshot\n\n\nFeatures\n--------\n\n\n* Live instance backup\n\n * See ``consistency restrictions`` below\n * Embed essential metadata in backup description\n * Export backup volume metadata to file\n\nRequirements\n------------\n\n\n* Python2.7+ and the OpenStack API libraries\n* OpenStack environment with volume backed server instances\n* OS environment variables set for the admin project ``(source stackrc)``\n* `Cinder backup service `_ properly configured\n* Tested on [RedHat Open Stack Platform 13], should work on other OpenStack Queens based distributions\n\n:warning: Live Backup Consistency Restrictions :warning:\n--------------------------------------------------------\n\nLive backup consistency of openstack images is dependent in the following conditions:\n\n\n#. When using kvm/libvirt, guests must have the `Qemu guest agent `_ installed, backups will succeed if the agent is not available, consistency will depend in the guest IO activity during the snapshot\u00bb\n#. Nova API create image function does `not wait for snapshot creation `_ before unfreezing the I/O, consistency will depend on the block device driver snapshot technology, it may depend on the guest IO activity during the snapshot creation\n\nHow to install\n--------------\n\n.. code-block:: sh\n\n pip install --user osvolbackup\n\nHow to run from source\n----------------------\n\n.. code-block:: sh\n\n git clone https://github.com/CCSGroupInternational/osvolbackup.git\n cd osvolbackup.git\n pip install --user -rrequirements.txt\n python -m osvolbackup server \u00abserver_name\u00bb\n\nHow to test:\n------------\n\n.. code-block:: sh\n\n # Create a test server\n export SERVER_ID=test_server\n tests/create-test-server.sh\n\n # Create the backup\n VERBOSE=1 python -m osvolbackup server ${SERVER_ID}\n\n # Delete the test instance\n openstack server delete ${SERVER_ID}\n openstack volume delete ${SERVER_ID}_boot\n\n # We use the instance uuid because the server name was deleted\n INSTANCE_ID=$(openstack volume backup list | grep ${SERVER_ID}|cut -d\" \" -f4)\n # Restore with the original config\n VERBOSE=1 python -m osvolbackup server $INSTANCE_ID --restore last\n # Restore with a different network config\n VERBOSE=1 python -m osvolbackup server $INSTANCE_ID --restore last --network net1:10.3.1.99\n\nCopyright\n---------\n\n\u00a9 2019 CCS Group International, distributed under the `Apache-2 license `_.\n\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/CCSGroupInternational/osvolbackup", "keywords": "", "license": "Apache-2", "maintainer": "", "maintainer_email": "", "name": "osvolbackup", "package_url": "https://pypi.org/project/osvolbackup/", "platform": "", "project_url": "https://pypi.org/project/osvolbackup/", "project_urls": { "Homepage": "https://github.com/CCSGroupInternational/osvolbackup" }, "release_url": "https://pypi.org/project/osvolbackup/0.0.2/", "requires_dist": null, "requires_python": "", "summary": "OpenStack volume based backups tool", "version": "0.0.2" }, "last_serial": 4905867, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "59f3f56ed2ec61fe0700afaa27969762", "sha256": "e40a602288e1ca788adc54347640e96d917538a400df15577dddd8abe07c70f7" }, "downloads": -1, "filename": "osvolbackup-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "59f3f56ed2ec61fe0700afaa27969762", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9237, "upload_time": "2019-03-06T14:43:53", "url": "https://files.pythonhosted.org/packages/93/a1/180c0fa034ff863b6719d7a277d6605e060f2b4db531014727138119aa25/osvolbackup-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "342b990bc855d614ac4a8fc3e273ff80", "sha256": "2a525358077fd1f72162ea49710c098d3546525ff5bf32a55effff745462dc1c" }, "downloads": -1, "filename": "osvolbackup-0.0.1.tar.gz", "has_sig": false, "md5_digest": "342b990bc855d614ac4a8fc3e273ff80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7014, "upload_time": "2019-03-06T14:43:55", "url": "https://files.pythonhosted.org/packages/00/aa/8a5c890545c2d9d9af93b8ea888d46e952ac91831729c073a6c9c5039919/osvolbackup-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "d7af84ccfd4cbd24584887e381a0a85a", "sha256": "ee14673d2ef5531a3b40ade1e1d0b896a525bcbed1b130de0e097444d8d1dfdb" }, "downloads": -1, "filename": "osvolbackup-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d7af84ccfd4cbd24584887e381a0a85a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10340, "upload_time": "2019-03-06T14:54:42", "url": "https://files.pythonhosted.org/packages/ce/a8/cbe767aa161a923434c253985f253ead0723dceaff99e763d0c3db1ef6c8/osvolbackup-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c7631015b93cabcc113fab9aadfa63a6", "sha256": "aa3e246ef03d163726d9657826528e06002dc55958a6f021bcafa0094b4eebb1" }, "downloads": -1, "filename": "osvolbackup-0.0.2.tar.gz", "has_sig": false, "md5_digest": "c7631015b93cabcc113fab9aadfa63a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7539, "upload_time": "2019-03-06T14:54:44", "url": "https://files.pythonhosted.org/packages/e8/75/e89d061ec2a77afbcb0d454faa49c1c21049b299cf29c2a59e4804664ea6/osvolbackup-0.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d7af84ccfd4cbd24584887e381a0a85a", "sha256": "ee14673d2ef5531a3b40ade1e1d0b896a525bcbed1b130de0e097444d8d1dfdb" }, "downloads": -1, "filename": "osvolbackup-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d7af84ccfd4cbd24584887e381a0a85a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10340, "upload_time": "2019-03-06T14:54:42", "url": "https://files.pythonhosted.org/packages/ce/a8/cbe767aa161a923434c253985f253ead0723dceaff99e763d0c3db1ef6c8/osvolbackup-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c7631015b93cabcc113fab9aadfa63a6", "sha256": "aa3e246ef03d163726d9657826528e06002dc55958a6f021bcafa0094b4eebb1" }, "downloads": -1, "filename": "osvolbackup-0.0.2.tar.gz", "has_sig": false, "md5_digest": "c7631015b93cabcc113fab9aadfa63a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7539, "upload_time": "2019-03-06T14:54:44", "url": "https://files.pythonhosted.org/packages/e8/75/e89d061ec2a77afbcb0d454faa49c1c21049b299cf29c2a59e4804664ea6/osvolbackup-0.0.2.tar.gz" } ] }