The module docs were out of date (sqlalchemy.enginefacade was
missing).
Rather than try to keep this up to date by hand, autogenerate the
module docs.
Change-Id: I9b36cc635c1c0af9a61b5da20205f5628aec97e7
Check explicitly for the cases where no "sql_connection"
attribute was set when running _start(), so that the
lack of this parameter is documented by the
exception rather than failing into create_engine()
with an unclear failure mode.
If _start() fails as it will here, make sure _started
stays False so that repeated calls to _start() continue
to raise the same exception, rather than raising
attribute errors. When accessing the "session" or
"connection" attributes of the context when these
attributes were not requested by the decorator or
context manager, raise explicit exceptions
for each, rather than returning None which leads to
hard-to-debug NoneType errors.
Change-Id: Iadfbf4707daed4140285a3a472009f6863b18275
Closes-bug: 1477080
As discussed in the Liberty Design Summit "Moving apps to Python 3"
cross-project workshop, the way forward in the near future is to
switch to the pure-python PyMySQL library as a default.
Added a special test environment to keep MySQL-python support.
Documentation modified.
https://etherpad.openstack.org/p/liberty-cross-project-python3
Change-Id: I12b32dc097a121bd43991bc38dd4d289b65e86c1
This module presents a replacement for the EngineFacade
system. At the center is the oslo.db.sqlalchemy.enginefacade
module, which when imported, provides decorators and context
managers which perform all database and ORM connectivity
functions transparently. The docstrings as well
as the blueprint provide an introduction.
The patch includes a refactoring of sqlalchemy/session.py
into three dependent modules engines.py, orm.py and
enginefacade.py. This is to maintain a non-cyclical import
structure as well as to maintain the import behavior of
oslo.db overall, as some projects such as glance currently
have dependencies on this structure.
There is also a slimming down and attempt at modernizing
some very old documentation in session.py. The enginefacade
system should be preferred moving forward.
Implements: blueprint make-enginefacade-a-facade
Change-Id: I9a3d0c26bb727eb2c0bd823b9a12fde57cc7c9c3
Also makes the docs look more like the other
oslo libraries so that the content is easily readable
across projects.
Change-Id: Idb17dd30403daa130176643f4609fdd7c61c076e
Move the public API out of oslo.db to oslo_db. Retain the ability to
import from the old namespace package for backwards compatibility for
this release cycle.
Blueprint: drop-namespace-packages
Change-Id: Ie96b482b9fbcb1d85203ad35bb65c1f43e912a44
Switch to manually generated rst files for the API documentation so we
do not expose private parts of the library.
Fix formatting of usage.rst
Convert bullet list to section headers to fix rendering issues and make
the docs more readable.
Fix formatting of docstrings in classes exposed in the docs to eliminate
warnings/errors from Sphinx.
Add history.rst
Change-Id: I6f500775f801558f7c0c29f180b60f83a7150e02
- make it possible to create a DBAPI instance given a config instance
- remove usage of global cfg.CONF instance (it's up to a user to pass
a ConfigOpts instance to oslo.db)
- ensure end applications don't need to import/register/use config
options directly - instead they pass a config instance to oslo.db
helpers (EngineFacade.from_config() and DBAPI.from_config() class
methods)
At the same time, usage of oslo.config remains completely optional as
we provide an API to pass those parameters programatically.
Change-Id: I1a00db7a4200ebdc96f17256ecbad430477e868f