From 231f856ece08ebc65ed5fcf201df10b1cec27d0b Mon Sep 17 00:00:00 2001 From: lisali Date: Thu, 25 Feb 2016 08:59:42 +0000 Subject: [PATCH] Add necessary fields to volume creation This patch is to add the two fields in driver.py when creating volumes. Without the fix, it leads query related to the volume failed with exception. Change-Id: I0055b5bf402b0aa7b4ee78b0fb40bedea850af94 Closes-Bug: #1549673 Related-Bug: #1549669 --- cinder/tests/unit/test_volume.py | 17 +++++++++++++++++ cinder/volume/driver.py | 2 ++ 2 files changed, 19 insertions(+) diff --git a/cinder/tests/unit/test_volume.py b/cinder/tests/unit/test_volume.py index 6cf65569b..d11f28c66 100644 --- a/cinder/tests/unit/test_volume.py +++ b/cinder/tests/unit/test_volume.py @@ -6516,6 +6516,23 @@ class GenericVolumeDriverTestCase(DriverTestCase): backup_obj = objects.Backup.get_by_id(self.context, backup.id) self.assertEqual(temp_vol.id, backup_obj.temp_volume_id) + def test__create_temp_volume_from_snapshot(self): + volume_dict = {'id': 'fake', + 'host': 'fakehost', + 'availability_zone': 'fakezone', + 'size': 1} + vol = fake_volume.fake_volume_obj(self.context, **volume_dict) + snapshot = fake_snapshot.fake_snapshot_obj(self.context) + + with mock.patch.object( + self.volume.driver, + 'create_volume_from_snapshot'): + temp_vol = self.volume.driver._create_temp_volume_from_snapshot( + self.context, + vol, snapshot) + self.assertEqual('detached', temp_vol['attach_status']) + self.assertEqual('fakezone', temp_vol['availability_zone']) + @mock.patch.object(utils, 'brick_get_connector_properties') @mock.patch.object(cinder.volume.driver.VolumeDriver, '_attach_volume') @mock.patch.object(cinder.volume.driver.VolumeDriver, '_detach_volume') diff --git a/cinder/volume/driver.py b/cinder/volume/driver.py index 610663a72..4a001c50a 100644 --- a/cinder/volume/driver.py +++ b/cinder/volume/driver.py @@ -1423,6 +1423,8 @@ class BaseVD(object): 'user_id': context.user_id, 'project_id': context.project_id, 'status': 'creating', + 'attach_status': 'detached', + 'availability_zone': volume.availability_zone, } temp_vol_ref = self.db.volume_create(context, temp_volume) try: -- 2.45.2