def test_memory_warn(self, mock_list, mock_mem, mock_disks): mock_disks.return_value = HardwareData.DISK_SIZE_MAP mock_mem.return_value = HardwareData.MEMINFO_WARN mock_list.return_value = CephDisksData.DISK_LIST_OK result = PerfScale.check_osd_node_ram() regexp = 'Host RAM\(.*\) violates \d+ GiB per TiB of data disk\(.*\)' \ ' guideline.' self.assertRegexpMatches(str(result), regexp) self.assertEqual(result.value, Severity.warn)
def test_memory_unknown_error(self, mock_list, mock_mem, mock_disks): mock_disks.side_effect = ShellCommandException( "Failed to run command 'fdisk -l'") mock_mem.return_value = HardwareData.MEMINFO_WARN mock_list.return_value = CephDisksData.DISK_LIST_OK result = PerfScale.check_osd_node_ram() regexp = "Probe error: Failed to run command 'fdisk -l'" self.assertEqual(str(result), regexp) self.assertEqual(result.value, Severity.unknown)
def test_shared_vcp_nic_ok(self, mock_nics, mock_bind): mock_bind.return_value = CephLmConfigData.BIND_IPS mock_nics.return_value = HardwareData.CEPH_SHARED_NIC_OK_VCP result = PerfScale.check_nic_speed() self.assertEqual(len(result), len(CephLmConfigData.BIND_IPS)) for entry in result: regexp = 'NIC speed monitoring is not supported on this host' self.assertRegexpMatches(str(entry), regexp) self.assertEqual(entry.value, Severity.ok)
def test_memory_ceph_error(self, mock_list, mock_mem, mock_disks): mock_disks.return_value = HardwareData.DISK_SIZE_MAP mock_mem.return_value = HardwareData.MEMINFO_WARN mock_list.side_effect = \ CephCommandException("Failed to run command 'ceph-disk list'") result = PerfScale.check_osd_node_ram() regexp = "Probe error: Failed to run command 'ceph-disk list'" self.assertEqual(str(result), regexp) self.assertEqual(result.value, Severity.unknown)
def test_shared_nic_external_net_warn(self, mock_nics, mock_bind): mock_bind.return_value = CephLmConfigData.BIND_IPS mock_nics.return_value = HardwareData.CEPH_SHARED_EXTERNAL_NET result = PerfScale.check_nic_speed() self.assertEqual(len(result), len(CephLmConfigData.BIND_IPS)) for entry in result: regexp = 'WARN: Ceph and non-ceph networks detected' \ ' on same physical NIC' self.assertRegexpMatches(str(entry), regexp) self.assertEqual(entry.value, Severity.warn)
def test_shared_nic_speed_warn(self, mock_nics, mock_bind): mock_bind.return_value = CephLmConfigData.BIND_IPS mock_nics.return_value = HardwareData.CEPH_SHARED_NIC_WARN result = PerfScale.check_nic_speed() self.assertEqual(len(result), len(CephLmConfigData.BIND_IPS)) for entry in result: regexp = 'Logical NIC (.*) with ip (.*) violates' \ ' recommended minimum speed of (.*) Mb/s' self.assertRegexpMatches(str(entry), regexp) self.assertEqual(entry.value, Severity.warn)
def test_dedicated_nic_speed_ok(self, mock_nics, mock_bind): mock_bind.return_value = CephLmConfigData.BIND_IPS mock_nics.return_value = HardwareData.CEPH_DEDICATED_NIC_OK result = PerfScale.check_nic_speed() self.assertEqual(len(result), len(CephLmConfigData.BIND_IPS)) for entry in result: regexp = 'Logical NIC (.*) with ip (.*) supports' \ ' recommended minimum speed of (.*) Mb/s' self.assertRegexpMatches(str(entry), regexp) self.assertEqual(entry.value, Severity.ok)