Add missing file for qemu enablement

This commit is contained in:
James Page 2015-08-13 10:23:40 +01:00
parent 798369a6f2
commit 464e28ee36
2 changed files with 63 additions and 0 deletions

14
files/qemu-hugefsdir Executable file
View File

@ -0,0 +1,14 @@
#! /bin/sh
#
### BEGIN INIT INFO
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Provides: qemu-hugefsdir
# Default-Start: 2 3 4 5
# Default-Stop: 0 6
# Short-Description: Make sure qemu gets a temp hugetblfs dir
# Description: Make sure qemu gets a temp hugetblfs dir
### END INIT INFO
mkdir -p /mnt/huge/libvirt/qemu || true
chown libvirt-qemu:libvirtd /mnt/huge/libvirt/qemu

View File

@ -30,6 +30,9 @@ TO_PATCH = [
'add_user_to_group',
'MetadataServiceContext',
'lsb_release',
# subprocess
'call',
'check_call',
]
OVS_PKGS = [
@ -708,3 +711,49 @@ class NovaComputeUtilsTests(CharmTestCase):
'iputils-arping', 'kpartx', 'kvm', 'netcat', 'open-iscsi',
'parted', 'python-libvirt', 'qemu', 'qemu-system',
'qemu-utils', 'vlan', 'xen-system-amd64'], fatal=True)
@patch('psutil.virtual_memory')
def test_install_hugepages(self, _virt_mem):
class mem(object):
def __init__(self):
self.total = 10000000
self.user_exists.return_value = True
self.test_config.set('hugepages', '10%')
_virt_mem.side_effect = mem
self.call.return_value = 1
utils.install_hugepages()
self.hugepage_support.assert_called_with(
'nova',
mnt_point='/mnt/huge',
group='root',
nr_hugepages=488,
mount=False,
)
check_call_calls = [
call('/etc/init.d/qemu-hugefsdir'),
call(['update-rc.d', 'qemu-hugefsdir', 'defaults']),
]
self.check_call.assert_has_calls(check_call_calls)
self.fstab_mount.assert_called_with('/mnt/huge')
@patch('psutil.virtual_memory')
def test_install_hugepages_explicit_size(self, _virt_mem):
self.user_exists.return_value = True
self.test_config.set('hugepages', '2048')
utils.install_hugepages()
self.hugepage_support.assert_called_with(
'nova',
mnt_point='/mnt/huge',
group='root',
nr_hugepages=2048,
mount=False,
)
@patch('psutil.virtual_memory')
def test_install_hugepages_already_mounted(self, _virt_mem):
self.user_exists.return_value = True
self.test_config.set('hugepages', '2048')
self.call.return_value = 0
utils.install_hugepages()
self.assertEqual(self.fstab_mount.call_args_list, [])