summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-10-09 16:12:17 +0000
committerGerrit Code Review <review@openstack.org>2012-10-09 16:12:17 +0000
commit36b85251ab15d97441422c0b85dc0eb025d2f0cf (patch)
tree16e48aae50d8c4c596d14068701be53b8b1cdd3d /nova/tests
parentfb101685cc14ed9b0396ce966e571d3fb457c32f (diff)
parent5fd7a9dba127bae812333196a5fa48a933212aeb (diff)
Merge "Set instance host field after resource claim"
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/compute/test_resource_tracker.py36
-rw-r--r--nova/tests/scheduler/test_chance_scheduler.py8
-rw-r--r--nova/tests/scheduler/test_scheduler.py2
3 files changed, 26 insertions, 20 deletions
diff --git a/nova/tests/compute/test_resource_tracker.py b/nova/tests/compute/test_resource_tracker.py
index 04b2dfdba..61d728ba4 100644
--- a/nova/tests/compute/test_resource_tracker.py
+++ b/nova/tests/compute/test_resource_tracker.py
@@ -22,6 +22,7 @@ import uuid
from nova.compute import resource_tracker
from nova.compute import task_states
from nova.compute import vm_states
+from nova import context
from nova import db
from nova import exception
from nova.openstack.common import log as logging
@@ -32,14 +33,6 @@ from nova.virt import driver
LOG = logging.getLogger(__name__)
-class FakeContext(object):
- def __init__(self, is_admin=False):
- self.is_admin = is_admin
-
- def elevated(self):
- return FakeContext(is_admin=True)
-
-
class UnsupportedVirtDriver(driver.ComputeDriver):
"""Pretend version of a lame virt driver"""
def get_available_resource(self):
@@ -81,11 +74,13 @@ class BaseTestCase(test.TestCase):
self.flags(reserved_host_disk_mb=0,
reserved_host_memory_mb=0)
- self.context = FakeContext()
+ self.context = context.RequestContext('fake', 'fake')
- self._instances = []
+ self._instances = {}
self.stubs.Set(db, 'instance_get_all_by_host',
- lambda c, h: self._instances)
+ lambda c, h: self._instances.values())
+ self.stubs.Set(db, 'instance_update_and_get_original',
+ self._fake_instance_update_and_get_original)
def _create_compute_node(self, values=None):
compute = {
@@ -122,8 +117,10 @@ class BaseTestCase(test.TestCase):
return service
def _fake_instance(self, *args, **kwargs):
+
+ instance_uuid = str(uuid.uuid1())
instance = {
- 'uuid': str(uuid.uuid1()),
+ 'uuid': instance_uuid,
'vm_state': vm_states.BUILDING,
'task_state': None,
'memory_mb': 2,
@@ -136,9 +133,17 @@ class BaseTestCase(test.TestCase):
}
instance.update(kwargs)
- self._instances.append(instance)
+ self._instances[instance_uuid] = instance
return instance
+ def _fake_instance_update_and_get_original(self, context, instance_uuid,
+ values):
+ instance = self._instances[instance_uuid]
+ instance.update(values)
+ # the test doesn't care what the original instance values are, it's
+ # only used in the subsequent notification:
+ return (instance, instance)
+
def _tracker(self, unsupported=False):
host = "fakehost"
@@ -168,7 +173,8 @@ class UnsupportedDriverTestCase(BaseTestCase):
def testDisabledClaim(self):
# basic claim:
- claim = self.tracker.begin_resource_claim(self.context, 1, 1)
+ instance = self._fake_instance()
+ claim = self.tracker.begin_resource_claim(self.context, instance)
self.assertEqual(None, claim)
def testDisabledInstanceClaim(self):
@@ -200,7 +206,7 @@ class UnsupportedDriverTestCase(BaseTestCase):
class MissingServiceTestCase(BaseTestCase):
def setUp(self):
super(MissingServiceTestCase, self).setUp()
- self.context = FakeContext(is_admin=True)
+ self.context = context.get_admin_context()
self.tracker = self._tracker()
def testMissingService(self):
diff --git a/nova/tests/scheduler/test_chance_scheduler.py b/nova/tests/scheduler/test_chance_scheduler.py
index 4fb9ab617..26cde055b 100644
--- a/nova/tests/scheduler/test_chance_scheduler.py
+++ b/nova/tests/scheduler/test_chance_scheduler.py
@@ -90,8 +90,8 @@ class ChanceSchedulerTestCase(test_scheduler.SchedulerTestCase):
self.driver.hosts_up(ctxt_elevated, 'compute').AndReturn(
['host1', 'host2', 'host3', 'host4'])
random.random().AndReturn(.5)
- driver.instance_update_db(ctxt, instance1['uuid'],
- 'host3').WithSideEffects(inc_launch_index).AndReturn(instance1)
+ driver.instance_update_db(ctxt, instance1['uuid']).WithSideEffects(
+ inc_launch_index).AndReturn(instance1)
compute_rpcapi.ComputeAPI.run_instance(ctxt, host='host3',
instance=instance1, requested_networks=None,
injected_files=None, admin_password=None, is_first_time=None,
@@ -102,8 +102,8 @@ class ChanceSchedulerTestCase(test_scheduler.SchedulerTestCase):
self.driver.hosts_up(ctxt_elevated, 'compute').AndReturn(
['host1', 'host2', 'host3', 'host4'])
random.random().AndReturn(.2)
- driver.instance_update_db(ctxt, instance2['uuid'],
- 'host1').WithSideEffects(inc_launch_index).AndReturn(instance2)
+ driver.instance_update_db(ctxt, instance2['uuid']).WithSideEffects(
+ inc_launch_index).AndReturn(instance2)
compute_rpcapi.ComputeAPI.run_instance(ctxt, host='host1',
instance=instance2, requested_networks=None,
injected_files=None, admin_password=None, is_first_time=None,
diff --git a/nova/tests/scheduler/test_scheduler.py b/nova/tests/scheduler/test_scheduler.py
index 83e9cffc8..af297b589 100644
--- a/nova/tests/scheduler/test_scheduler.py
+++ b/nova/tests/scheduler/test_scheduler.py
@@ -712,7 +712,7 @@ class SchedulerDriverModuleTestCase(test.TestCase):
timeutils.utcnow().AndReturn('fake-now')
db.instance_update(self.context, 'fake_uuid',
- {'host': host, 'scheduled_at': 'fake-now'})
+ {'host': None, 'scheduled_at': 'fake-now'})
rpc.queue_get_for(self.context, 'compute', host).AndReturn(queue)
rpc.cast(self.context, queue,
{'method': method,