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)
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
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
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()
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()
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))
def image_mock(api_image_mock): image = mock.Mock() api_image_mock.return_value = image yield image
def api_image_mock(monkeypatch): with monkeypatch.context() as m: image_mock = mock.Mock() m.setattr(http.API, 'Image', image_mock) yield image_mock