From 94d491923bc8b7c429d0f45f72263c959043407c Mon Sep 17 00:00:00 2001 From: Chris Behrens Date: Fri, 22 Feb 2013 16:37:28 +0000 Subject: [PATCH] Sync nova with oslo DB exception cleanup. DB exceptions have moved to openstack/common/db/exception module so that they can be shared with multiple DB implementations. Deadlock checking was also added to oslo to consolidate with DuplicateKey checking. This allows us to clean up our _retry_on_deadlock decorator in sqlalchemy/api.py Fixes unrelated pep8 issue with duplicate test in test_compute also. Change-Id: I7e985b384d1ef345e0d67c919b84b4faff869699 --- bin/nova-manage | 10 +++++----- nova/tests/baremetal/db/test_bm_interface.py | 4 ++-- nova/tests/baremetal/db/test_bm_pxe_ip.py | 6 +++--- nova/tests/baremetal/test_pxe.py | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/bin/nova-manage b/bin/nova-manage index c4e9841c..0fde8ba0 100755 --- a/bin/nova-manage +++ b/bin/nova-manage @@ -80,7 +80,7 @@ from nova import db from nova.db import migration from nova import exception from nova.openstack.common import cliutils -from nova.openstack.common.db.sqlalchemy import session as db_session +from nova.openstack.common.db import exception as db_exc from nova.openstack.common import importutils from nova.openstack.common import log as logging from nova.openstack.common import rpc @@ -861,7 +861,7 @@ class InstanceTypeCommands(object): except exception.InstanceTypeNotFound: print _("Valid instance type name is required") sys.exit(1) - except db_session.DBError, e: + except db_exc.DBError, e: print _("DB Error: %s") % e sys.exit(2) except Exception: @@ -878,7 +878,7 @@ class InstanceTypeCommands(object): inst_types = instance_types.get_all_types() else: inst_types = instance_types.get_instance_type_by_name(name) - except db_session.DBError, e: + except db_exc.DBError, e: _db_error(e) if isinstance(inst_types.values()[0], dict): for k, v in inst_types.iteritems(): @@ -909,7 +909,7 @@ class InstanceTypeCommands(object): ext_spec) print _("Key %(key)s set to %(value)s on instance" " type %(name)s") % locals() - except db_session.DBError, e: + except db_exc.DBError, e: _db_error(e) @args('--name', dest='name', metavar='', @@ -932,7 +932,7 @@ class InstanceTypeCommands(object): key) print _("Key %(key)s on instance type %(name)s unset") % locals() - except db_session.DBError, e: + except db_exc.DBError, e: _db_error(e) diff --git a/nova/tests/baremetal/db/test_bm_interface.py b/nova/tests/baremetal/db/test_bm_interface.py index 32beb1ce..e870ec5e 100644 --- a/nova/tests/baremetal/db/test_bm_interface.py +++ b/nova/tests/baremetal/db/test_bm_interface.py @@ -18,7 +18,7 @@ Bare-metal DB testcase for BareMetalInterface """ from nova import exception -from nova.openstack.common.db.sqlalchemy import session as db_session +from nova.openstack.common.db import exception as db_exc from nova.tests.baremetal.db import base from nova.virt.baremetal import db @@ -28,7 +28,7 @@ class BareMetalInterfaceTestCase(base.BMDBTestCase): def test_unique_address(self): pif1_id = db.bm_interface_create(self.context, 1, '11:11:11:11:11:11', '0x1', 1) - self.assertRaises(db_session.DBError, + self.assertRaises(db_exc.DBError, db.bm_interface_create, self.context, 2, '11:11:11:11:11:11', '0x2', 2) # succeed after delete pif1 diff --git a/nova/tests/baremetal/db/test_bm_pxe_ip.py b/nova/tests/baremetal/db/test_bm_pxe_ip.py index 9820f3af..fe8ba5b3 100644 --- a/nova/tests/baremetal/db/test_bm_pxe_ip.py +++ b/nova/tests/baremetal/db/test_bm_pxe_ip.py @@ -18,7 +18,7 @@ Bare-metal DB testcase for BareMetalPxeIp """ from nova import exception -from nova.openstack.common.db.sqlalchemy import session as db_session +from nova.openstack.common.db import exception as db_exc from nova.tests.baremetal.db import base from nova.tests.baremetal.db import utils from nova.virt.baremetal import db @@ -51,14 +51,14 @@ class BareMetalPxeIpTestCase(base.BMDBTestCase): # address duplicates i = utils.new_bm_pxe_ip(address='10.1.1.1', server_address='10.1.1.201') - self.assertRaises(db_session.DBError, + self.assertRaises(db_exc.DBError, db.bm_pxe_ip_create_direct, self.context, i) # server_address duplicates i = utils.new_bm_pxe_ip(address='10.1.1.3', server_address='10.1.1.101') - self.assertRaises(db_session.DBError, + self.assertRaises(db_exc.DBError, db.bm_pxe_ip_create_direct, self.context, i) diff --git a/nova/tests/baremetal/test_pxe.py b/nova/tests/baremetal/test_pxe.py index d9e41bc6..4f4c9f7d 100644 --- a/nova/tests/baremetal/test_pxe.py +++ b/nova/tests/baremetal/test_pxe.py @@ -27,7 +27,7 @@ from oslo.config import cfg from testtools import matchers from nova import exception -from nova.openstack.common.db.sqlalchemy import session as db_session +from nova.openstack.common.db import exception as db_exc from nova.tests.baremetal.db import base as bm_db_base from nova.tests.baremetal.db import utils as bm_db_utils from nova.tests.image import fake as fake_image @@ -529,7 +529,7 @@ class PXEPublicMethodsTestCase(BareMetalPXETestCase): AndRaise(exception.NovaException) bm_utils.unlink_without_raise(pxe_path) self.driver._collect_mac_addresses(self.context, self.node).\ - AndRaise(db_session.DBError) + AndRaise(db_exc.DBError) bm_utils.rmtree_without_raise( os.path.join(CONF.baremetal.tftp_root, 'fake-uuid')) self.mox.ReplayAll()