summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArmando Migliaccio <armando.migliaccio@citrix.com>2010-12-07 15:35:56 +0000
committerArmando Migliaccio <armando.migliaccio@citrix.com>2010-12-07 15:35:56 +0000
commitc0fc8a5e9e72ecb780258d9cf41b32973620eb4c (patch)
tree32039d8bafcaaf84b86894e91c30df98d2ad0b19
parent88777c09ad909c68da8d433800cae862e9bbff4a (diff)
small fixes on Exception handling
-rw-r--r--nova/virt/xenapi/vm_utils.py2
-rw-r--r--nova/virt/xenapi/volume_utils.py10
-rw-r--r--nova/virt/xenapi/volumeops.py7
3 files changed, 12 insertions, 7 deletions
diff --git a/nova/virt/xenapi/vm_utils.py b/nova/virt/xenapi/vm_utils.py
index 039e72981..f29803136 100644
--- a/nova/virt/xenapi/vm_utils.py
+++ b/nova/virt/xenapi/vm_utils.py
@@ -132,7 +132,7 @@ class VMHelper():
return vbd
except XenAPI.Failure, exc:
logging.warn(exc)
- raise StorageError('VBD not found in instance %s' % vm_ref)
+ raise StorageError('VBD not found in instance %s' % vm_ref)
@classmethod
@defer.inlineCallbacks
diff --git a/nova/virt/xenapi/volume_utils.py b/nova/virt/xenapi/volume_utils.py
index 48aff7ef5..debaa6906 100644
--- a/nova/virt/xenapi/volume_utils.py
+++ b/nova/virt/xenapi/volume_utils.py
@@ -95,9 +95,13 @@ class VolumeHelper():
@defer.inlineCallbacks
def find_sr_from_vbd(cls, session, vbd_ref):
""" Find the SR reference from the VBD reference """
- vdi_ref = yield session.get_xenapi().VBD.get_VDI(vbd_ref)
- sr_ref = yield session.get_xenapi().VDI.get_SR(vdi_ref)
- defer.returnValue(sr_ref)
+ try:
+ vdi_ref = yield session.get_xenapi().VBD.get_VDI(vbd_ref)
+ sr_ref = yield session.get_xenapi().VDI.get_SR(vdi_ref)
+ defer.returnValue(sr_ref)
+ except XenAPI.Failure, exc:
+ logging.warn(exc)
+ raise StorageError('Unable to find SR from VBD %s' % vbd_ref)
@classmethod
@utils.deferredToThread
diff --git a/nova/virt/xenapi/volumeops.py b/nova/virt/xenapi/volumeops.py
index 4055688e3..b9f260756 100644
--- a/nova/virt/xenapi/volumeops.py
+++ b/nova/virt/xenapi/volumeops.py
@@ -18,6 +18,7 @@
Management class for Storage-related functions (attach, detach, etc).
"""
import logging
+import XenAPI
from twisted.internet import defer
@@ -68,10 +69,10 @@ class VolumeOps(object):
vm_ref, vdi_ref,
vol_rec['deviceNumber'],
False)
- except StorageError, exc:
+ except XenAPI.Failure, exc:
logging.warn(exc)
yield VolumeHelper.destroy_iscsi_storage(self._session, sr_ref)
- raise StorageError('Unable to use SR %s for instance %s'
+ raise Exception('Unable to use SR %s for instance %s'
% (sr_ref,
instance_name))
else:
@@ -79,7 +80,7 @@ class VolumeOps(object):
task = yield self._session.call_xenapi('Async.VBD.plug',
vbd_ref)
yield self._session.wait_for_task(task)
- except StorageError, exc:
+ except XenAPI.Failure, exc:
logging.warn(exc)
yield VolumeHelper.destroy_iscsi_storage(self._session,
sr_ref)