From 6972cd1e7eb1ec51f9ab4d94a842ebc45b655cc5 Mon Sep 17 00:00:00 2001 From: Ben Swartzlander Date: Mon, 13 Aug 2012 17:25:15 -0400 Subject: Add support for NFS-based virtual block devices This code is required in Nova to support the new NFS-based volume drivers in Cinder. blueprint nfs-files-as-virtual-block-devices Change-Id: Ib815817939628275c04634e8b9cabffa1c419f23 --- nova/tests/test_libvirt.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'nova/tests') diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py index 781a68033..b1359323b 100644 --- a/nova/tests/test_libvirt.py +++ b/nova/tests/test_libvirt.py @@ -56,6 +56,7 @@ from nova.virt.libvirt import firewall from nova.virt.libvirt import imagebackend from nova.virt.libvirt import utils as libvirt_utils from nova.virt.libvirt import volume +from nova.virt.libvirt import volume_nfs from nova.volume import driver as volume_driver @@ -326,6 +327,31 @@ class LibvirtVolumeTestCase(test.TestCase): libvirt_driver.disconnect_volume(connection_info, mount_device) connection_info = vol_driver.terminate_connection(vol, self.connr) + def test_libvirt_nfs_driver(self): + # NOTE(vish) exists is to make driver assume connecting worked + mnt_base = '/mnt' + self.flags(nfs_mount_point_base=mnt_base) + + libvirt_driver = volume_nfs.NfsVolumeDriver(self.fake_conn) + export_string = '192.168.1.1:/nfs/share1' + name = 'volume-00001' + export_mnt_base = os.path.join(mnt_base, + libvirt_driver.get_hash_str(export_string)) + file_path = os.path.join(export_mnt_base, name) + + connection_info = {'data': {'export': export_string, 'name': name}} + mount_device = "vde" + conf = libvirt_driver.connect_volume(connection_info, mount_device) + tree = conf.format_dom() + self.assertEqual(tree.get('type'), 'file') + self.assertEqual(tree.find('./source').get('file'), file_path) + libvirt_driver.disconnect_volume(connection_info, mount_device) + + expected_commands = [ + ('stat', export_mnt_base), + ('mount', '-t', 'nfs', export_string, export_mnt_base)] + self.assertEqual(self.executes, expected_commands) + class CacheConcurrencyTestCase(test.TestCase): def setUp(self): -- cgit