summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArmando Migliaccio <armando.migliaccio@citrix.com>2010-12-18 00:50:49 +0000
committerArmando Migliaccio <armando.migliaccio@citrix.com>2010-12-18 00:50:49 +0000
commitca81b0c12a3853942e9ce85154c38dad381ead0e (patch)
tree4be3f2d43c2099f6d1a9c6604bf5447ade973ce0
parent336bdb43ecc7d53d58d99f80877b10b57d4a6195 (diff)
downloadnova-ca81b0c12a3853942e9ce85154c38dad381ead0e.tar.gz
nova-ca81b0c12a3853942e9ce85154c38dad381ead0e.tar.xz
nova-ca81b0c12a3853942e9ce85154c38dad381ead0e.zip
fixed unittests and further clean-up post-eventlet merge
-rw-r--r--nova/tests/xenapi_unittest.py48
-rw-r--r--nova/virt/xenapi/__init__.py2
-rw-r--r--nova/virt/xenapi/network_utils.py2
-rw-r--r--nova/virt/xenapi/vm_utils.py3
-rw-r--r--nova/virt/xenapi/vmops.py8
-rw-r--r--nova/virt/xenapi/volume_utils.py2
-rw-r--r--nova/virt/xenapi/volumeops.py1
-rw-r--r--nova/virt/xenapi_conn.py8
8 files changed, 29 insertions, 45 deletions
diff --git a/nova/tests/xenapi_unittest.py b/nova/tests/xenapi_unittest.py
index 839d6aa44..74401ce5d 100644
--- a/nova/tests/xenapi_unittest.py
+++ b/nova/tests/xenapi_unittest.py
@@ -78,13 +78,10 @@ class XenAPIVolumeTestCase(test.TrialTestCase):
helper = volume_utils.VolumeHelper
helper.XenAPI = session.get_imported_xenapi()
vol = self._create_volume()
- info = yield helper.parse_volume_info(vol['ec2_id'], '/dev/sdc')
+ info = helper.parse_volume_info(vol['ec2_id'], '/dev/sdc')
label = 'SR-%s' % vol['ec2_id']
description = 'Test-SR'
- sr_ref = helper.create_iscsi_storage_blocking(session,
- info,
- label,
- description)
+ sr_ref = helper.create_iscsi_storage(session, info, label, description)
srs = fake.get_all('SR')
self.assertEqual(sr_ref, srs[0])
db.volume_destroy(context.get_admin_context(), vol['id'])
@@ -97,13 +94,10 @@ class XenAPIVolumeTestCase(test.TrialTestCase):
helper.XenAPI = session.get_imported_xenapi()
vol = self._create_volume()
# oops, wrong mount point!
- info = helper.parse_volume_info(vol['ec2_id'], '/dev/sd')
-
- def check(exc):
- """ handler """
- self.assertIsInstance(exc.value, volume_utils.StorageError)
-
- info.addErrback(check)
+ self.assertRaises(volume_utils.StorageError,
+ helper.parse_volume_info,
+ vol['ec2_id'],
+ '/dev/sd')
db.volume_destroy(context.get_admin_context(), vol['id'])
def test_attach_volume(self):
@@ -116,8 +110,7 @@ class XenAPIVolumeTestCase(test.TrialTestCase):
result = conn.attach_volume(instance.name, volume['ec2_id'],
'/dev/sdc')
- def check(_):
- """ handler """
+ def check():
# check that the VM has a VBD attached to it
# Get XenAPI reference for the VM
vms = fake.get_all('VM')
@@ -127,8 +120,7 @@ class XenAPIVolumeTestCase(test.TrialTestCase):
vm_ref = vbd['VM']
self.assertEqual(vm_ref, vms[0])
- result.addCallback(check)
- return result
+ check()
def test_attach_volume_raise_exception(self):
""" This shows how to test when exceptions are raised """
@@ -138,17 +130,11 @@ class XenAPIVolumeTestCase(test.TrialTestCase):
volume = self._create_volume()
instance = db.instance_create(self.values)
fake.create_vm(instance.name, 'Running')
- result = conn.attach_volume(instance.name, volume['ec2_id'],
- '/dev/sdc')
-
- def check_exception(exc):
- """ handler """
- if exc:
- pass
- else:
- self.fail('Oops, no exception has been raised!')
- result.addErrback(check_exception)
- return result
+ self.assertRaises(Exception,
+ conn.attach_volume,
+ instance.name,
+ volume['ec2_id'],
+ '/dev/sdc')
def tearDown(self):
super(XenAPIVolumeTestCase, self).tearDown()
@@ -192,10 +178,9 @@ class XenAPIVMTestCase(test.TrialTestCase):
}
conn = xenapi_conn.get_connection(False)
instance = db.instance_create(values)
- result = conn.spawn(instance)
+ conn.spawn(instance)
- def check(_):
- """ handler """
+ def check():
instances = conn.list_instances()
self.assertEquals(instances, [1])
@@ -225,8 +210,7 @@ class XenAPIVMTestCase(test.TrialTestCase):
# Check that the VM is running according to XenAPI.
self.assertEquals(vm['power_state'], 'Running')
- result.addCallback(check)
- return result
+ check()
def tearDown(self):
super(XenAPIVMTestCase, self).tearDown()
diff --git a/nova/virt/xenapi/__init__.py b/nova/virt/xenapi/__init__.py
index c7038deae..c75162f08 100644
--- a/nova/virt/xenapi/__init__.py
+++ b/nova/virt/xenapi/__init__.py
@@ -20,7 +20,7 @@
"""
-class HelperBase():
+class HelperBase(object):
"""
The base for helper classes. This adds the XenAPI class attribute
"""
diff --git a/nova/virt/xenapi/network_utils.py b/nova/virt/xenapi/network_utils.py
index c292383b6..e783120fe 100644
--- a/nova/virt/xenapi/network_utils.py
+++ b/nova/virt/xenapi/network_utils.py
@@ -29,7 +29,7 @@ class NetworkHelper(HelperBase):
The class that wraps the helper methods together.
"""
def __init__(self):
- return
+ super(NetworkHelper, self).__init__()
@classmethod
def find_network_with_bridge(cls, session, bridge):
diff --git a/nova/virt/xenapi/vm_utils.py b/nova/virt/xenapi/vm_utils.py
index 57d419773..911fcc9b2 100644
--- a/nova/virt/xenapi/vm_utils.py
+++ b/nova/virt/xenapi/vm_utils.py
@@ -24,7 +24,6 @@ import urllib
from xml.dom import minidom
from nova import flags
-from nova import utils
from nova.auth.manager import AuthManager
from nova.compute import instance_types
from nova.compute import power_state
@@ -48,7 +47,7 @@ class VMHelper(HelperBase):
The class that wraps the helper methods together.
"""
def __init__(self):
- return
+ super(VMHelper, self).__init__()
@classmethod
def create_vm(cls, session, instance, kernel, ramdisk):
diff --git a/nova/virt/xenapi/vmops.py b/nova/virt/xenapi/vmops.py
index 0be4ed07d..aa3a3ae53 100644
--- a/nova/virt/xenapi/vmops.py
+++ b/nova/virt/xenapi/vmops.py
@@ -22,7 +22,6 @@ import logging
from nova import db
from nova import context
-from nova import flags
from nova import exception
from nova import utils
@@ -78,6 +77,7 @@ class VMOps(object):
logging.info('Spawning VM %s created %s.', instance.name,
vm_ref)
+ # NOTE(armando): Do we really need to do this in virt?
timer = utils.LoopingCall(f=None)
def _wait_for_boot():
@@ -88,7 +88,8 @@ class VMOps(object):
if state == power_state.RUNNING:
logging.debug('Instance %s: booted', instance['name'])
timer.stop()
- except:
+ except Exception, exc:
+ logging.warn(exc)
logging.exception('instance %s: failed to boot',
instance['name'])
db.instance_set_state(context.get_admin_context(),
@@ -131,6 +132,7 @@ class VMOps(object):
self._session.wait_for_task(task)
except self.XenAPI.Failure, exc:
logging.warn(exc)
+ # VM Destroy
try:
task = self._session.call_xenapi('Async.VM.destroy', vm)
self._session.wait_for_task(task)
@@ -149,7 +151,7 @@ class VMOps(object):
"""Return data about VM diagnostics"""
vm = VMHelper.lookup(self._session, instance_id)
if vm is None:
- raise exception.Exception("Instance not found %s" % instance_id)
+ raise exception.NotFound("Instance not found %s" % instance_id)
rec = self._session.get_xenapi().VM.get_record(vm)
return VMHelper.compile_diagnostics(self._session, rec)
diff --git a/nova/virt/xenapi/volume_utils.py b/nova/virt/xenapi/volume_utils.py
index 255f23d88..5366078ce 100644
--- a/nova/virt/xenapi/volume_utils.py
+++ b/nova/virt/xenapi/volume_utils.py
@@ -43,7 +43,7 @@ class VolumeHelper(HelperBase):
The class that wraps the helper methods together.
"""
def __init__(self):
- return
+ super(VolumeHelper, self).__init__()
@classmethod
def create_iscsi_storage(cls, session, info, label, description):
diff --git a/nova/virt/xenapi/volumeops.py b/nova/virt/xenapi/volumeops.py
index 6c7516073..9dbb1bb14 100644
--- a/nova/virt/xenapi/volumeops.py
+++ b/nova/virt/xenapi/volumeops.py
@@ -19,7 +19,6 @@ Management class for Storage-related functions (attach, detach, etc).
"""
import logging
-from nova import flags
from nova.virt.xenapi.vm_utils import VMHelper
from nova.virt.xenapi.volume_utils import VolumeHelper
from nova.virt.xenapi.volume_utils import StorageError
diff --git a/nova/virt/xenapi_conn.py b/nova/virt/xenapi_conn.py
index 207222744..2a8614cfd 100644
--- a/nova/virt/xenapi_conn.py
+++ b/nova/virt/xenapi_conn.py
@@ -119,11 +119,11 @@ class XenAPIConnection(object):
def spawn(self, instance):
""" Create VM instance """
- return self._vmops.spawn(instance)
+ self._vmops.spawn(instance)
def reboot(self, instance):
""" Reboot VM instance """
- return self._vmops.reboot(instance)
+ self._vmops.reboot(instance)
def destroy(self, instance):
""" Destroy VM instance """
@@ -143,13 +143,13 @@ class XenAPIConnection(object):
def attach_volume(self, instance_name, device_path, mountpoint):
""" Attach volume storage to VM instance """
- return self._volumeops.attach_volume(instance_name,
+ self._volumeops.attach_volume(instance_name,
device_path,
mountpoint)
def detach_volume(self, instance_name, mountpoint):
""" Detach volume storage to VM instance """
- return self._volumeops.detach_volume(instance_name, mountpoint)
+ self._volumeops.detach_volume(instance_name, mountpoint)
class XenAPISession(object):