OpenStack Database As A Service (Trove)
65917f3ec0
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 |
||
---|---|---|
apidocs | ||
contrib | ||
devstack | ||
doc | ||
etc | ||
releasenotes | ||
tools | ||
trove | ||
.coveragerc | ||
.gitignore | ||
.gitreview | ||
.testr.conf | ||
babel.cfg | ||
CONTRIBUTING.rst | ||
doc-test.conf | ||
generate_examples.py | ||
LICENSE | ||
MANIFEST.in | ||
README.rst | ||
requirements.txt | ||
run_tests.py | ||
run_tests.sh | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tox.ini |
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