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:
Davanum Srinivas 2014-07-28 15:16:03 -07:00 committed by Davanum Srinivas (dims)
parent 4fed8feb09
commit a76470f980
5 changed files with 28 additions and 26 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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()