QuantumOpenstackCommon
This page will serve as a page to propose sections of Quantum code that are good candidates for inclusion in the openstack-common project (and hence, removal from Quantum itself).
Summary
Best candidates in terms of code removed seem to be generic utilities around config/flags, as well as common code around the wsgi web framework and serialization. I would also like to get some of the generic DB initialization code into a common lib, as I want to make sure any bug fixes there are received by Quantum.
Hopefully almost all of the following files can be put in openstack-common:
- quantum/common/config.py
- quantum/common/flags.py
- quantum/common/utils.py
- quantum/common/serializer.py (generic web serialization code)
- quantum/common/test_lib.py (code borrowed from standard run_tests.py, so that quantum plugins could have their own run_tests.py without duplication)
- quantum/common/extensions.py (only tiny bits of this file are quantum specific. Most is the generic extensions code from justinsb)
- quantum/service.py (seems like mostly generic code to start the wsgi service)
- quantum/wsgi.py (generic code for wsgi services)
Some parts of of the following files can be put in openstack-common:
- quantum/api/api_common.py (significant parts of this file seem to be API Controller boilerplate, probably identical to what is used for other projects).
- qauntum/db/api.py (generic db/session/model code at top is stolen from nova. I would REALLY like to get this in openstack-common, so any bug fixes or improvements filter to quantum).
- quantum/db/models.py (QuantumBase class for models is probably borrowed from another project. seems generic)
- quantum/common/exceptions.py (seems like base code was borrowed from another service)
Also, we should look into leveraging openstack common for keystone client functionality needed by the Quantum client.