summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
authorJohn Griffith <john.griffith@solidfire.com>2012-05-04 11:31:56 -0600
committerJohn Griffith <john.griffith@solidfire.com>2012-05-10 13:36:32 -0600
commitdcad314fb9713104f0029311c43907e362ec6d49 (patch)
tree4e6fffab1e7f064e94cee264192d05269ad1c0d4 /nova/tests
parentd9ed81222048f589b6863aaf2a99983ba5a3094f (diff)
Remove instance Foreign Key in volumes table, replace with instance_uuid
* Remove the instance relationship and instance_id FK * Add instance_uuuid column to volumes table * Passed unit tests and devstack tests Change-Id: Id598f1f1d7915d1af6bf3dd75e5819dce08aaa0f
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/api/ec2/test_cloud.py42
-rw-r--r--nova/tests/api/openstack/fakes.py6
-rw-r--r--nova/tests/api/openstack/volume/test_volumes.py5
-rw-r--r--nova/tests/scheduler/test_scheduler.py1
-rw-r--r--nova/tests/test_libvirt.py4
-rw-r--r--nova/tests/test_volume.py25
6 files changed, 48 insertions, 35 deletions
diff --git a/nova/tests/api/ec2/test_cloud.py b/nova/tests/api/ec2/test_cloud.py
index 6d312369b..ec8bdf276 100644
--- a/nova/tests/api/ec2/test_cloud.py
+++ b/nova/tests/api/ec2/test_cloud.py
@@ -917,7 +917,7 @@ class CloudTestCase(test.TestCase):
result = self.cloud.describe_instances(self.context)
self.assertEqual(len(result['reservationSet']), 2)
- def _block_device_mapping_create(self, instance_id, mappings):
+ def _block_device_mapping_create(self, instance_uuid, mappings):
volumes = []
for bdm in mappings:
db.block_device_mapping_create(self.context, bdm)
@@ -931,7 +931,7 @@ class CloudTestCase(test.TestCase):
values[vol_key] = bdm[bdm_key]
vol = db.volume_create(self.context, values)
db.volume_attached(self.context, vol['id'],
- instance_id, bdm['device_name'])
+ instance_uuid, bdm['device_name'])
volumes.append(vol)
return volumes
@@ -987,7 +987,7 @@ class CloudTestCase(test.TestCase):
'device_name': '/dev/sdb9',
'virtual_name': 'ephemeral3'}]
- volumes = self._block_device_mapping_create(instance_id, mappings0)
+ volumes = self._block_device_mapping_create(instance_uuid, mappings0)
return (inst1, inst2, volumes)
def _tearDownBlockDeviceMapping(self, inst1, inst2, volumes):
@@ -1910,14 +1910,14 @@ class CloudTestCase(test.TestCase):
kwargs['id'] = volume_id
return db.volume_create(self.context, kwargs)
- def _assert_volume_attached(self, vol, instance_id, mountpoint):
- self.assertEqual(vol['instance_id'], instance_id)
+ def _assert_volume_attached(self, vol, instance_uuid, mountpoint):
+ self.assertEqual(vol['instance_uuid'], instance_uuid)
self.assertEqual(vol['mountpoint'], mountpoint)
self.assertEqual(vol['status'], "in-use")
self.assertEqual(vol['attach_status'], "attached")
def _assert_volume_detached(self, vol):
- self.assertEqual(vol['instance_id'], None)
+ self.assertEqual(vol['instance_uuid'], None)
self.assertEqual(vol['mountpoint'], None)
self.assertEqual(vol['status'], "available")
self.assertEqual(vol['attach_status'], "detached")
@@ -1941,18 +1941,20 @@ class CloudTestCase(test.TestCase):
'delete_on_termination': True},
]}
ec2_instance_id = self._run_instance(**kwargs)
+ instance_uuid = ec2utils.ec2_instance_id_to_uuid(self.context,
+ ec2_instance_id)
instance_id = ec2utils.ec2_id_to_id(ec2_instance_id)
- vols = db.volume_get_all_by_instance(self.context, instance_id)
+ vols = db.volume_get_all_by_instance_uuid(self.context, instance_uuid)
self.assertEqual(len(vols), 2)
for vol in vols:
self.assertTrue(vol['id'] == vol1['id'] or vol['id'] == vol2['id'])
vol = db.volume_get(self.context, vol1['id'])
- self._assert_volume_attached(vol, instance_id, '/dev/vdb')
+ self._assert_volume_attached(vol, instance_uuid, '/dev/vdb')
vol = db.volume_get(self.context, vol2['id'])
- self._assert_volume_attached(vol, instance_id, '/dev/vdc')
+ self._assert_volume_attached(vol, instance_uuid, '/dev/vdc')
result = self.cloud.stop_instances(self.context, [ec2_instance_id])
self.assertTrue(result)
@@ -1963,13 +1965,13 @@ class CloudTestCase(test.TestCase):
self._assert_volume_detached(vol)
self.cloud.start_instances(self.context, [ec2_instance_id])
- vols = db.volume_get_all_by_instance(self.context, instance_id)
+ vols = db.volume_get_all_by_instance_uuid(self.context, instance_uuid)
self.assertEqual(len(vols), 2)
for vol in vols:
self.assertTrue(vol['id'] == vol1['id'] or vol['id'] == vol2['id'])
self.assertTrue(vol['mountpoint'] == '/dev/vdb' or
vol['mountpoint'] == '/dev/vdc')
- self.assertEqual(vol['instance_id'], instance_id)
+ self.assertEqual(vol['instance_uuid'], instance_uuid)
self.assertEqual(vol['status'], "in-use")
self.assertEqual(vol['attach_status'], "attached")
@@ -2001,12 +2003,14 @@ class CloudTestCase(test.TestCase):
'delete_on_termination': True}]}
ec2_instance_id = self._run_instance(**kwargs)
instance_id = ec2utils.ec2_id_to_id(ec2_instance_id)
+ instance_uuid = ec2utils.ec2_instance_id_to_uuid(self.context,
+ ec2_instance_id)
- vols = db.volume_get_all_by_instance(self.context, instance_id)
+ vols = db.volume_get_all_by_instance_uuid(self.context, instance_uuid)
self.assertEqual(len(vols), 1)
for vol in vols:
self.assertEqual(vol['id'], vol1['id'])
- self._assert_volume_attached(vol, instance_id, '/dev/vdb')
+ self._assert_volume_attached(vol, instance_uuid, '/dev/vdb')
vol = db.volume_get(self.context, vol2['id'])
self._assert_volume_detached(vol)
@@ -2017,7 +2021,7 @@ class CloudTestCase(test.TestCase):
volume_id=vol2['id'],
device='/dev/vdc')
vol = db.volume_get(self.context, vol2['id'])
- self._assert_volume_attached(vol, instance_id, '/dev/vdc')
+ self._assert_volume_attached(vol, instance_uuid, '/dev/vdc')
self.cloud.compute_api.detach_volume(self.context,
volume_id=vol1['id'])
@@ -2032,11 +2036,11 @@ class CloudTestCase(test.TestCase):
self._assert_volume_detached(vol)
self.cloud.start_instances(self.context, [ec2_instance_id])
- vols = db.volume_get_all_by_instance(self.context, instance_id)
+ vols = db.volume_get_all_by_instance_uuid(self.context, instance_uuid)
self.assertEqual(len(vols), 1)
for vol in vols:
self.assertEqual(vol['id'], vol2['id'])
- self._assert_volume_attached(vol, instance_id, '/dev/vdc')
+ self._assert_volume_attached(vol, instance_uuid, '/dev/vdc')
vol = db.volume_get(self.context, vol1['id'])
self._assert_volume_detached(vol)
@@ -2077,8 +2081,10 @@ class CloudTestCase(test.TestCase):
'delete_on_termination': True}]}
ec2_instance_id = self._run_instance(**kwargs)
instance_id = ec2utils.ec2_id_to_id(ec2_instance_id)
+ instance_uuid = ec2utils.ec2_instance_id_to_uuid(self.context,
+ ec2_instance_id)
- vols = db.volume_get_all_by_instance(self.context, instance_id)
+ vols = db.volume_get_all_by_instance_uuid(self.context, instance_uuid)
self.assertEqual(len(vols), 2)
vol1_id = None
vol2_id = None
@@ -2093,7 +2099,7 @@ class CloudTestCase(test.TestCase):
else:
self.fail()
- self._assert_volume_attached(vol, instance_id, mountpoint)
+ self._assert_volume_attached(vol, instance_uuid, mountpoint)
self.assertTrue(vol1_id)
self.assertTrue(vol2_id)
diff --git a/nova/tests/api/openstack/fakes.py b/nova/tests/api/openstack/fakes.py
index 90ee86676..f06878362 100644
--- a/nova/tests/api/openstack/fakes.py
+++ b/nova/tests/api/openstack/fakes.py
@@ -592,7 +592,7 @@ def stub_volume(id, **kwargs):
'host': 'fakehost',
'size': 1,
'availability_zone': 'fakeaz',
- 'instance': {'uuid': 'fakeuuid'},
+ 'instance_uuid': 'fakeuuid',
'mountpoint': '/',
'status': 'fakestatus',
'attach_status': 'attached',
@@ -611,7 +611,7 @@ def stub_volume(id, **kwargs):
def stub_volume_create(self, context, size, name, description, snapshot,
**param):
- vol = stub_volume(1)
+ vol = stub_volume('1')
vol['size'] = size
vol['display_name'] = name
vol['display_description'] = description
@@ -640,4 +640,4 @@ def stub_volume_get_notfound(self, context, volume_id):
def stub_volume_get_all(self, context, search_opts=None):
- return [stub_volume_get(self, context, 1)]
+ return [stub_volume_get(self, context, '1')]
diff --git a/nova/tests/api/openstack/volume/test_volumes.py b/nova/tests/api/openstack/volume/test_volumes.py
index 7befe9606..2b96d15a3 100644
--- a/nova/tests/api/openstack/volume/test_volumes.py
+++ b/nova/tests/api/openstack/volume/test_volumes.py
@@ -90,6 +90,7 @@ class VolumeApiTest(test.TestCase):
'created_at': datetime.datetime(1, 1, 1,
1, 1, 1),
'size': 1}]}
+ self.maxDiff = None
self.assertEqual(res_dict, expected)
def test_volume_list_detail(self):
@@ -114,7 +115,7 @@ class VolumeApiTest(test.TestCase):
def test_volume_show(self):
req = fakes.HTTPRequest.blank('/v1/volumes/1')
- res_dict = self.controller.show(req, 1)
+ res_dict = self.controller.show(req, '1')
expected = {'volume': {'status': 'fakestatus',
'display_description': 'displaydesc',
'availability_zone': 'fakeaz',
@@ -139,7 +140,7 @@ class VolumeApiTest(test.TestCase):
self.stubs.Set(volume_api.API, 'get', stub_volume_get)
req = fakes.HTTPRequest.blank('/v1/volumes/1')
- res_dict = self.controller.show(req, 1)
+ res_dict = self.controller.show(req, '1')
expected = {'volume': {'status': 'fakestatus',
'display_description': 'displaydesc',
'availability_zone': 'fakeaz',
diff --git a/nova/tests/scheduler/test_scheduler.py b/nova/tests/scheduler/test_scheduler.py
index 0b3c0e06a..a662d6930 100644
--- a/nova/tests/scheduler/test_scheduler.py
+++ b/nova/tests/scheduler/test_scheduler.py
@@ -477,7 +477,6 @@ class SchedulerTestCase(test.TestCase):
instance = self._live_migration_instance()
db.instance_get(self.context, instance['id']).AndReturn(instance)
- # Source checks (volume and source compute are up)
db.service_get_all_compute_by_host(self.context,
instance['host']).AndReturn(['fake_service2'])
utils.service_is_up('fake_service2').AndReturn(True)
diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py
index 2391ea1ea..9e53df279 100644
--- a/nova/tests/test_libvirt.py
+++ b/nova/tests/test_libvirt.py
@@ -1215,7 +1215,9 @@ class LibvirtConnTestCase(test.TestCase):
instance_dict)
vol_dict = {'status': 'migrating', 'size': 1}
volume_ref = db.volume_create(self.context, vol_dict)
- db.volume_attached(self.context, volume_ref['id'], instance_ref['id'],
+ db.volume_attached(self.context,
+ volume_ref['id'],
+ instance_ref['uuid'],
'/dev/fake')
# Preparing mocks
diff --git a/nova/tests/test_volume.py b/nova/tests/test_volume.py
index 27969ee5b..d979c3d0e 100644
--- a/nova/tests/test_volume.py
+++ b/nova/tests/test_volume.py
@@ -48,7 +48,9 @@ class VolumeTestCase(test.TestCase):
self.flags(connection_type='fake')
self.volume = importutils.import_object(FLAGS.volume_manager)
self.context = context.get_admin_context()
- self.instance_id = db.instance_create(self.context, {})['id']
+ instance = db.instance_create(self.context, {})
+ self.instance_id = instance['id']
+ self.instance_uuid = instance['uuid']
def tearDown(self):
db.instance_destroy(self.context, self.instance_id)
@@ -175,25 +177,26 @@ class VolumeTestCase(test.TestCase):
inst['project_id'] = 'fake'
inst['instance_type_id'] = '2' # m1.tiny
inst['ami_launch_index'] = 0
- instance_id = db.instance_create(self.context, inst)['id']
+ instance = db.instance_create(self.context, {})
+ instance_id = instance['id']
+ instance_uuid = instance['uuid']
mountpoint = "/dev/sdf"
volume = self._create_volume()
volume_id = volume['id']
self.volume.create_volume(self.context, volume_id)
if FLAGS.fake_tests:
- db.volume_attached(self.context, volume_id, instance_id,
+ db.volume_attached(self.context, volume_id, instance_uuid,
mountpoint)
else:
self.compute.attach_volume(self.context,
- instance_id,
+ instance_uuid,
volume_id,
mountpoint)
vol = db.volume_get(context.get_admin_context(), volume_id)
self.assertEqual(vol['status'], "in-use")
self.assertEqual(vol['attach_status'], "attached")
self.assertEqual(vol['mountpoint'], mountpoint)
- instance_ref = db.volume_get_instance(self.context, volume_id)
- self.assertEqual(instance_ref['id'], instance_id)
+ self.assertEqual(vol['instance_uuid'], instance_uuid)
self.assertRaises(exception.NovaException,
self.volume.delete_volume,
@@ -203,7 +206,7 @@ class VolumeTestCase(test.TestCase):
db.volume_detached(self.context, volume_id)
else:
self.compute.detach_volume(self.context,
- instance_id,
+ instance_uuid,
volume_id)
vol = db.volume_get(self.context, volume_id)
self.assertEqual(vol['status'], "available")
@@ -323,7 +326,7 @@ class VolumeTestCase(test.TestCase):
volume = self._create_volume()
self.volume.create_volume(self.context, volume['id'])
- db.volume_attached(self.context, volume['id'], self.instance_id,
+ db.volume_attached(self.context, volume['id'], self.instance_uuid,
'/dev/sda1')
volume_api = nova.volume.api.API()
@@ -383,7 +386,9 @@ class DriverTestCase(test.TestCase):
log.logger.addHandler(logging.logging.StreamHandler(self.stream))
inst = {}
- self.instance_id = db.instance_create(self.context, inst)['id']
+ instance = db.instance_create(self.context, {})
+ self.instance_id = instance['id']
+ self.instance_uuid = instance['uuid']
def _attach_volume(self):
"""Attach volumes to an instance. This function also sets
@@ -436,7 +441,7 @@ class ISCSITestCase(DriverTestCase):
# each volume has a different mountpoint
mountpoint = "/dev/sd" + chr((ord('b') + index))
- db.volume_attached(self.context, vol_ref['id'], self.instance_id,
+ db.volume_attached(self.context, vol_ref['id'], self.instance_uuid,
mountpoint)
volume_id_list.append(vol_ref['id'])