summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Smith <danms@us.ibm.com>2013-05-28 18:45:33 -0700
committerDan Smith <danms@us.ibm.com>2013-06-07 11:43:37 -0700
commiteefc3c1892c523100470414d00a981ea9fbdf3ca (patch)
tree59c26e57b40f23e44a5a51bae2a7a50aeccffe48
parente95807e8cda4463d7c9a2aab918bd2bda3d3cf9e (diff)
downloadnova-eefc3c1892c523100470414d00a981ea9fbdf3ca.tar.gz
nova-eefc3c1892c523100470414d00a981ea9fbdf3ca.tar.xz
nova-eefc3c1892c523100470414d00a981ea9fbdf3ca.zip
Use InstanceList object for init_host
Related to blueprint unified-object-model Change-Id: Idcc4da2a6807a58966e267c62a7f134ce58c890a
-rwxr-xr-xnova/compute/manager.py6
-rw-r--r--nova/test.py5
-rw-r--r--nova/tests/compute/test_compute.py36
3 files changed, 30 insertions, 17 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index 8c593bda5..6d4835e0b 100755
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -548,7 +548,7 @@ class ComputeManager(manager.SchedulerDependentManager):
# NOTE(mriedem): check old_vm_state for STOPPED here, if it's
# not in system_metadata we default to True for backwards
# compatibility
- sys_meta = utils.metadata_to_dict(instance['system_metadata'])
+ sys_meta = utils.instance_sys_meta(instance)
power_on = sys_meta.get('old_vm_state') != vm_states.STOPPED
block_dev_info = self._get_instance_volume_block_device_info(
@@ -648,8 +648,8 @@ class ComputeManager(manager.SchedulerDependentManager):
"""Initialization for a standalone compute service."""
self.driver.init_host(host=self.host)
context = nova.context.get_admin_context()
- instances = self.conductor_api.instance_get_all_by_host(context,
- self.host)
+ instances = instance_obj.InstanceList.get_by_host(
+ context, self.host, expected_attrs=['info_cache'])
if CONF.defer_iptables_apply:
self.driver.filter_defer_apply_on()
diff --git a/nova/test.py b/nova/test.py
index f0dba7c7c..886478362 100644
--- a/nova/test.py
+++ b/nova/test.py
@@ -41,6 +41,7 @@ from nova import context
from nova import db
from nova.db import migration
from nova.network import manager as network_manager
+from nova.objects import base as objects_base
from nova.openstack.common.db.sqlalchemy import session
from nova.openstack.common import log as logging
from nova.openstack.common import timeutils
@@ -225,6 +226,10 @@ class TestCase(testtools.TestCase):
sqlite_clean_db=CONF.sqlite_clean_db)
self.useFixture(_DB_CACHE)
+ # NOTE(danms): Make sure to reset us back to non-remote objects
+ # for each test to avoid interactions.
+ objects_base.NovaObject.indirection_api = None
+
mox_fixture = self.useFixture(MoxStubout())
self.mox = mox_fixture.mox
self.stubs = mox_fixture.stubs
diff --git a/nova/tests/compute/test_compute.py b/nova/tests/compute/test_compute.py
index 211838ea1..28b61eb22 100644
--- a/nova/tests/compute/test_compute.py
+++ b/nova/tests/compute/test_compute.py
@@ -62,6 +62,7 @@ from nova.openstack.common import uuidutils
from nova import policy
from nova import quota
from nova import test
+from nova.tests.api.openstack import fakes
from nova.tests.compute import fake_resource_tracker
from nova.tests.db import fakes as db_fakes
from nova.tests import fake_instance
@@ -4716,19 +4717,27 @@ class ComputeTestCase(BaseTestCase):
def test_init_host(self):
our_host = self.compute.host
fake_context = 'fake-context'
- startup_instances = ['inst1', 'inst2', 'inst3']
+ inst = dict(fakes.stub_instance(1),
+ deleted_at=None, created_at=None, updated_at=None,
+ deleted=0, info_cache={'instance_uuid': 'fake-uuid',
+ 'network_info': None})
+ startup_instances = [inst, inst, inst]
def _do_mock_calls(defer_iptables_apply):
self.compute.driver.init_host(host=our_host)
context.get_admin_context().AndReturn(fake_context)
- self.compute.conductor_api.instance_get_all_by_host(
- fake_context, our_host).AndReturn(startup_instances)
+ db.instance_get_all_by_host(
+ fake_context, our_host, columns_to_join=['info_cache']
+ ).AndReturn(startup_instances)
if defer_iptables_apply:
self.compute.driver.filter_defer_apply_on()
self.compute._destroy_evacuated_instances(fake_context)
- self.compute._init_instance(fake_context, startup_instances[0])
- self.compute._init_instance(fake_context, startup_instances[1])
- self.compute._init_instance(fake_context, startup_instances[2])
+ self.compute._init_instance(fake_context,
+ mox.IsA(instance_obj.Instance))
+ self.compute._init_instance(fake_context,
+ mox.IsA(instance_obj.Instance))
+ self.compute._init_instance(fake_context,
+ mox.IsA(instance_obj.Instance))
if defer_iptables_apply:
self.compute.driver.filter_defer_apply_off()
self.compute._report_driver_status(fake_context)
@@ -4739,8 +4748,7 @@ class ComputeTestCase(BaseTestCase):
'filter_defer_apply_on')
self.mox.StubOutWithMock(self.compute.driver,
'filter_defer_apply_off')
- self.mox.StubOutWithMock(self.compute.conductor_api,
- 'instance_get_all_by_host')
+ self.mox.StubOutWithMock(db, 'instance_get_all_by_host')
self.mox.StubOutWithMock(context, 'get_admin_context')
self.mox.StubOutWithMock(self.compute,
'_destroy_evacuated_instances')
@@ -4784,8 +4792,7 @@ class ComputeTestCase(BaseTestCase):
self.mox.StubOutWithMock(self.compute.driver, 'init_host')
self.mox.StubOutWithMock(self.compute.driver, 'destroy')
- self.mox.StubOutWithMock(self.compute.conductor_api,
- 'instance_get_all_by_host')
+ self.mox.StubOutWithMock(db, 'instance_get_all_by_host')
self.mox.StubOutWithMock(context, 'get_admin_context')
self.mox.StubOutWithMock(self.compute, 'init_virt_events')
self.mox.StubOutWithMock(self.compute, '_get_instances_on_driver')
@@ -4796,8 +4803,9 @@ class ComputeTestCase(BaseTestCase):
self.compute.driver.init_host(host=our_host)
context.get_admin_context().AndReturn(fake_context)
- self.compute.conductor_api.instance_get_all_by_host(
- fake_context, our_host).AndReturn([])
+ db.instance_get_all_by_host(fake_context, our_host,
+ columns_to_join=['info_cache']
+ ).AndReturn([])
self.compute.init_virt_events()
# simulate failed instance
@@ -4867,7 +4875,7 @@ class ComputeTestCase(BaseTestCase):
}
fixed = dict(instance, task_state=None)
self.mox.StubOutWithMock(compute_utils, 'get_nw_info_for_instance')
- self.mox.StubOutWithMock(utils, 'metadata_to_dict')
+ self.mox.StubOutWithMock(utils, 'instance_sys_meta')
self.mox.StubOutWithMock(self.compute.driver, 'plug_vifs')
self.mox.StubOutWithMock(self.compute.driver,
'finish_revert_migration')
@@ -4879,7 +4887,7 @@ class ComputeTestCase(BaseTestCase):
compute_utils.get_nw_info_for_instance(instance).AndReturn(
network_model.NetworkInfo())
self.compute.driver.plug_vifs(instance, [])
- utils.metadata_to_dict(instance['system_metadata']).AndReturn(sys_meta)
+ utils.instance_sys_meta(instance).AndReturn(sys_meta)
self.compute._get_instance_volume_block_device_info(
self.context, instance).AndReturn([])
self.compute.driver.finish_revert_migration(instance, [], [], power_on)