OpenStack Database As A Service (Trove)
Go to file
Mariam John 65917f3ec0 Implement Backup and Restore for CouchDB
The recommended method for doing full backups in CouchDB
has been a simple filesystem copy of the data files. This
is because CouchDB stores data in wholly contained append
only files. For example, when a user creates a database,
a corresponding <database-name>.couch file is created in
the database directory.

The backup functionality has been implemented by compressing
the database directory and then encrypting it and sending it
over to store in Swift. Similarly, the restore functionality
has been implemented by fetching the files from Swift and
uncompressing them into the database directory. After this,
the ownership of the directory needs to be updated.

To test the changes, follow the steps:
- Create a CouchDB instance
- Access the admin console called Futon using the following
  url: http://10.0.0.5:5984/_utils/
- Create a database from there and create one or more documents
- Create a backup of this CouchDB instance
- Create another CouchDB instance from the backup created above
- Access the admin console for this new instance and verify that
  the database created above is there

couchdb client library for the integration tests has been added
to global-requirements: https://review.openstack.org/#/c/285191/

Change-Id: Iad6d69bf60ace73825819081964a43ad53d6c6fc
Implements: blueprint couchdb-backup-restore
2016-03-15 14:37:35 -05:00
apidocs Add support for root-disable 2016-02-03 11:26:52 -05:00
contrib Fixes hacking rules 2015-05-29 07:27:59 +00:00
devstack Merge "Make scenario-tests work with all datastores" 2016-01-28 01:19:05 +00:00
doc Merge "Use stevedore directive to document plugins" 2015-12-02 03:30:40 +00:00
etc Implement Backup and Restore for CouchDB 2016-03-15 14:37:35 -05:00
releasenotes updating with other reno changes 2015-12-02 13:55:48 -06:00
tools Remove Python 2.6 classifier 2014-12-02 09:57:52 +01:00
trove Implement Backup and Restore for CouchDB 2016-03-15 14:37:35 -05:00
.coveragerc Rename from reddwarf to trove. 2013-06-24 14:11:15 -07:00
.gitignore Add reno for release notes management 2015-11-05 13:12:35 -06:00
.gitreview Renamed repos to trove. 2013-06-14 18:25:42 -04:00
.testr.conf Rename from reddwarf to trove. 2013-06-24 14:11:15 -07:00
babel.cfg Setup trove for translation 2014-03-19 15:06:23 +01:00
CONTRIBUTING.rst Update CONTRIBUTING.RST file 2015-02-04 11:10:28 -08:00
doc-test.conf Update database-api to follow OpenStack conventions 2014-05-23 07:32:29 +02:00
generate_examples.py Fixes hacking rules 2015-05-29 07:27:59 +00:00
LICENSE Add Apache 2.0 LICENSE file. 2013-04-29 18:01:12 -04:00
MANIFEST.in Package AUTHORS and ChangeLog file 2013-06-25 10:41:57 +02:00
README.rst Fix description for "Inapt spelling of a word" 2015-08-20 04:07:30 +00:00
requirements.txt Updated from global requirements 2016-03-05 15:38:37 +00:00
run_tests.py Port run_tests.py to Python 3 2015-11-19 10:25:01 +00:00
run_tests.sh Remove extraneous vim configuration comments 2014-02-27 15:05:21 +08:00
setup.cfg Update setup.cfg entry points for oslo namespace-less import paths 2016-02-22 21:34:13 +01:00
setup.py Updated from global requirements 2015-09-23 14:14:17 +00:00
test-requirements.txt Implement Backup and Restore for CouchDB 2016-03-15 14:37:35 -05:00
tox.ini Block pymongo version 3.1 2016-03-08 21:12:11 -05:00

Trove

Trove is Database as a Service for OpenStack.

Usage for integration testing

If you'd like to start up a fake Trove API daemon for integration testing with your own tool, run:

$ ./tools/start-fake-mode.sh

Stop the server with:

$ ./tools/stop-fake-mode.sh

Tests

To run all tests and PEP8, run tox, like so:

$ tox

To run just the tests for Python 2.7, run:

$ tox -epy27

To run just PEP8, run:

$ tox -epep8

To generate a coverage report,run:

$ tox -ecover

(note: on some boxes, the results may not be accurate unless you run it twice)

If you want to run only the tests in one file you can use testtools e.g.

$ python -m testtools.run trove.tests.unittests.python.module.path