def test_baseline_cpu_not_supported(self): # Handle just the NO_SUPPORT error not_supported_exc = fakelibvirt.make_libvirtError( fakelibvirt.libvirtError, 'this function is not supported by the connection driver:' ' virConnectBaselineCPU', error_code=fakelibvirt.VIR_ERR_NO_SUPPORT) with mock.patch.object(fakelibvirt.virConnect, 'baselineCPU', side_effect=not_supported_exc): caps = self.host.get_capabilities() self.assertEqual(vconfig.LibvirtConfigCaps, type(caps)) self.assertNotIn('aes', [x.name for x in caps.host.cpu.features]) # Clear cached result so we can test again... self.host._caps = None # Other errors should not be caught other_exc = fakelibvirt.make_libvirtError( fakelibvirt.libvirtError, 'other exc', error_code=fakelibvirt.VIR_ERR_NO_DOMAIN) with mock.patch.object(fakelibvirt.virConnect, 'baselineCPU', side_effect=other_exc): self.assertRaises(fakelibvirt.libvirtError, self.host.get_capabilities)
def test_baseline_cpu_not_supported(self): # Handle just the NO_SUPPORT error not_supported_exc = fakelibvirt.make_libvirtError( fakelibvirt.libvirtError, 'this function is not supported by the connection driver:' ' virConnectBaselineCPU', error_code=fakelibvirt.VIR_ERR_NO_SUPPORT) with mock.patch.object(fakelibvirt.virConnect, 'baselineCPU', side_effect=not_supported_exc): caps = self.host.get_capabilities() self.assertEqual(vconfig.LibvirtConfigCaps, type(caps)) self.assertNotIn('aes', [x.name for x in caps.host.cpu.features]) # Clear cached result so we can test again... self.host._caps = None # Other errors should not be caught other_exc = fakelibvirt.make_libvirtError( fakelibvirt.libvirtError, 'other exc', error_code=fakelibvirt.VIR_ERR_NO_DOMAIN) with mock.patch.object(fakelibvirt.virConnect, 'baselineCPU', side_effect=other_exc): self.assertRaises(fakelibvirt.libvirtError, self.host.get_capabilities)
def test_job_info_no_support(self, mock_stats, mock_info): mock_stats.side_effect = fakelibvirt.make_libvirtError( fakelibvirt.libvirtError, "virDomainGetJobStats not implemented", fakelibvirt.VIR_ERR_NO_SUPPORT) mock_info.return_value = [ fakelibvirt.VIR_DOMAIN_JOB_UNBOUNDED, 100, 99, 10, 11, 12, 75, 50, 33, 1, 2, 3 ] info = host.DomainJobInfo.for_domain(self.dom) self.assertIsInstance(info, host.DomainJobInfo) self.assertEqual(fakelibvirt.VIR_DOMAIN_JOB_UNBOUNDED, info.type) self.assertEqual(100, info.time_elapsed) self.assertEqual(99, info.time_remaining) self.assertEqual(10, info.data_total) self.assertEqual(11, info.data_processed) self.assertEqual(12, info.data_remaining) self.assertEqual(75, info.memory_total) self.assertEqual(50, info.memory_processed) self.assertEqual(33, info.memory_remaining) self.assertEqual(1, info.disk_total) self.assertEqual(2, info.disk_processed) self.assertEqual(3, info.disk_remaining) mock_stats.assert_called_once_with() mock_info.assert_called_once_with()
def test_job_info_no_support(self, mock_stats, mock_info): mock_stats.side_effect = fakelibvirt.make_libvirtError( fakelibvirt.libvirtError, "virDomainGetJobStats not implemented", fakelibvirt.VIR_ERR_NO_SUPPORT) mock_info.return_value = [ fakelibvirt.VIR_DOMAIN_JOB_UNBOUNDED, 100, 99, 10, 11, 12, 75, 50, 33, 1, 2, 3] info = host.DomainJobInfo.for_domain(self.dom) self.assertIsInstance(info, host.DomainJobInfo) self.assertEqual(fakelibvirt.VIR_DOMAIN_JOB_UNBOUNDED, info.type) self.assertEqual(100, info.time_elapsed) self.assertEqual(99, info.time_remaining) self.assertEqual(10, info.data_total) self.assertEqual(11, info.data_processed) self.assertEqual(12, info.data_remaining) self.assertEqual(75, info.memory_total) self.assertEqual(50, info.memory_processed) self.assertEqual(33, info.memory_remaining) self.assertEqual(1, info.disk_total) self.assertEqual(2, info.disk_processed) self.assertEqual(3, info.disk_remaining) mock_stats.assert_called_once_with() mock_info.assert_called_once_with()
def test_get_domain_by_name_raises(self, fake_lookup): fake_lookup.side_effect = fakelibvirt.make_libvirtError( fakelibvirt.libvirtError, 'Domain not found: no domain with matching name', error_code=fakelibvirt.VIR_ERR_NO_DOMAIN, error_domain=fakelibvirt.VIR_FROM_QEMU) self.assertRaises(exception.InstanceNotFound, self.host._get_domain_by_name, "wibble") fake_lookup.assert_called_once_with("wibble")
def test_job_info_operation_invalid(self, mock_stats, mock_info): mock_stats.side_effect = fakelibvirt.make_libvirtError( fakelibvirt.libvirtError, "virDomainGetJobStats not implemented", fakelibvirt.VIR_ERR_NO_SUPPORT) mock_info.side_effect = fakelibvirt.make_libvirtError( fakelibvirt.libvirtError, "Domain is not running", fakelibvirt.VIR_ERR_OPERATION_INVALID) info = host.DomainJobInfo.for_domain(self.dom) self.assertIsInstance(info, host.DomainJobInfo) self.assertEqual(fakelibvirt.VIR_DOMAIN_JOB_COMPLETED, info.type) self.assertEqual(0, info.time_elapsed) self.assertEqual(0, info.time_remaining) self.assertEqual(0, info.memory_total) self.assertEqual(0, info.memory_processed) self.assertEqual(0, info.memory_remaining) mock_stats.assert_called_once_with() mock_info.assert_called_once_with()
def test_job_info_no_domain(self, mock_stats, mock_info): mock_stats.side_effect = fakelibvirt.make_libvirtError( fakelibvirt.libvirtError, "virDomainGetJobStats not implemented", fakelibvirt.VIR_ERR_NO_SUPPORT) mock_info.side_effect = fakelibvirt.make_libvirtError( fakelibvirt.libvirtError, "No such domain with UUID blah", fakelibvirt.VIR_ERR_NO_DOMAIN) info = host.DomainJobInfo.for_domain(self.dom) self.assertIsInstance(info, host.DomainJobInfo) self.assertEqual(fakelibvirt.VIR_DOMAIN_JOB_COMPLETED, info.type) self.assertEqual(0, info.time_elapsed) self.assertEqual(0, info.time_remaining) self.assertEqual(0, info.memory_total) self.assertEqual(0, info.memory_processed) self.assertEqual(0, info.memory_remaining) mock_stats.assert_called_once_with() mock_info.assert_called_once_with()
def test_get_domain_by_name_raises(self, fake_lookup): fake_lookup.side_effect = fakelibvirt.make_libvirtError( fakelibvirt.libvirtError, 'Domain not found: no domain with matching name', error_code=fakelibvirt.VIR_ERR_NO_DOMAIN, error_domain=fakelibvirt.VIR_FROM_QEMU) self.assertRaises(exception.InstanceNotFound, self.host._get_domain_by_name, "wibble") fake_lookup.assert_called_once_with("wibble")
def test_job_info_operation_invalid(self, mock_stats, mock_info): mock_stats.side_effect = fakelibvirt.make_libvirtError( fakelibvirt.libvirtError, "virDomainGetJobStats not implemented", fakelibvirt.VIR_ERR_NO_SUPPORT) mock_info.side_effect = fakelibvirt.make_libvirtError( fakelibvirt.libvirtError, "Domain is not running", fakelibvirt.VIR_ERR_OPERATION_INVALID) info = host.DomainJobInfo.for_domain(self.dom) self.assertIsInstance(info, host.DomainJobInfo) self.assertEqual(fakelibvirt.VIR_DOMAIN_JOB_COMPLETED, info.type) self.assertEqual(0, info.time_elapsed) self.assertEqual(0, info.time_remaining) self.assertEqual(0, info.memory_total) self.assertEqual(0, info.memory_processed) self.assertEqual(0, info.memory_remaining) mock_stats.assert_called_once_with() mock_info.assert_called_once_with()
def test_job_info_no_domain(self, mock_stats, mock_info): mock_stats.side_effect = fakelibvirt.make_libvirtError( fakelibvirt.libvirtError, "virDomainGetJobStats not implemented", fakelibvirt.VIR_ERR_NO_SUPPORT) mock_info.side_effect = fakelibvirt.make_libvirtError( fakelibvirt.libvirtError, "No such domain with UUID blah", fakelibvirt.VIR_ERR_NO_DOMAIN) info = host.DomainJobInfo.for_domain(self.dom) self.assertIsInstance(info, host.DomainJobInfo) self.assertEqual(fakelibvirt.VIR_DOMAIN_JOB_COMPLETED, info.type) self.assertEqual(0, info.time_elapsed) self.assertEqual(0, info.time_remaining) self.assertEqual(0, info.memory_total) self.assertEqual(0, info.memory_processed) self.assertEqual(0, info.memory_remaining) mock_stats.assert_called_once_with() mock_info.assert_called_once_with()
def test_broken_connection(self, mock_ver): for (error, domain) in ((fakelibvirt.VIR_ERR_SYSTEM_ERROR, fakelibvirt.VIR_FROM_REMOTE), (fakelibvirt.VIR_ERR_SYSTEM_ERROR, fakelibvirt.VIR_FROM_RPC), (fakelibvirt.VIR_ERR_INTERNAL_ERROR, fakelibvirt.VIR_FROM_RPC)): conn = self.host._connect("qemu:///system", False) mock_ver.side_effect = fakelibvirt.make_libvirtError( fakelibvirt.libvirtError, "Connection broken", error_code=error, error_domain=domain) self.assertFalse(self.host._test_connection(conn))
def test_broken_connection(self, mock_ver): for (error, domain) in ( (fakelibvirt.VIR_ERR_SYSTEM_ERROR, fakelibvirt.VIR_FROM_REMOTE), (fakelibvirt.VIR_ERR_SYSTEM_ERROR, fakelibvirt.VIR_FROM_RPC), (fakelibvirt.VIR_ERR_INTERNAL_ERROR, fakelibvirt.VIR_FROM_RPC)): conn = self.host._connect("qemu:///system", False) mock_ver.side_effect = fakelibvirt.make_libvirtError( fakelibvirt.libvirtError, "Connection broken", error_code=error, error_domain=domain) self.assertFalse(self.host._test_connection(conn))
def test_get_domain_info(self, mock_has_min_version): test_host = host.Host("qemu:///system") domain = mock.MagicMock() expected = [power_state.RUNNING, 512, 512, None, None] race = fakelibvirt.make_libvirtError( fakelibvirt.libvirtError, 'ERR', error_code=fakelibvirt.VIR_ERR_OPERATION_FAILED, error_message='cannot read cputime for domain') mock_has_min_version.return_value = True domain.info.return_value = expected actual = compat.get_domain_info(fakelibvirt, test_host, domain) self.assertEqual(actual, expected) self.assertEqual(domain.info.call_count, 1) domain.info.reset_mock() domain.info.side_effect = race self.assertRaises(fakelibvirt.libvirtError, compat.get_domain_info, fakelibvirt, test_host, domain) self.assertEqual(domain.info.call_count, 1) domain.info.reset_mock() mock_has_min_version.return_value = False domain.info.side_effect = [race, expected] actual = compat.get_domain_info(fakelibvirt, test_host, domain) self.assertEqual(actual, expected) self.assertEqual(domain.info.call_count, 2) domain.info.reset_mock() domain.info.side_effect = race self.assertRaises(fakelibvirt.libvirtError, compat.get_domain_info, fakelibvirt, test_host, domain) self.assertEqual(domain.info.call_count, 2)
def fake_list_all(flags): ex = fakelibvirt.make_libvirtError( fakelibvirt.libvirtError, "API is not supported", error_code=fakelibvirt.VIR_ERR_NO_SUPPORT) raise ex
def fake_list_all(flags): ex = fakelibvirt.make_libvirtError( fakelibvirt.libvirtError, "API is not supported", error_code=fakelibvirt.VIR_ERR_NO_SUPPORT) raise ex