summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOllie Leahy <oliver.leahy@hp.com>2011-11-24 15:56:08 +0000
committerOllie Leahy <oliver.leahy@hp.com>2011-11-28 14:13:13 +0000
commite0ef89f091a77a25fa9bcfd466159e101cb42c56 (patch)
tree5f558090f177498896b0128dc04f75749642a393
parent43bb342296936887a33deba4fb4666eadc747244 (diff)
downloadnova-e0ef89f091a77a25fa9bcfd466159e101cb42c56.tar.gz
nova-e0ef89f091a77a25fa9bcfd466159e101cb42c56.tar.xz
nova-e0ef89f091a77a25fa9bcfd466159e101cb42c56.zip
Fixes bug 888649
Change exception.VolumeIsBusy to derive from NovaException instead of Error, so that an 'unexpected keyword' exception is not thrown when the exception is raised with keyword parameters. Add unit test to confirm that the 'unexpected keyword' exception is not thrown when the exception is raised by nova.volume.driver.VolumeDriver Responded to reviewer observations, fix pep8 errors in tset_volume.py, added email address to Authors file. Change-Id: I15464cb0cf72a2c71f430e4c8c5c2b27cd4e2ef9
-rw-r--r--Authors1
-rw-r--r--nova/exception.py2
-rw-r--r--nova/tests/test_volume.py28
3 files changed, 30 insertions, 1 deletions
diff --git a/Authors b/Authors
index 36ec620cd..633677d88 100644
--- a/Authors
+++ b/Authors
@@ -103,6 +103,7 @@ Nachi Ueno <ueno.nachi@lab.ntt.co.jp>
Naveed Massjouni <naveedm9@gmail.com>
Nikolay Sokolov <nsokolov@griddynamics.com>
Nirmal Ranganathan <nirmal.ranganathan@rackspace.com>
+Ollie Leahy <oliver.leahy@hp.com>
Paul Voccio <paul@openstack.org>
Renuka Apte <renuka.apte@citrix.com>
Ricardo Carrillo Cruz <emaildericky@gmail.com>
diff --git a/nova/exception.py b/nova/exception.py
index 78a888faa..c6e08824b 100644
--- a/nova/exception.py
+++ b/nova/exception.py
@@ -396,7 +396,7 @@ class SnapshotNotFound(NotFound):
message = _("Snapshot %(snapshot_id)s could not be found.")
-class VolumeIsBusy(Error):
+class VolumeIsBusy(NovaException):
message = _("deleting volume %(volume_name)s that has snapshot")
diff --git a/nova/tests/test_volume.py b/nova/tests/test_volume.py
index 588b7a328..6c81facf8 100644
--- a/nova/tests/test_volume.py
+++ b/nova/tests/test_volume.py
@@ -294,6 +294,34 @@ class DriverTestCase(test.TestCase):
self.volume.delete_volume(self.context, volume_id)
+class VolumeDriverTestCase(DriverTestCase):
+ """Test case for VolumeDriver"""
+ driver_name = "nova.volume.driver.VolumeDriver"
+
+ def setUp(self):
+ super(VolumeDriverTestCase, self).setUp()
+
+ def tearDown(self):
+ super(VolumeDriverTestCase, self).tearDown()
+
+ def test_delete_busy_volume(self):
+ """Test deleting a busy volume."""
+ self.stubs.Set(self.volume.driver, '_volume_not_present',
+ lambda x: False)
+ self.stubs.Set(self.volume.driver, '_delete_volume',
+ lambda x, y: False)
+ # Want DriverTestCase._fake_execute to return 'o' so that
+ # volume.driver.delete_volume() raises the VolumeIsBusy exception.
+ self.output = 'o'
+ self.assertRaises(exception.VolumeIsBusy,
+ self.volume.driver.delete_volume,
+ {'name': 'test1', 'size': 1024})
+ # when DriverTestCase._fake_execute returns something other than
+ # 'o' volume.driver.delete_volume() does not raise an exception.
+ self.output = 'x'
+ self.volume.driver.delete_volume({'name': 'test1', 'size': 1024})
+
+
class ISCSITestCase(DriverTestCase):
"""Test Case for ISCSIDriver"""
driver_name = "nova.volume.driver.ISCSIDriver"