From d7266cb4d776dd15fdd77b9617a5a82819f6e43a Mon Sep 17 00:00:00 2001 From: Brant Knudson Date: Fri, 16 Jan 2015 18:08:37 -0600 Subject: [PATCH] Change oslo.db to oslo_db The oslo libraries are moving away from namespace packages. A hacking check is added to enforce use of the new location. bp drop-namespace-packages Change-Id: I9b4b1ff0abde2084d3645825d08dab5670ae7979 --- keystone/common/sql/core.py | 10 +++++----- keystone/common/sql/migration_helpers.py | 2 +- .../versions/004_add_remote_id_column.py | 2 +- keystone/hacking/checks.py | 6 ++++-- keystone/tests/ksfixtures/database.py | 4 ++-- keystone/tests/ksfixtures/hacking.py | 12 ++++++++++++ keystone/tests/test_backend_sql.py | 4 ++-- keystone/tests/test_sql_migrate_extensions.py | 2 +- keystone/tests/test_sql_upgrade.py | 12 ++++++------ keystone/trust/backends/sql.py | 2 +- 10 files changed, 35 insertions(+), 21 deletions(-) diff --git a/keystone/common/sql/core.py b/keystone/common/sql/core.py index 493efb8d51..1b9855456a 100644 --- a/keystone/common/sql/core.py +++ b/keystone/common/sql/core.py @@ -22,10 +22,10 @@ import contextlib import functools from oslo.config import cfg -from oslo.db import exception as db_exception -from oslo.db import options as db_options -from oslo.db.sqlalchemy import models -from oslo.db.sqlalchemy import session as db_session +from oslo_db import exception as db_exception +from oslo_db import options as db_options +from oslo_db.sqlalchemy import models +from oslo_db.sqlalchemy import session as db_session from oslo_serialization import jsonutils import six import sqlalchemy as sql @@ -401,7 +401,7 @@ def handle_conflicts(conflict_type='object'): details=_('Duplicate Entry')) except db_exception.DBError as e: # TODO(blk-u): inspecting inner_exception breaks encapsulation; - # oslo.db should provide exception we need. + # oslo_db should provide exception we need. if isinstance(e.inner_exception, IntegrityError): # LOG the exception for debug purposes, do not send the # exception details out with the raised Conflict exception diff --git a/keystone/common/sql/migration_helpers.py b/keystone/common/sql/migration_helpers.py index bc093d67eb..44fc942774 100644 --- a/keystone/common/sql/migration_helpers.py +++ b/keystone/common/sql/migration_helpers.py @@ -19,7 +19,7 @@ import sys import migrate from migrate import exceptions -from oslo.db.sqlalchemy import migration +from oslo_db.sqlalchemy import migration from oslo_serialization import jsonutils from oslo_utils import importutils import six diff --git a/keystone/contrib/federation/migrate_repo/versions/004_add_remote_id_column.py b/keystone/contrib/federation/migrate_repo/versions/004_add_remote_id_column.py index 47291eae09..dbe5d1f1cf 100644 --- a/keystone/contrib/federation/migrate_repo/versions/004_add_remote_id_column.py +++ b/keystone/contrib/federation/migrate_repo/versions/004_add_remote_id_column.py @@ -10,7 +10,7 @@ # License for the specific language governing permissions and limitations # under the License. -from oslo.db.sqlalchemy import utils +from oslo_db.sqlalchemy import utils import sqlalchemy as sql diff --git a/keystone/hacking/checks.py b/keystone/hacking/checks.py index 0ddf219c32..e0f1d3e333 100644 --- a/keystone/hacking/checks.py +++ b/keystone/hacking/checks.py @@ -399,8 +399,10 @@ class CheckForLoggingIssues(BaseASTChecker): def check_oslo_namespace_imports(logical_line, blank_before, filename): oslo_namespace_imports = re.compile( - r"(((from)|(import))\s+oslo\.((messaging)|(serialization)|(utils)))|" - "(from\s+oslo\s+import\s+((messaging)|(serialization)|(utils)))") + r"(((from)|(import))\s+oslo\.(" + "(db)|(messaging)|(serialization)|(utils)))|" + "(from\s+oslo\s+import\s+(" + "(db)|(messaging)|(serialization)|(utils)))") if re.match(oslo_namespace_imports, logical_line): msg = ("K333: '%s' must be used instead of '%s'.") % ( diff --git a/keystone/tests/ksfixtures/database.py b/keystone/tests/ksfixtures/database.py index 1b0862f8af..4633612189 100644 --- a/keystone/tests/ksfixtures/database.py +++ b/keystone/tests/ksfixtures/database.py @@ -16,8 +16,8 @@ import os import shutil import fixtures -from oslo.db import options as db_options -from oslo.db.sqlalchemy import migration +from oslo_db import options as db_options +from oslo_db.sqlalchemy import migration from keystone.common import sql from keystone.common.sql import migration_helpers diff --git a/keystone/tests/ksfixtures/hacking.py b/keystone/tests/ksfixtures/hacking.py index 5450f7d01d..8f6f2ea411 100644 --- a/keystone/tests/ksfixtures/hacking.py +++ b/keystone/tests/ksfixtures/hacking.py @@ -204,6 +204,14 @@ class HackingCode(fixtures.Fixture): from oslo import messaging from oslo.messaging import conffixture from oslo_messaging import conffixture + + import oslo.db + import oslo_db + import oslo.db.api + import oslo_db.api + from oslo import db + from oslo.db import api + from oslo_db import api """, 'expected_errors': [ (1, 0, 'K333'), @@ -218,6 +226,10 @@ class HackingCode(fixtures.Fixture): (19, 0, 'K333'), (21, 0, 'K333'), (22, 0, 'K333'), + (25, 0, 'K333'), + (27, 0, 'K333'), + (29, 0, 'K333'), + (30, 0, 'K333'), ], } diff --git a/keystone/tests/test_backend_sql.py b/keystone/tests/test_backend_sql.py index 314a6bb782..fdd568d581 100644 --- a/keystone/tests/test_backend_sql.py +++ b/keystone/tests/test_backend_sql.py @@ -17,8 +17,8 @@ import functools import uuid import mock -from oslo.db import exception as db_exception -from oslo.db import options +from oslo_db import exception as db_exception +from oslo_db import options import sqlalchemy from sqlalchemy import exc from testtools import matchers diff --git a/keystone/tests/test_sql_migrate_extensions.py b/keystone/tests/test_sql_migrate_extensions.py index 0935440a55..be3be8d6bb 100644 --- a/keystone/tests/test_sql_migrate_extensions.py +++ b/keystone/tests/test_sql_migrate_extensions.py @@ -29,7 +29,7 @@ WARNING:: all data will be lost. """ -from oslo.db.sqlalchemy import utils +from oslo_db.sqlalchemy import utils from keystone.contrib import endpoint_filter from keystone.contrib import endpoint_policy diff --git a/keystone/tests/test_sql_upgrade.py b/keystone/tests/test_sql_upgrade.py index f17f33d07a..8ba125d129 100644 --- a/keystone/tests/test_sql_upgrade.py +++ b/keystone/tests/test_sql_upgrade.py @@ -34,9 +34,9 @@ import json import uuid from migrate.versioning import api as versioning_api -from oslo.db import exception as db_exception -from oslo.db.sqlalchemy import migration -from oslo.db.sqlalchemy import session as db_session +from oslo_db import exception as db_exception +from oslo_db.sqlalchemy import migration +from oslo_db.sqlalchemy import session as db_session import six from sqlalchemy.engine import reflection import sqlalchemy.exc @@ -1234,11 +1234,11 @@ class SqlUpgradeTests(SqlMigrateBase): self.assertEqual(1, session.query(region_unique_table).count()) # verify the unique constraint is enforced self.assertRaises( - # FIXME (I159): Since oslo.db wraps all the database exceptions + # FIXME (I159): Since oslo_db wraps all the database exceptions # into more specific exception objects, we should catch both of - # sqlalchemy and oslo.db exceptions. If an old oslo.db version + # sqlalchemy and oslo_db exceptions. If an old oslo_db version # is installed, IntegrityError is raised. If >=0.4.0 version of - # oslo.db is installed, DBError is raised. + # oslo_db is installed, DBError is raised. # When the global requirements is updated with # the version fixes exceptions wrapping, IntegrityError must be # removed from the tuple. diff --git a/keystone/trust/backends/sql.py b/keystone/trust/backends/sql.py index ef826862d5..f2b479742b 100644 --- a/keystone/trust/backends/sql.py +++ b/keystone/trust/backends/sql.py @@ -117,7 +117,7 @@ class Trust(trust.Driver): raise exception.TrustUseLimitReached(trust_id=trust_id) # NOTE(morganfainberg): Ensure we have a yield point for eventlet # here. This should cost us nothing otherwise. This can be removed - # if/when oslo.db cleanly handles yields on db calls. + # if/when oslo_db cleanly handles yields on db calls. time.sleep(0) else: # NOTE(morganfainberg): In the case the for loop is not prematurely