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
2016-02-03 11:26:52 -05:00
2015-05-29 07:27:59 +00:00
2014-12-02 09:57:52 +01:00
2013-06-24 14:11:15 -07:00
2013-06-14 18:25:42 -04:00
2013-06-24 14:11:15 -07:00
2014-03-19 15:06:23 +01:00
2015-02-04 11:10:28 -08:00
2015-05-29 07:27:59 +00:00
2013-04-29 18:01:12 -04:00
2013-06-25 10:41:57 +02:00
2015-11-19 10:25:01 +00:00
2015-09-23 14:14:17 +00:00
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
Description
OpenStack Database As A Service (Trove)
Readme 114 MiB
Languages
Python 95%
Shell 4.9%