summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-09-18 00:35:51 +0000
committerGerrit Code Review <review@openstack.org>2012-09-18 00:35:51 +0000
commit2628697679ae9ccdba96ad4d0d2af4104f48de7f (patch)
tree85be2f46f05d68d961de9a80b40569c1e39fcd8a
parentbaf5e03f1c41c06b52b6b6bb5497f1f34a0a521a (diff)
parent9733b4eb9f3aeadd29f8dd8b00a37ce3d454edb8 (diff)
downloadnova-2628697679ae9ccdba96ad4d0d2af4104f48de7f.tar.gz
nova-2628697679ae9ccdba96ad4d0d2af4104f48de7f.tar.xz
nova-2628697679ae9ccdba96ad4d0d2af4104f48de7f.zip
Merge "Include volume_metadata with object on vol create"
-rw-r--r--nova/db/sqlalchemy/api.py2
-rw-r--r--nova/tests/test_volume.py20
2 files changed, 20 insertions, 2 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index ea8d7cbec..533298bee 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -2931,7 +2931,7 @@ def volume_create(context, values):
with session.begin():
volume_ref.save(session=session)
- return volume_ref
+ return volume_get(context, values['id'], session=session)
@require_admin_context
diff --git a/nova/tests/test_volume.py b/nova/tests/test_volume.py
index 5bd510406..3de5404f6 100644
--- a/nova/tests/test_volume.py
+++ b/nova/tests/test_volume.py
@@ -74,7 +74,7 @@ class VolumeTestCase(test.TestCase):
return 1
@staticmethod
- def _create_volume(size=0, snapshot_id=None):
+ def _create_volume(size=0, snapshot_id=None, metadata=None):
"""Create a volume object."""
vol = {}
vol['size'] = size
@@ -84,6 +84,8 @@ class VolumeTestCase(test.TestCase):
vol['availability_zone'] = FLAGS.storage_availability_zone
vol['status'] = "creating"
vol['attach_status'] = "detached"
+ if metadata is not None:
+ vol['metadata'] = metadata
return db.volume_create(context.get_admin_context(), vol)
def test_ec2_uuid_mapping(self):
@@ -132,6 +134,22 @@ class VolumeTestCase(test.TestCase):
self.context,
volume_id)
+ def test_create_delete_volume_with_metadata(self):
+ """Test volume can be created and deleted."""
+ test_meta = {'fake_key': 'fake_value'}
+ volume = self._create_volume('0', None, test_meta)
+ volume_id = volume['id']
+ self.volume.create_volume(self.context, volume_id)
+ result_meta = {
+ volume.volume_metadata[0].key: volume.volume_metadata[0].value}
+ self.assertEqual(result_meta, test_meta)
+
+ self.volume.delete_volume(self.context, volume_id)
+ self.assertRaises(exception.NotFound,
+ db.volume_get,
+ self.context,
+ volume_id)
+
def _do_test_create_over_quota(self, resource, expected):
"""Test volume creation over quota."""