The oslo_db.sqlalchemy.provision Module¶
Provision test environment for specific DB backends
-
class
oslo_db.sqlalchemy.provision.Backend(database_type, url)¶ Bases:
objectRepresent a particular database backend that may be provisionable.
The
Backendobject maintains a database type (e.g. database without specific driver type, such as “sqlite”, “postgresql”, etc.), a target URL, a baseEnginefor that URL object that can be used to provision databases and aBackendImplwhich knows how to perform operations against this type ofEngine.-
classmethod
all_viable_backends()¶ Return an iterator of all
Backendobjects that are presentand provisionable.
-
classmethod
backend_for_database_type(database_type)¶ Return the
Backendfor the given database type.
-
backends_by_database_type= {'sqlite': <oslo_db.sqlalchemy.provision.Backend object at 0x8f3874c>, 'postgresql': <oslo_db.sqlalchemy.provision.Backend object at 0x9560c4c>, 'mysql': <oslo_db.sqlalchemy.provision.Backend object at 0x957174c>}¶
-
create_named_database(ident, conditional=False)¶ Create a database with the given name.
-
database_exists(ident)¶ Return True if a database of the given name exists.
-
drop_all_objects(engine)¶ Drop all database objects.
Drops all database objects remaining on the default schema of the given engine.
-
drop_named_database(ident, conditional=False)¶ Drop a database with the given name.
-
provisioned_engine(ident)¶ Given the URL of a particular database backend and the string
name of a particular ‘database’ within that backend, return an Engine instance whose connections will refer directly to the named database.
For hostname-based URLs, this typically involves switching just the ‘database’ portion of the URL with the given name and creating an engine.
For URLs that instead deal with DSNs, the rules may be more custom; for example, the engine may need to connect to the root URL and then emit a command to switch to the named database.
-
classmethod
-
class
oslo_db.sqlalchemy.provision.BackendImpl(drivername)¶ Bases:
objectProvide database-specific implementations of key provisioning
functions.
BackendImplis owned by aBackendinstance which delegates to it for all database-specific features.-
classmethod
all_impls()¶ Return an iterator of all possible BackendImpl objects.
These are BackendImpls that are implemented, but not necessarily provisionable.
-
create_named_database(engine, ident, conditional=False)¶ Create a database with the given name.
-
create_opportunistic_driver_url()¶ Produce a string url known as the ‘opportunistic’ URL.
This URL is one that corresponds to an established Openstack convention for a pre-established database login, which, when detected as available in the local environment, is automatically used as a test platform for a specific type of driver.
-
default_engine_kwargs= {}¶
-
drop_additional_objects(conn)¶
-
drop_all_objects(engine)¶ Drop all database objects.
Drops all database objects remaining on the default schema of the given engine.
Per-db implementations will also need to drop items specific to those systems, such as sequences, custom types (e.g. pg ENUM), etc.
-
drop_named_database(engine, ident, conditional=False)¶ Drop a database with the given name.
-
impl= <oslo_db.sqlalchemy.utils.DialectSingleFunctionDispatcher object at 0x9bb170c>¶
-
provisioned_engine(base_url, ident)¶ Return a provisioned engine.
Given the URL of a particular database backend and the string name of a particular ‘database’ within that backend, return an Engine instance whose connections will refer directly to the named database.
For hostname-based URLs, this typically involves switching just the ‘database’ portion of the URL with the given name and creating an engine.
For URLs that instead deal with DSNs, the rules may be more custom; for example, the engine may need to connect to the root URL and then emit a command to switch to the named database.
-
supports_drop_fk= True¶
-
classmethod
-
class
oslo_db.sqlalchemy.provision.BackendResource(database_type)¶ Bases:
testresources.TestResourceManager-
isDirty()¶
-
make(dependency_resources)¶
-
-
class
oslo_db.sqlalchemy.provision.DatabaseResource(database_type)¶ Bases:
testresources.TestResourceManager-
clean(resource)¶
-
isDirty()¶
-
make(dependency_resources)¶
-
-
class
oslo_db.sqlalchemy.provision.ProvisionedDatabase¶ Bases:
object
-
class
oslo_db.sqlalchemy.provision.Schema¶ Bases:
object