docs - Fix doc build errors with SQLAlchemy 0.9
The Nova docs failed to build when using SQLAlchemy 0.9. Among the errors that are reported is this one: nova/db/sqlalchemy/api.py:docstring of nova.db.sqlalchemy.api.select:12: WARNING: undefined label: coretutorial_selecting (if the link has no caption the label must precede a section header) nova/openstack/common/db/sqlalchemy/utils.py:docstring of nova.openstack.common.db.sqlalchemy.utils.or_:26: WARNING: more than one target found for cross-reference u'and_': nova.db.sqlalchemy.api.and_, nova.virt.baremetal.db.sqlalchemy.migrate_repo.versions.006_move_prov_mac_address.and_ nova/virt/baremetal/db/sqlalchemy/migrate_repo/versions/006_move_prov_mac_address.py: docstring of nova.virt.baremetal.db.sqlalchemy.migrate_repo.versions. 006_move_prov_mac_address.and_:35: WARNING: more than one target found for cross-reference u'or_': nova.db.sqlalchemy.api.or_, nova.openstack.common.db.sqlalchemy.utils.or_ nova/virt/baremetal/db/sqlalchemy/migrate_repo/versions/006_move_prov_mac_address.py: docstring of nova.virt.baremetal.db.sqlalchemy.migrate_repo.versions. 006_move_prov_mac_address.select:12: WARNING: undefined label: coretutorial_selecting (if the link has no caption the label must precede a section header) To fix this, the imports causing breaks were removed and changed to more specific/better imports Change-Id: I83cf38c03cef8bb3186160a660d30979cc303839
This commit is contained in:
parent
4fed8feb09
commit
a76470f980
@ -40,9 +40,9 @@ from sqlalchemy.orm import joinedload
|
||||
from sqlalchemy.orm import joinedload_all
|
||||
from sqlalchemy.orm import noload
|
||||
from sqlalchemy.schema import Table
|
||||
from sqlalchemy import sql
|
||||
from sqlalchemy.sql.expression import asc
|
||||
from sqlalchemy.sql.expression import desc
|
||||
from sqlalchemy.sql.expression import select
|
||||
from sqlalchemy.sql import false
|
||||
from sqlalchemy.sql import func
|
||||
from sqlalchemy.sql import null
|
||||
@ -589,12 +589,12 @@ def compute_node_get_all(context, no_date_fields):
|
||||
def filter_columns(table):
|
||||
return [c for c in table.c if c.name not in redundant_columns]
|
||||
|
||||
compute_node_query = select(filter_columns(compute_node)).\
|
||||
compute_node_query = sql.select(filter_columns(compute_node)).\
|
||||
where(compute_node.c.deleted == 0).\
|
||||
order_by(compute_node.c.service_id)
|
||||
compute_node_rows = conn.execute(compute_node_query).fetchall()
|
||||
|
||||
service_query = select(filter_columns(service)).\
|
||||
service_query = sql.select(filter_columns(service)).\
|
||||
where((service.c.deleted == 0) &
|
||||
(service.c.binary == 'nova-compute')).\
|
||||
order_by(service.c.id)
|
||||
@ -5635,10 +5635,10 @@ def archive_deleted_rows_for_table(context, tablename, max_rows):
|
||||
column = table.c.id
|
||||
# NOTE(guochbo): Use InsertFromSelect and DeleteFromSelect to avoid
|
||||
# database's limit of maximum parameter in one SQL statement.
|
||||
query_insert = select([table],
|
||||
query_insert = sql.select([table],
|
||||
table.c.deleted != default_deleted_value).\
|
||||
order_by(column).limit(max_rows)
|
||||
query_delete = select([column],
|
||||
query_delete = sql.select([column],
|
||||
table.c.deleted != default_deleted_value).\
|
||||
order_by(column).limit(max_rows)
|
||||
|
||||
|
@ -29,7 +29,6 @@ from sqlalchemy import func
|
||||
from sqlalchemy import Index
|
||||
from sqlalchemy import Integer
|
||||
from sqlalchemy import MetaData
|
||||
from sqlalchemy import or_
|
||||
from sqlalchemy.sql.expression import literal_column
|
||||
from sqlalchemy.sql.expression import UpdateBase
|
||||
from sqlalchemy import String
|
||||
@ -184,8 +183,9 @@ def _project_filter(query, db_model, context, project_only):
|
||||
if request_context.is_user_context(context) and project_only:
|
||||
if project_only == 'allow_none':
|
||||
is_none = None
|
||||
query = query.filter(or_(db_model.project_id == context.project_id,
|
||||
db_model.project_id == is_none))
|
||||
query = query.filter(sqlalchemy.sql.or_(
|
||||
db_model.project_id == context.project_id,
|
||||
db_model.project_id == is_none))
|
||||
else:
|
||||
query = query.filter(db_model.project_id == context.project_id)
|
||||
|
||||
|
@ -37,7 +37,7 @@ from sqlalchemy import Integer
|
||||
from sqlalchemy import MetaData
|
||||
from sqlalchemy.orm import exc as sqlalchemy_orm_exc
|
||||
from sqlalchemy.orm import query
|
||||
from sqlalchemy.sql.expression import select
|
||||
from sqlalchemy import sql
|
||||
from sqlalchemy import Table
|
||||
|
||||
from nova import block_device
|
||||
@ -6422,12 +6422,12 @@ class ArchiveTestCase(test.TestCase):
|
||||
where(self.instance_id_mappings.c.uuid.in_(self.uuidstrs[:4]))\
|
||||
.values(deleted=1)
|
||||
self.conn.execute(update_statement)
|
||||
qiim = select([self.instance_id_mappings]).where(self.
|
||||
qiim = sql.select([self.instance_id_mappings]).where(self.
|
||||
instance_id_mappings.c.uuid.in_(self.uuidstrs))
|
||||
rows = self.conn.execute(qiim).fetchall()
|
||||
# Verify we have 6 in main
|
||||
self.assertEqual(len(rows), 6)
|
||||
qsiim = select([self.shadow_instance_id_mappings]).\
|
||||
qsiim = sql.select([self.shadow_instance_id_mappings]).\
|
||||
where(self.shadow_instance_id_mappings.c.uuid.in_(
|
||||
self.uuidstrs))
|
||||
rows = self.conn.execute(qsiim).fetchall()
|
||||
@ -6491,12 +6491,12 @@ class ArchiveTestCase(test.TestCase):
|
||||
where(main_table.c.uuid.in_(self.uuidstrs[:4]))\
|
||||
.values(deleted=1)
|
||||
self.conn.execute(update_statement)
|
||||
qmt = select([main_table]).where(main_table.c.uuid.in_(
|
||||
qmt = sql.select([main_table]).where(main_table.c.uuid.in_(
|
||||
self.uuidstrs))
|
||||
rows = self.conn.execute(qmt).fetchall()
|
||||
# Verify we have 6 in main
|
||||
self.assertEqual(len(rows), 6)
|
||||
qst = select([shadow_table]).\
|
||||
qst = sql.select([shadow_table]).\
|
||||
where(shadow_table.c.uuid.in_(self.uuidstrs))
|
||||
rows = self.conn.execute(qst).fetchall()
|
||||
# Verify we have 0 in shadow
|
||||
@ -6535,11 +6535,11 @@ class ArchiveTestCase(test.TestCase):
|
||||
where(self.dns_domains.c.domain == uuidstr0).\
|
||||
values(deleted=True)
|
||||
self.conn.execute(update_statement)
|
||||
qdd = select([self.dns_domains], self.dns_domains.c.domain ==
|
||||
qdd = sql.select([self.dns_domains], self.dns_domains.c.domain ==
|
||||
uuidstr0)
|
||||
rows = self.conn.execute(qdd).fetchall()
|
||||
self.assertEqual(len(rows), 1)
|
||||
qsdd = select([self.shadow_dns_domains],
|
||||
qsdd = sql.select([self.shadow_dns_domains],
|
||||
self.shadow_dns_domains.c.domain == uuidstr0)
|
||||
rows = self.conn.execute(qsdd).fetchall()
|
||||
self.assertEqual(len(rows), 0)
|
||||
@ -6600,21 +6600,21 @@ class ArchiveTestCase(test.TestCase):
|
||||
.values(deleted=1)
|
||||
self.conn.execute(update_statement2)
|
||||
# Verify we have 6 in each main table
|
||||
qiim = select([self.instance_id_mappings]).where(
|
||||
qiim = sql.select([self.instance_id_mappings]).where(
|
||||
self.instance_id_mappings.c.uuid.in_(self.uuidstrs))
|
||||
rows = self.conn.execute(qiim).fetchall()
|
||||
self.assertEqual(len(rows), 6)
|
||||
qi = select([self.instances]).where(self.instances.c.uuid.in_(
|
||||
qi = sql.select([self.instances]).where(self.instances.c.uuid.in_(
|
||||
self.uuidstrs))
|
||||
rows = self.conn.execute(qi).fetchall()
|
||||
self.assertEqual(len(rows), 6)
|
||||
# Verify we have 0 in each shadow table
|
||||
qsiim = select([self.shadow_instance_id_mappings]).\
|
||||
qsiim = sql.select([self.shadow_instance_id_mappings]).\
|
||||
where(self.shadow_instance_id_mappings.c.uuid.in_(
|
||||
self.uuidstrs))
|
||||
rows = self.conn.execute(qsiim).fetchall()
|
||||
self.assertEqual(len(rows), 0)
|
||||
qsi = select([self.shadow_instances]).\
|
||||
qsi = sql.select([self.shadow_instances]).\
|
||||
where(self.shadow_instances.c.uuid.in_(self.uuidstrs))
|
||||
rows = self.conn.execute(qsi).fetchall()
|
||||
self.assertEqual(len(rows), 0)
|
||||
|
@ -19,7 +19,7 @@ import sqlalchemy
|
||||
from sqlalchemy import Integer, String
|
||||
from sqlalchemy import MetaData, Table, Column
|
||||
from sqlalchemy.exc import NoSuchTableError
|
||||
from sqlalchemy.sql import select
|
||||
from sqlalchemy import sql
|
||||
from sqlalchemy.types import UserDefinedType
|
||||
|
||||
from nova.db.sqlalchemy import api as db
|
||||
@ -62,7 +62,7 @@ class TestMigrationUtils(test_migrations.BaseMigrationTestCase):
|
||||
|
||||
# Delete 4 rows in one chunk
|
||||
column = test_table.c.id
|
||||
query_delete = select([column],
|
||||
query_delete = sql.select([column],
|
||||
test_table.c.id < 5).order_by(column)
|
||||
delete_statement = utils.DeleteFromSelect(test_table,
|
||||
query_delete, column)
|
||||
@ -70,7 +70,7 @@ class TestMigrationUtils(test_migrations.BaseMigrationTestCase):
|
||||
# Verify we delete 4 rows
|
||||
self.assertEqual(result_delete.rowcount, 4)
|
||||
|
||||
query_all = select([test_table]).\
|
||||
query_all = sql.select([test_table]).\
|
||||
where(test_table.c.uuid.in_(uuidstrs))
|
||||
rows = conn.execute(query_all).fetchall()
|
||||
# Verify we still have 6 rows in table
|
||||
|
@ -13,8 +13,9 @@
|
||||
# under the License.
|
||||
|
||||
from nova.openstack.common import log as logging
|
||||
from sqlalchemy import and_, MetaData, select, Table, exists
|
||||
from sqlalchemy import MetaData, Table, exists
|
||||
from sqlalchemy import exc
|
||||
from sqlalchemy import sql
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
@ -26,7 +27,7 @@ def upgrade(migrate_engine):
|
||||
nodes = Table('bm_nodes', meta, autoload=True)
|
||||
ifs = Table('bm_interfaces', meta, autoload=True)
|
||||
|
||||
q = select([nodes.c.id, nodes.c.prov_mac_address],
|
||||
q = sql.select([nodes.c.id, nodes.c.prov_mac_address],
|
||||
from_obj=nodes)
|
||||
|
||||
# Iterate all elements before starting insert since IntegrityError
|
||||
@ -52,8 +53,9 @@ def downgrade(migrate_engine):
|
||||
nodes = Table('bm_nodes', meta, autoload=True)
|
||||
ifs = Table('bm_interfaces', meta, autoload=True)
|
||||
|
||||
subq = exists().where(and_(ifs.c.bm_node_id == nodes.c.id,
|
||||
ifs.c.address == nodes.c.prov_mac_address))
|
||||
subq = exists().where(sql.and_(
|
||||
ifs.c.bm_node_id == nodes.c.id,
|
||||
ifs.c.address == nodes.c.prov_mac_address))
|
||||
|
||||
ifs.delete().where(subq).execute()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user