Glance has been updated for integration with keystone. That means that nova needs to forward the user's credentials (the auth token) when it uses the glance API. This patch, combined with a forth-coming patch for nova_auth_token.py in keystone, establishes that for nova itself and for xenapi; other hypervisors will need to set up the appropriate hooks for their use of glance.
This commit is contained in:
@@ -346,7 +346,7 @@ class LibvirtConnTestCase(test.TestCase):
|
||||
self.mox.ReplayAll()
|
||||
|
||||
conn = connection.LibvirtConnection(False)
|
||||
conn.snapshot(instance_ref, recv_meta['id'])
|
||||
conn.snapshot(self.context, instance_ref, recv_meta['id'])
|
||||
|
||||
snapshot = image_service.show(context, recv_meta['id'])
|
||||
self.assertEquals(snapshot['properties']['image_state'], 'available')
|
||||
@@ -386,7 +386,7 @@ class LibvirtConnTestCase(test.TestCase):
|
||||
self.mox.ReplayAll()
|
||||
|
||||
conn = connection.LibvirtConnection(False)
|
||||
conn.snapshot(instance_ref, recv_meta['id'])
|
||||
conn.snapshot(self.context, instance_ref, recv_meta['id'])
|
||||
|
||||
snapshot = image_service.show(context, recv_meta['id'])
|
||||
self.assertEquals(snapshot['properties']['image_state'], 'available')
|
||||
@@ -736,7 +736,7 @@ class LibvirtConnTestCase(test.TestCase):
|
||||
network_info = _create_network_info()
|
||||
|
||||
try:
|
||||
conn.spawn(instance, network_info)
|
||||
conn.spawn(self.context, instance, network_info)
|
||||
except Exception, e:
|
||||
count = (0 <= str(e.message).find('Unexpected method call'))
|
||||
|
||||
|
||||
@@ -40,6 +40,7 @@ class VMWareAPIVMTestCase(test.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(VMWareAPIVMTestCase, self).setUp()
|
||||
self.context = context.RequestContext('fake', 'fake', False)
|
||||
self.flags(vmwareapi_host_ip='test_url',
|
||||
vmwareapi_host_username='test_username',
|
||||
vmwareapi_host_password='test_pass')
|
||||
@@ -94,7 +95,7 @@ class VMWareAPIVMTestCase(test.TestCase):
|
||||
"""Create and spawn the VM."""
|
||||
self._create_instance_in_the_db()
|
||||
self.type_data = db.instance_type_get_by_name(None, 'm1.large')
|
||||
self.conn.spawn(self.instance, self.network_info)
|
||||
self.conn.spawn(self.context, self.instance, self.network_info)
|
||||
self._check_vm_record()
|
||||
|
||||
def _check_vm_record(self):
|
||||
@@ -156,14 +157,14 @@ class VMWareAPIVMTestCase(test.TestCase):
|
||||
self._create_vm()
|
||||
info = self.conn.get_info(1)
|
||||
self._check_vm_info(info, power_state.RUNNING)
|
||||
self.conn.snapshot(self.instance, "Test-Snapshot")
|
||||
self.conn.snapshot(self.context, self.instance, "Test-Snapshot")
|
||||
info = self.conn.get_info(1)
|
||||
self._check_vm_info(info, power_state.RUNNING)
|
||||
|
||||
def test_snapshot_non_existent(self):
|
||||
self._create_instance_in_the_db()
|
||||
self.assertRaises(Exception, self.conn.snapshot, self.instance,
|
||||
"Test-Snapshot")
|
||||
self.assertRaises(Exception, self.conn.snapshot, self.context,
|
||||
self.instance, "Test-Snapshot")
|
||||
|
||||
def test_reboot(self):
|
||||
self._create_vm()
|
||||
|
||||
@@ -226,7 +226,7 @@ class XenAPIVMTestCase(test.TestCase):
|
||||
'mac': 'DE:AD:BE:EF:00:00',
|
||||
'rxtx_cap': 3})]
|
||||
instance = db.instance_create(self.context, values)
|
||||
self.conn.spawn(instance, network_info)
|
||||
self.conn.spawn(self.context, instance, network_info)
|
||||
|
||||
gt1 = eventlet.spawn(_do_build, 1, self.project_id, self.user_id)
|
||||
gt2 = eventlet.spawn(_do_build, 2, self.project_id, self.user_id)
|
||||
@@ -256,14 +256,15 @@ class XenAPIVMTestCase(test.TestCase):
|
||||
instance = self._create_instance()
|
||||
|
||||
name = "MySnapshot"
|
||||
self.assertRaises(exception.Error, self.conn.snapshot, instance, name)
|
||||
self.assertRaises(exception.Error, self.conn.snapshot,
|
||||
self.context, instance, name)
|
||||
|
||||
def test_instance_snapshot(self):
|
||||
stubs.stubout_instance_snapshot(self.stubs)
|
||||
instance = self._create_instance()
|
||||
|
||||
name = "MySnapshot"
|
||||
template_vm_ref = self.conn.snapshot(instance, name)
|
||||
template_vm_ref = self.conn.snapshot(self.context, instance, name)
|
||||
|
||||
def ensure_vm_was_torn_down():
|
||||
vm_labels = []
|
||||
@@ -425,7 +426,7 @@ class XenAPIVMTestCase(test.TestCase):
|
||||
'label': 'fake',
|
||||
'mac': 'DE:AD:BE:EF:00:00',
|
||||
'rxtx_cap': 3})]
|
||||
self.conn.spawn(instance, network_info)
|
||||
self.conn.spawn(self.context, instance, network_info)
|
||||
self.create_vm_record(self.conn, os_type, instance_id)
|
||||
self.check_vm_record(self.conn, check_injection)
|
||||
self.assertTrue(instance.os_type)
|
||||
@@ -629,7 +630,7 @@ class XenAPIVMTestCase(test.TestCase):
|
||||
self.flags(flat_injected=False)
|
||||
instance = self._create_instance()
|
||||
conn = xenapi_conn.get_connection(False)
|
||||
conn.rescue(instance, None, [])
|
||||
conn.rescue(self.context, instance, None, [])
|
||||
|
||||
def test_unrescue(self):
|
||||
instance = self._create_instance()
|
||||
@@ -666,7 +667,7 @@ class XenAPIVMTestCase(test.TestCase):
|
||||
'mac': 'DE:AD:BE:EF:00:00',
|
||||
'rxtx_cap': 3})]
|
||||
if spawn:
|
||||
self.conn.spawn(instance, network_info)
|
||||
self.conn.spawn(self.context, instance, network_info)
|
||||
return instance
|
||||
|
||||
|
||||
@@ -776,8 +777,9 @@ class XenAPIMigrateInstance(test.TestCase):
|
||||
'label': 'fake',
|
||||
'mac': 'DE:AD:BE:EF:00:00',
|
||||
'rxtx_cap': 3})]
|
||||
conn.finish_migration(instance, dict(base_copy='hurr', cow='durr'),
|
||||
network_info, resize_instance=True)
|
||||
conn.finish_migration(self.context, instance,
|
||||
dict(base_copy='hurr', cow='durr'),
|
||||
network_info, resize_instance=True)
|
||||
self.assertEqual(self.called, True)
|
||||
|
||||
def test_finish_migrate_no_local_storage(self):
|
||||
@@ -808,8 +810,9 @@ class XenAPIMigrateInstance(test.TestCase):
|
||||
'label': 'fake',
|
||||
'mac': 'DE:AD:BE:EF:00:00',
|
||||
'rxtx_cap': 3})]
|
||||
conn.finish_migration(instance, dict(base_copy='hurr', cow='durr'),
|
||||
network_info, resize_instance=True)
|
||||
conn.finish_migration(self.context, instance,
|
||||
dict(base_copy='hurr', cow='durr'),
|
||||
network_info, resize_instance=True)
|
||||
|
||||
def test_finish_migrate_no_resize_vdi(self):
|
||||
instance = db.instance_create(self.context, self.values)
|
||||
@@ -838,8 +841,9 @@ class XenAPIMigrateInstance(test.TestCase):
|
||||
'rxtx_cap': 3})]
|
||||
|
||||
# Resize instance would be determined by the compute call
|
||||
conn.finish_migration(instance, dict(base_copy='hurr', cow='durr'),
|
||||
network_info, resize_instance=False)
|
||||
conn.finish_migration(self.context, instance,
|
||||
dict(base_copy='hurr', cow='durr'),
|
||||
network_info, resize_instance=False)
|
||||
|
||||
|
||||
class XenAPIImageTypeTestCase(test.TestCase):
|
||||
|
||||
@@ -28,8 +28,8 @@ from nova import utils
|
||||
|
||||
def stubout_instance_snapshot(stubs):
|
||||
@classmethod
|
||||
def fake_fetch_image(cls, session, instance_id, image, user, project,
|
||||
type):
|
||||
def fake_fetch_image(cls, context, session, instance_id, image, user,
|
||||
project, type):
|
||||
from nova.virt.xenapi.fake import create_vdi
|
||||
name_label = "instance-%s" % instance_id
|
||||
#TODO: create fake SR record
|
||||
@@ -227,7 +227,7 @@ def stub_out_vm_methods(stubs):
|
||||
def fake_release_bootlock(self, vm):
|
||||
pass
|
||||
|
||||
def fake_spawn_rescue(self, inst):
|
||||
def fake_spawn_rescue(self, context, inst, network_info):
|
||||
inst._rescue = False
|
||||
|
||||
stubs.Set(vmops.VMOps, "_shutdown", fake_shutdown)
|
||||
|
||||
Reference in New Issue
Block a user