summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-04-24 16:53:37 +0000
committerGerrit Code Review <review@openstack.org>2012-04-24 16:53:37 +0000
commitdab653b3ac6d44d6d10f290c5d732aa679c8cdbd (patch)
tree6c1520fff79a4c3d19fe2684631628476134408a
parent2c786ff3ad0d3fa85735d98f9927e9f92b686edb (diff)
parent1744e68d196deb083268cc26cb0003f683277415 (diff)
downloadnova-dab653b3ac6d44d6d10f290c5d732aa679c8cdbd.tar.gz
nova-dab653b3ac6d44d6d10f290c5d732aa679c8cdbd.tar.xz
nova-dab653b3ac6d44d6d10f290c5d732aa679c8cdbd.zip
Merge "Removing XenAPI class variable, use session instead."
-rw-r--r--nova/virt/xenapi/__init__.py6
-rw-r--r--nova/virt/xenapi/vm_utils.py16
-rw-r--r--nova/virt/xenapi/vmops.py1
-rw-r--r--nova/virt/xenapi/volume_utils.py22
-rw-r--r--nova/virt/xenapi/volumeops.py3
5 files changed, 21 insertions, 27 deletions
diff --git a/nova/virt/xenapi/__init__.py b/nova/virt/xenapi/__init__.py
index 724e88dbb..7eae5f767 100644
--- a/nova/virt/xenapi/__init__.py
+++ b/nova/virt/xenapi/__init__.py
@@ -22,15 +22,13 @@
class HelperBase(object):
"""
- The base for helper classes. This adds the XenAPI class attribute
+ The base for helper classes.
"""
- XenAPI = None
-
@classmethod
def get_rec(cls, session, record_type, ref):
try:
return session.call_xenapi('%s.get_record' % record_type, ref)
- except cls.XenAPI.Failure, e:
+ except session.XenAPI.Failure, e:
if e.details[0] != 'HANDLE_INVALID':
raise
diff --git a/nova/virt/xenapi/vm_utils.py b/nova/virt/xenapi/vm_utils.py
index b88f65178..2fbfb4105 100644
--- a/nova/virt/xenapi/vm_utils.py
+++ b/nova/virt/xenapi/vm_utils.py
@@ -239,7 +239,7 @@ class VMHelper(xenapi.HelperBase):
vbd_rec = session.call_xenapi("VBD.get_record", vbd_ref)
if vbd_rec['userdevice'] == str(number):
return vbd_ref
- except cls.XenAPI.Failure, exc:
+ except session.XenAPI.Failure, exc:
LOG.exception(exc)
raise volume_utils.StorageError(
_('VBD not found in instance %s') % vm_ref)
@@ -256,7 +256,7 @@ class VMHelper(xenapi.HelperBase):
try:
session.call_xenapi('VBD.unplug', vbd_ref)
return
- except cls.XenAPI.Failure, exc:
+ except session.XenAPI.Failure, exc:
err = len(exc.details) > 0 and exc.details[0]
if err == 'DEVICE_ALREADY_DETACHED':
LOG.info(_('VBD %s already detached'), vbd_ref)
@@ -280,7 +280,7 @@ class VMHelper(xenapi.HelperBase):
"""Destroy VBD from host database"""
try:
session.call_xenapi('VBD.destroy', vbd_ref)
- except cls.XenAPI.Failure, exc:
+ except session.XenAPI.Failure, exc:
LOG.exception(exc)
raise volume_utils.StorageError(
_('Unable to destroy VBD %s') % vbd_ref)
@@ -313,7 +313,7 @@ class VMHelper(xenapi.HelperBase):
def destroy_vdi(cls, session, vdi_ref):
try:
session.call_xenapi('VDI.destroy', vdi_ref)
- except cls.XenAPI.Failure, exc:
+ except session.XenAPI.Failure, exc:
LOG.exception(exc)
raise volume_utils.StorageError(
_('Unable to destroy VDI %s') % vdi_ref)
@@ -729,7 +729,7 @@ class VMHelper(xenapi.HelperBase):
try:
result = session.call_plugin('glance', 'download_vhd', kwargs)
return json.loads(result)
- except cls.XenAPI.Failure as exc:
+ except session.XenAPI.Failure as exc:
_type, _method, error = exc.details[:3]
if error == 'RetryableError':
LOG.error(_('download_vhd failed: %r') %
@@ -891,7 +891,7 @@ class VMHelper(xenapi.HelperBase):
return [dict(vdi_type=ImageType.to_string(image_type),
vdi_uuid=vdi_uuid,
file=None)]
- except (cls.XenAPI.Failure, IOError, OSError) as e:
+ except (session.XenAPI.Failure, IOError, OSError) as e:
# We look for XenAPI and OS failures.
LOG.exception(_("Failed to fetch glance image"),
instance=instance)
@@ -1015,7 +1015,7 @@ class VMHelper(xenapi.HelperBase):
# Test valid VDI
record = session.call_xenapi("VDI.get_record", vdi_ref)
LOG.debug(_('VDI %s is still available'), record['uuid'])
- except cls.XenAPI.Failure, exc:
+ except session.XenAPI.Failure, exc:
LOG.exception(exc)
else:
vdi_refs.append(vdi_ref)
@@ -1321,7 +1321,7 @@ def _get_all_vdis_in_sr(session, sr_ref):
try:
vdi_rec = session.call_xenapi('VDI.get_record', vdi_ref)
yield vdi_ref, vdi_rec
- except VMHelper.XenAPI.Failure:
+ except session.XenAPI.Failure:
continue
diff --git a/nova/virt/xenapi/vmops.py b/nova/virt/xenapi/vmops.py
index 8ba0d4e57..770ff7459 100644
--- a/nova/virt/xenapi/vmops.py
+++ b/nova/virt/xenapi/vmops.py
@@ -154,7 +154,6 @@ class VMOps(object):
self.compute_api = compute.API()
self._session = session
self.poll_rescue_last_ran = None
- VMHelper.XenAPI = self.XenAPI
if FLAGS.firewall_driver not in firewall.drivers:
FLAGS.set_default('firewall_driver', firewall.drivers[0])
fw_class = utils.import_class(FLAGS.firewall_driver)
diff --git a/nova/virt/xenapi/volume_utils.py b/nova/virt/xenapi/volume_utils.py
index 3bc1ab13e..5cf85c6a5 100644
--- a/nova/virt/xenapi/volume_utils.py
+++ b/nova/virt/xenapi/volume_utils.py
@@ -71,7 +71,7 @@ class VolumeHelper(xenapi.HelperBase):
LOG.debug(_('Created %(label)s as %(sr_ref)s.') % locals())
return sr_ref
- except cls.XenAPI.Failure, exc:
+ except session.XenAPI.Failure, exc:
LOG.exception(exc)
raise StorageError(_('Unable to create Storage Repository'))
@@ -111,7 +111,7 @@ class VolumeHelper(xenapi.HelperBase):
session.call_xenapi("SR.scan", sr_ref)
return sr_ref
- except cls.XenAPI.Failure, exc:
+ except session.XenAPI.Failure, exc:
LOG.exception(exc)
raise StorageError(_('Unable to introduce Storage Repository'))
@@ -122,7 +122,7 @@ class VolumeHelper(xenapi.HelperBase):
"""
try:
sr_ref = session.call_xenapi("SR.get_by_uuid", sr_uuid)
- except cls.XenAPI.Failure, exc:
+ except session.XenAPI.Failure, exc:
LOG.exception(exc)
raise StorageError(_('Unable to get SR using uuid'))
@@ -132,7 +132,7 @@ class VolumeHelper(xenapi.HelperBase):
cls.unplug_pbds(session, sr_ref)
sr_ref = session.call_xenapi("SR.forget", sr_ref)
- except cls.XenAPI.Failure, exc:
+ except session.XenAPI.Failure, exc:
LOG.exception(exc)
raise StorageError(_('Unable to forget Storage Repository'))
@@ -169,7 +169,7 @@ class VolumeHelper(xenapi.HelperBase):
try:
LOG.debug(_('Introduced %(label)s as %(sr_ref)s.') % locals())
return sr_ref
- except cls.XenAPI.Failure, exc:
+ except session.XenAPI.Failure, exc:
LOG.exception(exc)
raise StorageError(_('Unable to create Storage Repository'))
else:
@@ -181,7 +181,7 @@ class VolumeHelper(xenapi.HelperBase):
try:
vdi_ref = session.call_xenapi("VBD.get_VDI", vbd_ref)
sr_ref = session.call_xenapi("VDI.get_SR", vdi_ref)
- except cls.XenAPI.Failure, exc:
+ except session.XenAPI.Failure, exc:
LOG.exception(exc)
raise StorageError(_('Unable to find SR from VBD %s') % vbd_ref)
return sr_ref
@@ -200,13 +200,13 @@ class VolumeHelper(xenapi.HelperBase):
pbds = []
try:
pbds = session.call_xenapi("SR.get_PBDs", sr_ref)
- except cls.XenAPI.Failure, exc:
+ except session.XenAPI.Failure, exc:
LOG.warn(_('Ignoring exception %(exc)s when getting PBDs'
' for %(sr_ref)s') % locals())
for pbd in pbds:
try:
session.call_xenapi("PBD.unplug", pbd)
- except cls.XenAPI.Failure, exc:
+ except session.XenAPI.Failure, exc:
LOG.warn(_('Ignoring exception %(exc)s when unplugging'
' PBD %(pbd)s') % locals())
@@ -229,7 +229,7 @@ class VolumeHelper(xenapi.HelperBase):
break
else:
vdi_ref = (session.call_xenapi("SR.get_VDIs", sr_ref))[0]
- except cls.XenAPI.Failure, exc:
+ except session.XenAPI.Failure, exc:
LOG.exception(exc)
raise StorageError(_('Unable to introduce VDI on SR %s') % sr_ref)
@@ -237,7 +237,7 @@ class VolumeHelper(xenapi.HelperBase):
vdi_rec = session.call_xenapi("VDI.get_record", vdi_ref)
LOG.debug(vdi_rec)
LOG.debug(type(vdi_rec))
- except cls.XenAPI.Failure, exc:
+ except session.XenAPI.Failure, exc:
LOG.exception(exc)
raise StorageError(_('Unable to get record'
' of VDI %s on') % vdi_ref)
@@ -259,7 +259,7 @@ class VolumeHelper(xenapi.HelperBase):
vdi_rec['location'],
vdi_rec['xenstore_data'],
vdi_rec['sm_config'])
- except cls.XenAPI.Failure, exc:
+ except session.XenAPI.Failure, exc:
LOG.exception(exc)
raise StorageError(_('Unable to introduce VDI for SR %s')
% sr_ref)
diff --git a/nova/virt/xenapi/volumeops.py b/nova/virt/xenapi/volumeops.py
index 2f3aafb71..e898b1d37 100644
--- a/nova/virt/xenapi/volumeops.py
+++ b/nova/virt/xenapi/volumeops.py
@@ -35,9 +35,6 @@ class VolumeOps(object):
def __init__(self, session):
self.XenAPI = session.get_imported_xenapi()
self._session = session
- # Load XenAPI module in the helper classes respectively
- volume_utils.VolumeHelper.XenAPI = self.XenAPI
- vm_utils.VMHelper.XenAPI = self.XenAPI
def create_volume_for_sm(self, volume, sr_uuid):
LOG.debug("Creating volume for Storage Manager")