From db59c270cd4a3a3f32e73c2ab4bf8f8e1226dd66 Mon Sep 17 00:00:00 2001 From: Devin Carlen Date: Mon, 30 Aug 2010 10:51:54 -0700 Subject: Making tests pass --- nova/db/sqlalchemy/api.py | 11 ++++++++--- nova/db/sqlalchemy/models.py | 10 +++++----- nova/tests/network_unittest.py | 1 - 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index 0b6316221..3166d35cc 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -349,7 +349,8 @@ def network_create_fixed_ips(context, network_id, num_vpn_clients): def network_ensure_indexes(context, num_networks): with managed_session(autocommit=False) as session: - if models.NetworkIndex.count() == 0: + count = models.NetworkIndex.count(session=session) + if count == 0: for i in range(num_networks): network_index = models.NetworkIndex() network_index.index = i @@ -523,8 +524,12 @@ def volume_create(context, values): def volume_destroy(context, volume_id): - volume_ref = volume_get(context, volume_id) - volume_ref.delete() + with managed_session(autocommit=False) as session: + session.execute('update volumes set deleted=1 where id=:id', + {'id': volume_id}) + session.execute('update export_devices set deleted=1 where network_id=:id', + {'id': volume_id}) + session.commit() def volume_detached(context, volume_id): diff --git a/nova/db/sqlalchemy/models.py b/nova/db/sqlalchemy/models.py index 4fbe2cc5e..10f909d95 100644 --- a/nova/db/sqlalchemy/models.py +++ b/nova/db/sqlalchemy/models.py @@ -49,8 +49,8 @@ class NovaBase(object): .filter_by(deleted=False) \ .all() else: - with managed_session() as session: - return cls.all(session=session) + with managed_session() as s: + return cls.all(session=s) @classmethod def count(cls, session=None): @@ -73,8 +73,8 @@ class NovaBase(object): except exc.NoResultFound: raise exception.NotFound("No model for id %s" % obj_id) else: - with managed_session() as session: - return cls.find(obj_id, session=session) + with managed_session() as s: + return cls.find(obj_id, session=s) @classmethod def find_by_str(cls, str_id, session=None): @@ -206,6 +206,7 @@ class Instance(Base, NovaBase): mac_address = Column(String(255)) def set_state(self, state_code, state_description=None): + # TODO(devcamcar): Move this out of models and into api from nova.compute import power_state self.state = state_code if not state_description: @@ -345,7 +346,6 @@ class NetworkIndex(Base, NovaBase): def register_models(): from sqlalchemy import create_engine - models = (Image, PhysicalNode, Daemon, Instance, Volume, ExportDevice, FixedIp, FloatingIp, Network, NetworkIndex) engine = create_engine(FLAGS.sql_connection, echo=False) diff --git a/nova/tests/network_unittest.py b/nova/tests/network_unittest.py index e0de04be7..d487c2e45 100644 --- a/nova/tests/network_unittest.py +++ b/nova/tests/network_unittest.py @@ -105,7 +105,6 @@ class NetworkTestCase(test.TrialTestCase): db.fixed_ip_deallocate(None, fix_addr) def test_allocate_deallocate_fixed_ip(self): - import pdb; pdb.set_trace() """Makes sure that we can allocate and deallocate a fixed ip""" address = self._create_address(0) self.assertTrue(is_allocated_in_project(address, self.projects[0].id)) -- cgit