ca9ba88a7a31e6feb906f9c84b47af2aed43c684
This wasn't as complicated as feared. We're mostly able to copy-paste
the existing sqlalchemy-migrate migration and simply changes the pattern
of calls from monkey-patched 'create' methods such as:
agent_builds = Table('agent_builds', meta,
sa.Column('created_at', sa.DateTime),
...
mysql_charset='utf8'
)
agent_builds.create()
to explicit alembic APIs like:
op.create_table(
'agent_builds',
sa.Column('created_at', sa.DateTime),
...
mysql_charset='utf8'
)
Reviewers are encouraged to diff the old migration file,
'nova/db/main/legacy_migrations/versions/402_train.py' against the new
one, 'nova/db/main/migrations/versions/8f2f1571d55b_initial_version.py',
to ease their job. The only significant divergences are the removal of
a single reference to the 'migrate_version' table created by
sqlalchemy-migrate, which obviously won't exist in an alembic-only
world, along with some reordering of tables. The latter step is
necessary since Alembic is not smart enough to correctly order the
creation of tables so that tables that reference (via a foreign key) one
or more other tables are created after the table(s) they reference.
Since we now have to create tables using the 'create_table' API as noted
above, rather than by creating a 'Table' instance and calling the
sqlalchemy-migrate-provided 'create' API as we could previously, we must
reorder our calls. The alternative would be to leave the creation of any
'ForeignKeyConstraint' until later but that seems no better and would
arguably be harder to read.
Note that this isn't yet wired up to anything: users can run it manually
but the nova-manage commands we provide are still connected to the
sqlalchemy-migrate commands. This will change shortly when we add shims
to handle the conversion.
Change-Id: I1fa2feaee78213ad81f1889ce54888696f58d98c
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
…
…
==============
OpenStack Nova
==============
.. image:: https://governance.openstack.org/tc/badges/nova.svg
:target: https://governance.openstack.org/tc/reference/tags/index.html
.. Change things from this point on
OpenStack Nova provides a cloud computing fabric controller, supporting a wide
variety of compute technologies, including: libvirt (KVM, Xen, LXC and more),
Hyper-V, VMware, OpenStack Ironic and PowerVM.
Use the following resources to learn more.
API
---
To learn how to use Nova's API, consult the documentation available online at:
- `Compute API Guide <https://docs.openstack.org/api-guide/compute/>`__
- `Compute API Reference <https://docs.openstack.org/api-ref/compute/>`__
For more information on OpenStack APIs, SDKs and CLIs in general, refer to:
- `OpenStack for App Developers <https://www.openstack.org/appdev/>`__
- `Development resources for OpenStack clouds
<https://developer.openstack.org/>`__
Operators
---------
To learn how to deploy and configure OpenStack Nova, consult the documentation
available online at:
- `OpenStack Nova <https://docs.openstack.org/nova/>`__
In the unfortunate event that bugs are discovered, they should be reported to
the appropriate bug tracker. If you obtained the software from a 3rd party
operating system vendor, it is often wise to use their own bug tracker for
reporting problems. In all other cases use the master OpenStack bug tracker,
available at:
- `Bug Tracker <https://bugs.launchpad.net/nova>`__
Developers
----------
For information on how to contribute to Nova, please see the contents of the
CONTRIBUTING.rst.
Any new code must follow the development guidelines detailed in the HACKING.rst
file, and pass all unit tests.
Further developer focused documentation is available at:
- `Official Nova Documentation <https://docs.openstack.org/nova/>`__
- `Official Client Documentation
<https://docs.openstack.org/python-novaclient/>`__
Other Information
-----------------
During each `Summit`_ and `Project Team Gathering`_, we agree on what the whole
community wants to focus on for the upcoming release. The plans for nova can
be found at:
- `Nova Specs <http://specs.openstack.org/openstack/nova-specs/>`__
.. _Summit: https://www.openstack.org/summit/
.. _Project Team Gathering: https://www.openstack.org/ptg/
Description
Languages
Python
97.5%
Smarty
2.3%
Shell
0.2%