~hopem/charms/trusty/nova-compute/lp1499656

« back to all changes in this revision

Viewing changes to unit_tests/test_nova_compute_utils.py

  • Committer: james.page at ubuntu
  • Date: 2015-09-01 09:34:31 UTC
  • mfrom: (151.1.12 nova-compute)
  • Revision ID: james.page@ubuntu.com-20150901093431-24im5jpq1ijsa7oc
[gnuoy,james-page,r=james-page] Add optional support for hugepage qemu configuration.

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
    'add_user_to_group',
31
31
    'MetadataServiceContext',
32
32
    'lsb_release',
 
33
    'charm_dir',
 
34
    'hugepage_support',
 
35
    'rsync',
 
36
    'fstab_mount',
33
37
]
34
38
 
35
39
OVS_PKGS = [
54
58
    def setUp(self):
55
59
        super(NovaComputeUtilsTests, self).setUp(utils, TO_PATCH)
56
60
        self.config.side_effect = self.test_config.get
 
61
        self.charm_dir.return_value = 'mycharm'
57
62
 
58
63
    @patch.object(utils, 'enable_nova_metadata')
59
64
    @patch.object(utils, 'network_manager')
708
713
             'iputils-arping', 'kpartx', 'kvm', 'netcat', 'open-iscsi',
709
714
             'parted', 'python-libvirt', 'qemu', 'qemu-system',
710
715
             'qemu-utils', 'vlan', 'xen-system-amd64'], fatal=True)
 
716
 
 
717
    @patch('psutil.virtual_memory')
 
718
    @patch('subprocess.check_call')
 
719
    @patch('subprocess.call')
 
720
    def test_install_hugepages(self, _call, _check_call, _virt_mem):
 
721
        class mem(object):
 
722
            def __init__(self):
 
723
                self.total = 10000000
 
724
        self.test_config.set('hugepages', '10%')
 
725
        _virt_mem.side_effect = mem
 
726
        _call.return_value = 1
 
727
        utils.install_hugepages()
 
728
        self.hugepage_support.assert_called_with(
 
729
            'nova',
 
730
            mnt_point='/run/hugepages/kvm',
 
731
            group='root',
 
732
            nr_hugepages=488,
 
733
            mount=False,
 
734
        )
 
735
        check_call_calls = [
 
736
            call('/etc/init.d/qemu-hugefsdir'),
 
737
            call(['update-rc.d', 'qemu-hugefsdir', 'defaults']),
 
738
        ]
 
739
        _check_call.assert_has_calls(check_call_calls)
 
740
        self.fstab_mount.assert_called_with('/run/hugepages/kvm')
 
741
 
 
742
    @patch('psutil.virtual_memory')
 
743
    @patch('subprocess.check_call')
 
744
    @patch('subprocess.call')
 
745
    def test_install_hugepages_explicit_size(self, _call, _check_call,
 
746
                                             _virt_mem):
 
747
        self.test_config.set('hugepages', '2048')
 
748
        utils.install_hugepages()
 
749
        self.hugepage_support.assert_called_with(
 
750
            'nova',
 
751
            mnt_point='/run/hugepages/kvm',
 
752
            group='root',
 
753
            nr_hugepages=2048,
 
754
            mount=False,
 
755
        )
 
756
 
 
757
    @patch('psutil.virtual_memory')
 
758
    @patch('subprocess.check_call')
 
759
    @patch('subprocess.call')
 
760
    def test_install_hugepages_already_mounted(self, _call, _check_call,
 
761
                                               _virt_mem):
 
762
        self.test_config.set('hugepages', '2048')
 
763
        _call.return_value = 0
 
764
        utils.install_hugepages()
 
765
        self.assertEqual(self.fstab_mount.call_args_list, [])