예제 #1
0
 def test_vm_metrics_no_phyp_data(self):
     self.assertEqual({}, pvm_t_mon.vm_metrics(None, [], None))
예제 #2
0
    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)
예제 #3
0
    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)
예제 #4
0
 def test_vm_metrics_no_phyp_data(self):
     self.assertEqual({}, pvm_t_mon.vm_metrics(None, []))
예제 #5
0
    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)