def test_libvirt_glusterfs_libgfapi(self): self.flags(qemu_allowed_storage_drivers=['gluster'], group='libvirt') libvirt_driver = volume.LibvirtGlusterfsVolumeDriver(self.fake_conn) self.stubs.Set(libvirt_utils, 'is_mounted', lambda x, d: False) export_string = '192.168.1.1:/volume-00001' name = 'volume-00001' connection_info = {'data': {'export': export_string, 'name': name}} disk_info = { "dev": "vde", "type": "disk", "bus": "virtio", } conf = libvirt_driver.connect_volume(connection_info, disk_info) tree = conf.format_dom() self.assertEqual(tree.get('type'), 'network') self.assertEqual(tree.find('./driver').get('type'), 'raw') source = tree.find('./source') self.assertEqual(source.get('protocol'), 'gluster') self.assertEqual(source.get('name'), 'volume-00001/volume-00001') self.assertEqual(source.find('./host').get('name'), '192.168.1.1') self.assertEqual(source.find('./host').get('port'), '24007') libvirt_driver.disconnect_volume(connection_info, "vde")
def test_libvirt_glusterfs_driver_with_opts(self): mnt_base = '/mnt' self.flags(glusterfs_mount_point_base=mnt_base, group='libvirt') libvirt_driver = volume.LibvirtGlusterfsVolumeDriver(self.fake_conn) self.stubs.Set(libvirt_utils, 'is_mounted', lambda x, d: False) export_string = '192.168.1.1:/volume-00001' options = '-o backupvolfile-server=192.168.1.2' export_mnt_base = os.path.join(mnt_base, utils.get_hash_str(export_string)) file_path = os.path.join(export_mnt_base, self.name) connection_info = {'data': {'export': export_string, 'name': self.name, 'options': options}} conf = libvirt_driver.connect_volume(connection_info, self.disk_info) tree = conf.format_dom() self._assertFileTypeEquals(tree, file_path) libvirt_driver.disconnect_volume(connection_info, "vde") expected_commands = [ ('mkdir', '-p', export_mnt_base), ('mount', '-t', 'glusterfs', '-o', 'backupvolfile-server=192.168.1.2', export_string, export_mnt_base), ('umount', export_mnt_base), ] self.assertEqual(self.executes, expected_commands)
def test_libvirt_glusterfs_driver_already_mounted(self): mnt_base = '/mnt' self.flags(glusterfs_mount_point_base=mnt_base, group='libvirt') libvirt_driver = volume.LibvirtGlusterfsVolumeDriver(self.fake_conn) export_string = '192.168.1.1:/volume-00001' export_mnt_base = os.path.join(mnt_base, utils.get_hash_str(export_string)) file_path = os.path.join(export_mnt_base, self.name) connection_info = { 'data': { 'export': export_string, 'name': self.name } } conf = libvirt_driver.connect_volume(connection_info, self.disk_info) tree = conf.format_dom() self._assertFileTypeEquals(tree, file_path) libvirt_driver.disconnect_volume(connection_info, "vde") expected_commands = [('findmnt', '--target', export_mnt_base, '--source', export_string), ('umount', export_mnt_base)] self.assertEqual(self.executes, expected_commands)
def test_libvirt_glusterfs_driver(self): mnt_base = '/mnt' self.flags(glusterfs_mount_point_base=mnt_base) libvirt_driver = volume.LibvirtGlusterfsVolumeDriver(self.fake_conn) export_string = '192.168.1.1:/volume-00001' 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}} disk_info = { "bus": "virtio", "dev": "vde", "type": "disk", } conf = libvirt_driver.connect_volume(connection_info, disk_info) 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, "vde") expected_commands = [('stat', export_mnt_base), ('mount', '-t', 'glusterfs', export_string, export_mnt_base)] self.assertEqual(self.executes, expected_commands)
def test_libvirt_glusterfs_driver_qcow2(self): libvirt_driver = volume.LibvirtGlusterfsVolumeDriver(self.fake_conn) export_string = '192.168.1.1:/volume-00001' name = 'volume-00001' format = 'qcow2' connection_info = {'data': {'export': export_string, 'name': name, 'format': format}} disk_info = { "bus": "virtio", "dev": "vde", "type": "disk", } conf = libvirt_driver.connect_volume(connection_info, disk_info) tree = conf.format_dom() self.assertEqual(tree.get('type'), 'file') self.assertEqual(tree.find('./driver').get('type'), 'qcow2') libvirt_driver.disconnect_volume(connection_info, "vde")