def _read_metadata(metric_name, path): info = whisper.info(path) if not info: return None retentions = bg_metric.Retention([ bg_metric.Stage(precision=a["secondsPerPoint"], points=a["points"]) for a in info["archives"] ]) aggregator = bg_metric.Aggregator.from_carbon_name( info["aggregationMethod"]) return bg_metric.MetricMetadata.create( aggregator=aggregator, retention=retentions, carbon_xfilesfactor=info["xFilesFactor"], )
def test_create_async(self): metric_name = "a.b.c" metric = bg_test_utils.make_metric(metric_name) self._plugin._createAsyncOrig(metric, metric_name) self.assertFalse(self._plugin.exists(metric_name)) self._plugin._createOneMetric() self.assertTrue(self._plugin.exists(metric_name)) # See if we can update. metric = bg_test_utils.make_metric( metric_name, retention=bg_metric.Retention([bg_metric.Stage(1, 1)]) ) self._plugin._createAsyncOrig(metric, metric_name) self._plugin._createOneMetric() retention = self._plugin.getMetadata(metric_name, "retention") self.assertEqual(retention, metric.metadata.retention)