bbc / nmos-registration

AMWA NMOS IS-04 Registration API Service
Apache License 2.0
6 stars 2 forks source link

Add new datastore backend #28

Closed mrkwse closed 6 months ago

mrkwse commented 5 years ago

See Confluence for further context

Add parallel implementation of Couchbase document store backend alongside etcd.

Still WIP, however should be functionally equivalent to etcd backend at this point. Still a bit of refactoring/tidying, and a couple of places where behaviour still a little bit legacy.

andrewbonney commented 5 years ago

Looks like the dependency addition in setup.py may need replicating into stdeb.cfg in a Debian/Ubuntu compatible way:

Aug 12 14:58:14 ap-z220-0 nmosregistration[12841]: Traceback (most recent call last):
Aug 12 14:58:14 ap-z220-0 nmosregistration[12841]:   File "/usr/bin/nmosregistration", line 7, in <module>
Aug 12 14:58:14 ap-z220-0 nmosregistration[12841]:     from nmosregistration.registryaggregatorservice import RegistryAggregatorService
Aug 12 14:58:14 ap-z220-0 nmosregistration[12841]:   File "/usr/lib/python2.7/dist-packages/gevent/builtins.py", line 93, in __import__
Aug 12 14:58:14 ap-z220-0 nmosregistration[12841]:     result = _import(*args, **kwargs)
Aug 12 14:58:14 ap-z220-0 nmosregistration[12841]:   File "/usr/lib/python2.7/dist-packages/nmosregistration/registryaggregatorservice.py", line 21, in <module>
Aug 12 14:58:14 ap-z220-0 nmosregistration[12841]:     from nmosregistration.aggregation import AggregatorAPI, AGGREGATOR_APIVERSIONS # noqa E402
Aug 12 14:58:14 ap-z220-0 nmosregistration[12841]:   File "/usr/lib/python2.7/dist-packages/gevent/builtins.py", line 93, in __import__
Aug 12 14:58:14 ap-z220-0 nmosregistration[12841]:     result = _import(*args, **kwargs)
Aug 12 14:58:14 ap-z220-0 nmosregistration[12841]:   File "/usr/lib/python2.7/dist-packages/nmosregistration/aggregation.py", line 20, in <module>
Aug 12 14:58:14 ap-z220-0 nmosregistration[12841]:     from .couchbase_backend import CouchbaseInterface
Aug 12 14:58:14 ap-z220-0 nmosregistration[12841]:   File "/usr/lib/python2.7/dist-packages/gevent/builtins.py", line 93, in __import__
Aug 12 14:58:14 ap-z220-0 nmosregistration[12841]:     result = _import(*args, **kwargs)
Aug 12 14:58:14 ap-z220-0 nmosregistration[12841]:   File "/usr/lib/python2.7/dist-packages/nmosregistration/couchbase_backend.py", line 18, in <module>
Aug 12 14:58:14 ap-z220-0 nmosregistration[12841]:     import couchbase.exceptions
Aug 12 14:58:14 ap-z220-0 nmosregistration[12841]:   File "/usr/lib/python2.7/dist-packages/gevent/builtins.py", line 93, in __import__
Aug 12 14:58:14 ap-z220-0 nmosregistration[12841]:     result = _import(*args, **kwargs)
Aug 12 14:58:14 ap-z220-0 nmosregistration[12841]: ImportError: No module named couchbase.exceptions
Aug 12 14:58:14 ap-z220-0 systemd[1]: python-registryaggregator.service: Main process exited, code=exited, status=1/FAILURE
Aug 12 14:58:14 ap-z220-0 systemd[1]: python-registryaggregator.service: Unit entered failed state.
Aug 12 14:58:14 ap-z220-0 systemd[1]: python-registryaggregator.service: Failed with result 'exit-code'.

If the package is also becoming Python 3 only then the builds for Py2 packages will need to stop. I can't remember if that was a requirement or not.

andrewbonney commented 5 years ago

If Debianising turns out to be a pain, we may use this as a first step into using pure Ansible/PyPI for deployment.