Esempio n. 1
0
 def __init__(self):
     irs = None
     log = logging.getLogger('test.ClientIF')
     scheduler = None
     fake_start = mock.Mock()
     with MonkeyPatchScope([
         (clientIF, '_glusterEnabled', False),
         (clientIF, 'secret', {}),
         (clientIF, 'MomClient', lambda *args: mock.Mock()),
         (clientIF, 'QemuGuestAgentPoller', lambda *args: fake_start),
         (clientIF, 'Listener', lambda *args: mock.Mock()),
         (clientIF.concurrent, 'thread',
          lambda *args, **kwargs: fake_start),
     ]):
         super(NotSoFakeClientIF, self).__init__(irs, log, scheduler)
Esempio n. 2
0
 def setup_class(cls):
     cls.old_socket = statsd.socket.socket
     cls.mock_socket = statsd.socket.socket = mock.Mock()
     try:
         statsd.start('localhost')
         cls._address = ('127.0.0.1', 8125)
     except:
         statsd.socket.socket = cls.old_socket
Esempio n. 3
0
def image_operation_mock(image_operation_status_code):
    image_operation = mock.Mock()
    image_operation.return_value = {
        "uuid": TASK_ID,
        "status": {
            "code": image_operation_status_code
        }
    }
    return image_operation
Esempio n. 4
0
    def test_do_not_detach_slaves_while_changing_options(self):
        OPTIONS = {'miimon': '110'}

        with dummy_devices(2) as (nic1, nic2):
            with bond_device() as bond:
                bond.add_slaves((nic1, nic2))
                mock_slaves = bond.del_slaves = bond.add_slaves = mock.Mock()

                bond.set_options(OPTIONS)

                mock_slaves.assert_not_called()
Esempio n. 5
0
 def setUp(self):
     self.uuid = API.VM.BLANK_UUID
     self.cif = FakeClientIF()
     self.vmParams = {
         'vmId': self.uuid,
         'vmName': 'TESTING',
         'memSize': 8 * 1024,
         'vmType': 'kvm',
         'display': 'qxl',
         'kvmEnable': 'true',
         'smp': '1',
     }
     with MonkeyPatchScope([(API, 'clientIF', self.cif)]):
         self.vm = API.VM(self.uuid)
     # to make testing easier
     self.vm._getHibernationPaths = lambda handle: (True, handle)
     threadlocal.vars.context = mock.Mock()
Esempio n. 6
0
class LibvirtModuleConfigureTests(TestCase):

    test_env = {}

    srcPath = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))

    def setUp(self):
        self._test_dir = tempfile.mkdtemp()

        self.test_env['VDSM_CONF'] = self._test_dir + '/vdsm.conf'
        self.test_env['LCONF'] = self._test_dir + '/libvirtd.conf'
        self.test_env['QCONF'] = self._test_dir + '/qemu.conf'
        self.test_env['LDCONF'] = self._test_dir + '/qemu-sanlock.conf'
        self.test_env['QLCONF'] = self._test_dir + '/libvirtd'
        self.test_env['QNETWORK'] = 'NON_EXISTENT'

        for key, val in self.test_env.items():
            if not key == 'VDSM_CONF':
                FakeLibvirtFiles[key]['path'] = val

        _setConfig(self,
                   ('QLCONF', 'libvirtd'),
                   ('LDCONF', 'qemu_sanlock'),
                   )
        self.vdsm_cfg = make_config(())

        self.patch = monkeypatch.Patch([
            (
                os,
                'getuid',
                lambda: 0
            ),
            (
                libvirt,
                'config',
                self.vdsm_cfg
            ),
            (
                libvirt,
                'FILES',
                FakeLibvirtFiles
            ),
            (
                cpuarch,
                'real',
                lambda: cpuarch.X86_64
            ),
            (
                cpuinfo,
                'flags',
                lambda: ['pdpe1gb']
            ),
        ])

        self.patch.apply()

    def tearDown(self):
        self.patch.revert()
        fileutils.rm_tree(self._test_dir)

    @monkeypatch.MonkeyPatch(libvirt, '_is_hugetlbfs_1g_mounted', lambda: True)
    @monkeypatch.MonkeyPatch(libvirt, '_libvirt_uses_socket_activation',
                             lambda: False)
    def testValidatePositive(self):
        self.vdsm_cfg.set('vars', 'ssl', 'true')
        _setConfig(self,
                   ('LCONF', 'lconf_ssl'),
                   ('QCONF', 'qemu_ssl'),
                   )

        self.assertTrue(libvirt.validate())

    @monkeypatch.MonkeyPatch(libvirt, '_is_hugetlbfs_1g_mounted', lambda: True)
    @monkeypatch.MonkeyPatch(libvirt, '_libvirt_uses_socket_activation',
                             lambda: False)
    def testValidateNegative(self):
        self.vdsm_cfg.set('vars', 'ssl', 'false')
        _setConfig(self,
                   ('LCONF', 'lconf_ssl'),
                   ('QCONF', 'qemu_ssl'),
                   )

        self.assertFalse(libvirt.validate())

    @monkeypatch.MonkeyPatch(libvirt, '_is_hugetlbfs_1g_mounted', lambda: True)
    @monkeypatch.MonkeyPatch(libvirt, '_libvirt_uses_socket_activation',
                             lambda: False)
    def testIsConfiguredPositive(self):
        _setConfig(self,
                   ('LCONF', 'lconf_ssl'),
                   ('QCONF', 'qemu_ssl'),
                   )
        self.assertEqual(
            libvirt.isconfigured(),
            MAYBE
        )

    @monkeypatch.MonkeyPatch(libvirt, '_is_hugetlbfs_1g_mounted', lambda: True)
    @monkeypatch.MonkeyPatch(libvirt, '_libvirt_uses_socket_activation',
                             lambda: False)
    def testIsConfiguredNegative(self):
        _setConfig(self,
                   ('LCONF', 'lconf_ssl'),
                   ('QCONF', 'empty'),
                   )
        self.assertEqual(
            libvirt.isconfigured(),
            NO
        )

    @monkeypatch.MonkeyPatch(libvirt, '_is_hugetlbfs_1g_mounted', lambda: True)
    @monkeypatch.MonkeyPatch(libvirt, '_libvirt_uses_socket_activation',
                             lambda: True)
    @monkeypatch.MonkeyPatch(libvirt, '_read_libvirt_connection_config',
                             lambda: LibvirtConnectionConfig(
                                 auth_tcp='',
                                 listen_tcp=1,
                                 listen_tls=0,
                                 spice_tls=0))
    @monkeypatch.MonkeyPatch(libvirt, '_unit_enabled',
                             lambda u: u != libvirt._LIBVIRT_TCP_SOCKET_UNIT)
    def testIsConfiguredTcpSocketDisabled(self):
        _setConfig(self,
                   ('LCONF', 'lconf_ssl'),
                   ('QCONF', 'qemu_ssl'),
                   )
        self.assertEqual(
            libvirt.isconfigured(),
            NO
        )

    @monkeypatch.MonkeyPatch(libvirt, '_is_hugetlbfs_1g_mounted', lambda: True)
    @monkeypatch.MonkeyPatch(libvirt, '_libvirt_uses_socket_activation',
                             lambda: True)
    @monkeypatch.MonkeyPatch(libvirt, '_read_libvirt_connection_config',
                             lambda: LibvirtConnectionConfig(
                                 auth_tcp='',
                                 listen_tcp=1,
                                 listen_tls=0,
                                 spice_tls=0))
    @monkeypatch.MonkeyPatch(libvirt, '_unit_enabled',
                             lambda u: u == libvirt._LIBVIRT_TCP_SOCKET_UNIT)
    def testIsConfiguredTcpSocketEnabled(self):
        _setConfig(self,
                   ('LCONF', 'lconf_ssl'),
                   ('QCONF', 'qemu_ssl'),
                   )
        self.assertEqual(
            libvirt.isconfigured(),
            MAYBE
        )

    @monkeypatch.MonkeyPatch(libvirt, '_is_hugetlbfs_1g_mounted', lambda: True)
    @monkeypatch.MonkeyPatch(libvirt, '_libvirt_uses_socket_activation',
                             lambda: True)
    @monkeypatch.MonkeyPatch(libvirt, '_read_libvirt_connection_config',
                             lambda: LibvirtConnectionConfig(
                                 auth_tcp='',
                                 listen_tcp=0,
                                 listen_tls=1,
                                 spice_tls=0))
    @monkeypatch.MonkeyPatch(libvirt, '_unit_enabled',
                             lambda u: u != libvirt._LIBVIRT_TLS_SOCKET_UNIT)
    def testIsConfiguredTlsSocketDisabled(self):
        _setConfig(self,
                   ('LCONF', 'lconf_ssl'),
                   ('QCONF', 'qemu_ssl'),
                   )
        self.assertEqual(
            libvirt.isconfigured(),
            NO
        )

    @monkeypatch.MonkeyPatch(libvirt, '_is_hugetlbfs_1g_mounted', lambda: True)
    @monkeypatch.MonkeyPatch(libvirt, '_libvirt_uses_socket_activation',
                             lambda: True)
    @monkeypatch.MonkeyPatch(libvirt, '_read_libvirt_connection_config',
                             lambda: LibvirtConnectionConfig(
                                 auth_tcp='',
                                 listen_tcp=0,
                                 listen_tls=1,
                                 spice_tls=0))
    @monkeypatch.MonkeyPatch(libvirt, '_unit_enabled',
                             lambda u: u == libvirt._LIBVIRT_TLS_SOCKET_UNIT)
    def testIsConfiguredTlsSocketEnabled(self):
        _setConfig(self,
                   ('LCONF', 'lconf_ssl'),
                   ('QCONF', 'qemu_ssl'),
                   )
        self.assertEqual(
            libvirt.isconfigured(),
            MAYBE
        )

    @monkeypatch.MonkeyPatch(libvirt, '_is_hugetlbfs_1g_mounted', lambda: True)
    @monkeypatch.MonkeyPatch(libvirt, '_libvirt_uses_socket_activation',
                             lambda: True)
    @monkeypatch.MonkeyPatch(libvirt, '_read_libvirt_connection_config',
                             lambda: LibvirtConnectionConfig(
                                 auth_tcp='',
                                 listen_tcp=1,
                                 listen_tls=1,
                                 spice_tls=0))
    @monkeypatch.MonkeyPatch(systemctl, 'enable', mock.Mock())
    def testLibvirtConfigureShouldEnableSockets(self):
        _setConfig(self,
                   ('LCONF', 'lconf_ssl'),
                   ('QCONF', 'qemu_ssl'),
                   )
        libvirt.configure()
        systemctl.enable.assert_has_calls([
            mock.call(libvirt._LIBVIRT_TCP_SOCKET_UNIT),
            mock.call(libvirt._LIBVIRT_TLS_SOCKET_UNIT)
        ])

    @monkeypatch.MonkeyPatch(libvirt, '_is_hugetlbfs_1g_mounted', lambda: True)
    @monkeypatch.MonkeyPatch(libvirt, '_libvirt_uses_socket_activation',
                             lambda: True)
    @monkeypatch.MonkeyPatch(systemctl, 'enable', mock.Mock())
    def testLibvirtConfigureSysconfigWithSocketActivation(self):
        _setConfig(self,
                   ('LCONF', 'lconf_ssl'),
                   ('QCONF', 'qemu_ssl'),
                   )
        libvirt.configure()

        with open(self.test_env['LDCONF']) as f:
            text = f.read()

        self.assertIn("DAEMON_COREFILE_LIMIT=unlimited\n", text)
        self.assertNotIn("LIBVIRTD_ARGS=", text)

    @monkeypatch.MonkeyPatch(libvirt, '_is_hugetlbfs_1g_mounted', lambda: True)
    @monkeypatch.MonkeyPatch(libvirt, '_libvirt_uses_socket_activation',
                             lambda: False)
    @monkeypatch.MonkeyPatch(systemctl, 'enable', mock.Mock())
    def testLibvirtConfigureSysconfigWithoutSocketActivation(self):
        _setConfig(self,
                   ('LCONF', 'lconf_ssl'),
                   ('QCONF', 'qemu_ssl'),
                   )
        libvirt.configure()

        with open(self.test_env['LDCONF']) as f:
            text = f.read()

        self.assertIn("DAEMON_COREFILE_LIMIT=unlimited\n", text)
        self.assertIn("LIBVIRTD_ARGS=--listen\n", text)

    @monkeypatch.MonkeyPatch(libvirt, '_is_hugetlbfs_1g_mounted', lambda: True)
    @monkeypatch.MonkeyPatch(libvirt, '_libvirt_uses_socket_activation',
                             lambda: False)
    def testLibvirtConfigureToSSLTrue(self):
        self.vdsm_cfg.set('vars', 'ssl', 'true')
        _setConfig(self,
                   ('LCONF', 'empty'),
                   ('QCONF', 'empty'),
                   )

        self.assertEqual(
            libvirt.isconfigured(),
            NO
        )

        libvirt.configure()

        self.assertEqual(
            libvirt.isconfigured(),
            MAYBE
        )

    @monkeypatch.MonkeyPatch(libvirt, '_is_hugetlbfs_1g_mounted', lambda: True)
    @monkeypatch.MonkeyPatch(libvirt, '_libvirt_uses_socket_activation',
                             lambda: False)
    def testLibvirtConfigureToSSLFalse(self):
        self.vdsm_cfg.set('vars', 'ssl', 'false')
        _setConfig(self,
                   ('LCONF', 'empty'),
                   ('QCONF', 'empty'),
                   )
        self.assertEqual(
            libvirt.isconfigured(),
            NO
        )

        libvirt.configure()

        self.assertEqual(
            libvirt.isconfigured(),
            MAYBE
        )

    @monkeypatch.MonkeyPatch(libvirt, '_find_libvirt_socket_units', lambda: [])
    def test_no_socket_activation_when_no_socket_units(self):
        self.assertFalse(libvirt._libvirt_uses_socket_activation())

    @monkeypatch.MonkeyPatch(libvirt, '_find_libvirt_socket_units', lambda: [
        {
            "Names": "libvirtd-tls.socket",
            "LoadState": "masked"
        }
    ])
    def test_no_socket_activation_when_socket_units_are_masked(self):
        self.assertFalse(libvirt._libvirt_uses_socket_activation())

    @monkeypatch.MonkeyPatch(libvirt, '_find_libvirt_socket_units', lambda: [
        {
            "Names": "libvirtd-tls.socket",
            "LoadState": "loaded"
        }
    ])
    def test_socket_activation_enabled(self):
        self.assertTrue(libvirt._libvirt_uses_socket_activation())

    def test_hugetlbfs_mount_false(self):
        path_to_fake_mtab = os.path.join(self.srcPath, 'tests',
                                         'toolTests_mtab_nohugetlbfs')

        self.assertFalse(libvirt._is_hugetlbfs_1g_mounted(path_to_fake_mtab))

    def test_hugetlbfs_mount_default(self):
        path_to_fake_mtab = os.path.join(self.srcPath, 'tests',
                                         'toolTests_mtab_default')

        self.assertFalse(libvirt._is_hugetlbfs_1g_mounted(path_to_fake_mtab))

    @monkeypatch.MonkeyPatch(cpuarch, 'real', lambda: cpuarch.PPC64LE)
    def test_hugetlbfs_mount_default_ppc(self):
        path_to_fake_mtab = os.path.join(self.srcPath, 'tests',
                                         'toolTests_mtab_default')

        self.assertTrue(libvirt._is_hugetlbfs_1g_mounted(path_to_fake_mtab))

    def test_hugetlbfs_mount_1g(self):
        path_to_fake_mtab = os.path.join(self.srcPath, 'tests',
                                         'toolTests_mtab_1g')

        self.assertTrue(libvirt._is_hugetlbfs_1g_mounted(path_to_fake_mtab))
Esempio n. 7
0
def image_mock(api_image_mock):
    image = mock.Mock()
    api_image_mock.return_value = image
    yield image
Esempio n. 8
0
def api_image_mock(monkeypatch):
    with monkeypatch.context() as m:
        image_mock = mock.Mock()
        m.setattr(http.API, 'Image', image_mock)
        yield image_mock