Exemple #1
0
 def test_series_list_to_result_pbs_megahertz_default(self):
     result = ClusterResult(self.scenario, "fake_result",
                            "CpuUsage.Avg.Megahertz")
     timestamps, series_list = self.__fake_timestamps_and_series_list()
     result_pbs = result.series_list_to_result_pbs(series_list)
     self.assertEqual(len(result_pbs), 4)
     for node_index, result_pb in enumerate(result_pbs):
         self.assertEqual(type(result_pb), CurieTestResult)
         self.assertEqual(result_pb.data_2d.x_unit_type,
                          CurieTestResult.Data2D.kUnixTimestamp)
         self.assertEqual(result_pb.data_2d.y_unit_type,
                          CurieTestResult.Data2D.kHertz)
         self.assertIn("(Node %d)" % node_index, result_pb.name)
Exemple #2
0
 def test_series_list_to_result_pbs_bandwidth_default(self):
     result = ClusterResult(self.scenario, "fake_result",
                            "NetReceived.Avg.KilobytesPerSecond")
     timestamps, series_list = self.__fake_timestamps_and_series_list()
     result_pbs = result.series_list_to_result_pbs(series_list)
     self.assertEqual(len(result_pbs), 4)
     for node_index, result_pb in enumerate(result_pbs):
         self.assertEqual(type(result_pb), CurieTestResult)
         self.assertEqual(result_pb.data_2d.x_unit_type,
                          CurieTestResult.Data2D.kUnixTimestamp)
         self.assertEqual(result_pb.data_2d.y_unit_type,
                          CurieTestResult.Data2D.kBytesPerSecond)
         self.assertIn("(Node %d)" % node_index, result_pb.name)
Exemple #3
0
 def test_series_list_to_result_pbs_iops_bandwidth_aggregate(self):
     result = ClusterResult(self.scenario,
                            "fake_result",
                            "NetReceived.Avg.KilobytesPerSecond",
                            aggregate="sum")
     timestamps, series_list = self.__fake_timestamps_and_series_list()
     result_pbs = result.series_list_to_result_pbs(series_list)
     self.assertEqual(len(result_pbs), 1)
     for result_pb in result_pbs:
         self.assertEqual(type(result_pb), CurieTestResult)
         self.assertEqual(result_pb.data_2d.x_unit_type,
                          CurieTestResult.Data2D.kUnixTimestamp)
         self.assertEqual(result_pb.data_2d.y_unit_type,
                          CurieTestResult.Data2D.kBytesPerSecond)
         self.assertNotIn("(Node", result_pb.name)
Exemple #4
0
 def test_parse_experimental_metric(self, mock_metrics):
     mock_metrics.return_value = [
         CurieMetric(name=CurieMetric.kCpuUsage,
                     description="This is a fake experimental metric",
                     instance="Aggregated",
                     type=CurieMetric.kGauge,
                     consolidation=CurieMetric.kAvg,
                     unit=CurieMetric.kMegahertz,
                     experimental=True)
     ]
     result = ClusterResult.parse(self.scenario, "Experimental Metric", {
         "metric": "CpuUsage.Avg.Megahertz",
         "aggregate": "sum"
     })
     self.assertIsNone(result)
     self.scenario.enable_experimental_metrics = True
     result = ClusterResult.parse(self.scenario, "Experimental Metric", {
         "metric": "CpuUsage.Avg.Megahertz",
         "aggregate": "sum"
     })
     self.assertIsInstance(result, ClusterResult)
     self.assertEqual(result.metric_name, "CpuUsage.Avg.Megahertz")
Exemple #5
0
 def test_pickle_unpickle(self):
     result = ClusterResult(self.scenario, "fake_result",
                            "NetReceived.Avg.KilobytesPerSecond")
     result.metric.description = "Why would one modify the description anyway?"
     unpickled_result = pickle.loads(pickle.dumps(result))
     self.assertEqual(result.scenario, unpickled_result.scenario)
     self.assertEqual(result.name, unpickled_result.name)
     self.assertEqual(result.aggregate, unpickled_result.aggregate)
     self.assertEqual(result.report_metrics,
                      unpickled_result.report_metrics)
     self.assertEqual(result.report_group, unpickled_result.report_group)
     self.assertEqual(result.metric_name, unpickled_result.metric_name)
     self.assertEqual(result.metric, unpickled_result.metric)
     self.assertEqual(result.kwargs, unpickled_result.kwargs)
Exemple #6
0
 def test_get_result_pbs_partial(self):
     result = ClusterResult(self.scenario, "fake_result",
                            "NetReceived.Avg.KilobytesPerSecond")
     metric = CurieMetric(
         name=CurieMetric.kNetReceived,
         description="Average network data received across all "
         "interfaces.",
         instance="Aggregated",
         type=CurieMetric.kGauge,
         consolidation=CurieMetric.kAvg,
         unit=CurieMetric.kKilobytes,
         rate=CurieMetric.kPerSecond,
         experimental=True)
     ScenarioUtil.append_cluster_stats(
         {
             "169.254.0.0": [metric],
             "169.254.0.1": [metric],
             "169.254.0.2": [],
             "169.254.0.3": [],
         }, self.scenario.cluster_stats_dir())
     pbs = result.get_result_pbs()
     self.assertEqual(2, len(pbs))
     self.assertIsInstance(pbs[0], CurieTestResult)
     self.assertIsInstance(pbs[1], CurieTestResult)
Exemple #7
0
    def test_scenario_results_update_no_netstats_ahv(self, mock_w_and_r,
                                                     mock_stc, mock_log):
        result = ClusterResult.parse(
            self.scenario, "Cluster Network Bandwidth", {
                "metric": "NetReceived.Avg.KilobytesPerSecond",
                "aggregate": "sum"
            })
        result.get_result_pbs = mock.Mock()
        mock_stc.return_value = ["targets"]
        self.scenario.cluster = mock.Mock(spec=AcropolisCluster)
        self.scenario.phase = Phase.RUN
        self.scenario.results_map = {"Cluster Network Bandwidth": result}
        self.scenario._scenario_results_update("/fake/directory/targets.json")

        mock_log.debug.assert_has_calls([
            mock.call("Skipping result update since AHV API "
                      "does not return valid results for network statistics")
        ])
        result.get_result_pbs.assert_not_called()
Exemple #8
0
 def test_get_metric_not_exist(self):
     with self.assertRaises(CurieTestException) as ar:
         ClusterResult.get_metric("not_a_real_metric")
     self.assertEqual(
         "'not_a_real_metric' is not supported - is not collected "
         "or does not exist", str(ar.exception))
Exemple #9
0
 def test_get_metric_cpu_average_megahertz(self):
     metric = ClusterResult.get_metric("CpuUsage.Avg.Megahertz")
     self.assertEqual(CurieMetric.kCpuUsage, metric.name)
     self.assertEqual(CurieMetric.kAvg, metric.consolidation)
     self.assertEqual(CurieMetric.kMegahertz, metric.unit)
Exemple #10
0
 def test_construct_unsupported_metric(self):
     with self.assertRaises(CurieTestException):
         ClusterResult(self.scenario, "fake_result",
                       "DatastoreWrite.Avg.KilobytesPerSecond")
Exemple #11
0
 def test_construct_invalid_metric_name(self):
     with self.assertRaises(CurieTestException):
         ClusterResult(self.scenario, "fake_result", "invalid_metric_name")
Exemple #12
0
 def test_get_result_pbs_before_append(self):
     result = ClusterResult(self.scenario, "fake_result",
                            "NetReceived.Avg.KilobytesPerSecond")
     pbs = result.get_result_pbs()
     self.assertEqual(0, len(pbs))