From cd0c765ced2823c05b16126d6ba6a823bb66fe7d Mon Sep 17 00:00:00 2001 From: Eric Windisch Date: Thu, 17 Jan 2013 15:38:02 -0500 Subject: Use oslo database code Bring in the new database code from oslo. Uses get_session() from oslo as well as changing NovaBase to derive from a common class. Remove test_sqlalchemy.py now that this code is test in oslo. Implements blueprint db-common. Change-Id: I090754981c871250dd981cbbe1a08e7181440120 --- nova/virt/baremetal/db/sqlalchemy/api.py | 2 +- nova/virt/baremetal/db/sqlalchemy/session.py | 6 ++++-- nova/virt/baremetal/driver.py | 3 ++- nova/virt/baremetal/pxe.py | 3 ++- 4 files changed, 9 insertions(+), 5 deletions(-) (limited to 'nova/virt') diff --git a/nova/virt/baremetal/db/sqlalchemy/api.py b/nova/virt/baremetal/db/sqlalchemy/api.py index 34bcd1229..198c06256 100644 --- a/nova/virt/baremetal/db/sqlalchemy/api.py +++ b/nova/virt/baremetal/db/sqlalchemy/api.py @@ -351,7 +351,7 @@ def bm_interface_set_vif_uuid(context, if_id, vif_uuid): try: session.add(bm_interface) session.flush() - except exception.DBError, e: + except db_session.DBError, e: # TODO(deva): clean up when db layer raises DuplicateKeyError if str(e).find('IntegrityError') != -1: raise exception.NovaException(_("Baremetal interface %s " diff --git a/nova/virt/baremetal/db/sqlalchemy/session.py b/nova/virt/baremetal/db/sqlalchemy/session.py index fcaf210a5..06d777354 100644 --- a/nova/virt/baremetal/db/sqlalchemy/session.py +++ b/nova/virt/baremetal/db/sqlalchemy/session.py @@ -19,8 +19,8 @@ """Session Handling for SQLAlchemy backend.""" -from nova.db.sqlalchemy import session as nova_session from nova.openstack.common import cfg +from nova.openstack.common.db.sqlalchemy import session as nova_session from nova import paths opts = [ @@ -38,11 +38,13 @@ CONF = cfg.CONF CONF.register_group(baremetal_group) CONF.register_opts(opts, baremetal_group) -CONF.import_opt('sqlite_db', 'nova.db.sqlalchemy.session') +CONF.import_opt('sqlite_db', 'nova.openstack.common.db.sqlalchemy.session') _ENGINE = None _MAKER = None +DBError = nova_session.DBError + def get_session(autocommit=True, expire_on_commit=False): """Return a SQLAlchemy session.""" diff --git a/nova/virt/baremetal/driver.py b/nova/virt/baremetal/driver.py index 631a9a8c4..43af951fd 100644 --- a/nova/virt/baremetal/driver.py +++ b/nova/virt/baremetal/driver.py @@ -25,6 +25,7 @@ from nova.compute import power_state from nova import context as nova_context from nova import exception from nova.openstack.common import cfg +from nova.openstack.common.db.sqlalchemy import session as db_session from nova.openstack.common import importutils from nova.openstack.common import log as logging from nova import paths @@ -266,7 +267,7 @@ class BareMetalDriver(driver.ComputeDriver): pm.state = baremetal_states.ERROR try: _update_state(context, node, instance, pm.state) - except exception.DBError, e: + except db_session.DBError, e: LOG.warning(_("Failed to update state record for " "baremetal node %s") % instance['uuid']) diff --git a/nova/virt/baremetal/pxe.py b/nova/virt/baremetal/pxe.py index 5a6f58655..a169e13e5 100644 --- a/nova/virt/baremetal/pxe.py +++ b/nova/virt/baremetal/pxe.py @@ -25,6 +25,7 @@ import os from nova.compute import instance_types from nova import exception from nova.openstack.common import cfg +from nova.openstack.common.db.sqlalchemy import session as db_session from nova.openstack.common import fileutils from nova.openstack.common import log as logging from nova.virt.baremetal import base @@ -411,7 +412,7 @@ class PXE(base.NodeDriver): bm_utils.unlink_without_raise(get_pxe_config_file_path(instance)) try: macs = self._collect_mac_addresses(context, node) - except exception.DBError: + except db_session.DBError: pass else: for mac in macs: -- cgit