def test_vm_metrics_no_phyp_data(self): self.assertEqual({}, pvm_t_mon.vm_metrics(None, [], None))
def test_parse_to_vm_metrics(self): """Verifies the parsing to LPAR metrics.""" phyp_resp = self._load(PHYP_DATA) phyp_data = pvm_mon_phyp.PhypInfo(phyp_resp) vios_resp = self._load(VIOS_DATA) vios_data = pvm_mon_vios.ViosInfo(vios_resp) lpar_resp = self._load(LPAR_DATA) lpar_data = pvm_mon_lpar.LparInfo(lpar_resp) metrics = pvm_t_mon.vm_metrics(phyp_data, [vios_data], lpar_data) self.assertIsNotNone(metrics) # In the test data, there are 5 LPARs total. self.assertEqual(5, len(metrics.keys())) # Validate a metric with live data good_vm = '42AD4FD4-DC64-4935-9E29-9B7C6F35AFCC' metric = metrics.get(good_vm) self.assertIsNotNone(metric) self.assertIsNotNone(metric.network) self.assertIsNotNone(metric.storage) self.assertIsNotNone(metric.processor) self.assertIsNotNone(metric.memory) # Memory validation self.assertEqual(20480, metric.memory.logical_mem) self.assertEqual(20480, metric.memory.backed_physical_mem) self.assertEqual(61, metric.memory.pct_real_mem_free) self.assertEqual(25, metric.memory.vm_pg_out_rate) # Processor validation self.assertEqual(0, metric.processor.pool_id) self.assertEqual('uncap', metric.processor.mode) self.assertEqual(4, metric.processor.virt_procs) self.assertEqual(.4, metric.processor.proc_units) # Network validation self.assertEqual(1, len(metric.network.cnas)) cna = metric.network.cnas[0] self.assertEqual(2227, cna.vlan_id) self.assertEqual(0, cna.vswitch_id) self.assertEqual('U8247.22L.2125D4A-V2-C2', cna.physical_location) self.assertEqual(10, cna.received_packets) self.assertEqual(100, cna.sent_packets) self.assertEqual(5, cna.dropped_packets) self.assertEqual(100, cna.sent_bytes) self.assertEqual(10000, cna.received_bytes) # Storage validation self.assertEqual(1, len(metric.storage.virt_adpts)) self.assertEqual(0, len(metric.storage.vfc_adpts)) vadpt = metric.storage.virt_adpts[0] self.assertEqual('virtual', vadpt.type) self.assertEqual('vhost0', vadpt.name) self.assertEqual('U8247.22L.2125D4A-V1-C1000', vadpt.physical_location) self.assertEqual(1074, vadpt.num_reads) self.assertEqual(1075, vadpt.num_writes) self.assertEqual(549888, vadpt.read_bytes) self.assertEqual(550400, vadpt.write_bytes) # Validate a metric for a system that was powered off. bad_vm = '3B0237F9-26F1-41C7-BE57-A08C9452AD9D' metric = metrics.get(bad_vm) self.assertIsNotNone(metric) self.assertIsNotNone(metric.processor) self.assertIsNotNone(metric.memory) # For powered off VM, the free memory is 100 percent. self.assertEqual(100, metric.memory.pct_real_mem_free) # For powered off VM, the page in/out rate is 0. self.assertEqual(0, metric.memory.vm_pg_out_rate) self.assertIsNone(metric.storage) self.assertIsNone(metric.network) # Take a VM which has entry in phyp data but not in PCM Lpar data. # Assert that it has been correctly parsed and memory metrics # are set to default values. vm_in_phyp_not_in_lpar_pcm = '66A2E886-D05D-42F4-87E0-C3BA02CF7C7E' metric = metrics.get(vm_in_phyp_not_in_lpar_pcm) self.assertIsNotNone(metric) self.assertIsNotNone(metric.processor) self.assertIsNotNone(metric.memory) self.assertEqual(.2, metric.processor.proc_units) self.assertEqual(0, metric.memory.pct_real_mem_free) self.assertEqual(-1, metric.memory.vm_pg_in_rate)
def test_parse_to_vm_metrics(self): """Verifies the parsing to LPAR metrics.""" phyp_resp = self._load(PHYP_DATA) phyp_data = pvm_mon_phyp.PhypInfo(phyp_resp) vios_resp = self._load(VIOS_DATA) vios_data = pvm_mon_vios.ViosInfo(vios_resp) metrics = pvm_t_mon.vm_metrics(phyp_data, [vios_data]) self.assertIsNotNone(metrics) # In the test data, there are 5 LPARs total. self.assertEqual(5, len(metrics.keys())) # Validate a metric with live data good_vm = '42AD4FD4-DC64-4935-9E29-9B7C6F35AFCC' metric = metrics.get(good_vm) self.assertIsNotNone(metric) self.assertIsNotNone(metric.network) self.assertIsNotNone(metric.storage) self.assertIsNotNone(metric.processor) self.assertIsNotNone(metric.memory) # Memory validation self.assertEqual(20480, metric.memory.logical_mem) self.assertEqual(20480, metric.memory.backed_physical_mem) # Processor validation self.assertEqual(0, metric.processor.pool_id) self.assertEqual('uncap', metric.processor.mode) self.assertEqual(4, metric.processor.virt_procs) self.assertEqual(.4, metric.processor.proc_units) # Network validation self.assertEqual(1, len(metric.network.cnas)) cna = metric.network.cnas[0] self.assertEqual(2227, cna.vlan_id) self.assertEqual(0, cna.vswitch_id) self.assertEqual('U8247.22L.2125D4A-V2-C2', cna.physical_location) self.assertEqual(10, cna.received_packets) self.assertEqual(100, cna.sent_packets) self.assertEqual(5, cna.dropped_packets) self.assertEqual(100, cna.sent_bytes) self.assertEqual(10000, cna.received_bytes) # Storage validation self.assertEqual(1, len(metric.storage.virt_adpts)) self.assertEqual(0, len(metric.storage.vfc_adpts)) vadpt = metric.storage.virt_adpts[0] self.assertEqual('virtual', vadpt.type) self.assertEqual('vhost0', vadpt.name) self.assertEqual('U8247.22L.2125D4A-V1-C1000', vadpt.physical_location) self.assertEqual(1074, vadpt.num_reads) self.assertEqual(1075, vadpt.num_writes) self.assertEqual(549888, vadpt.read_bytes) self.assertEqual(550400, vadpt.write_bytes) # Validate a metric for a system that was powered off. bad_vm = '3B0237F9-26F1-41C7-BE57-A08C9452AD9D' metric = metrics.get(bad_vm) self.assertIsNotNone(metric) self.assertIsNotNone(metric.processor) self.assertIsNotNone(metric.memory) self.assertIsNone(metric.storage) self.assertIsNone(metric.network)
def test_vm_metrics_no_phyp_data(self): self.assertEqual({}, pvm_t_mon.vm_metrics(None, []))