Merge "remove batch processing requirement from arithmetic transformer"

This commit is contained in:
Jenkins 2015-09-22 09:49:39 +00:00 committed by Gerrit Code Review
commit 1a6dc5f9ec
2 changed files with 8 additions and 10 deletions

View File

@ -1742,12 +1742,11 @@ class BasePipelineTestCase(base.BaseTestCase):
pipeline_manager = pipeline.PipelineManager(self.pipeline_cfg, pipeline_manager = pipeline.PipelineManager(self.pipeline_cfg,
self.transformer_manager) self.transformer_manager)
pipe = pipeline_manager.pipelines[0] pipe = pipeline_manager.pipelines[0]
for s in counters:
pipe.publish_data(None, counters) pipe.publish_data(None, s)
pipe.flush(None)
publisher = pipeline_manager.pipelines[0].publishers[0] publisher = pipeline_manager.pipelines[0].publishers[0]
expected_len = len(test_resources) * len(expected) expected_len = len(test_resources) * len(expected)
self.assertEqual(0, len(publisher.samples))
pipe.flush(None)
self.assertEqual(expected_len, len(publisher.samples)) self.assertEqual(expected_len, len(publisher.samples))
# bucket samples by resource first # bucket samples by resource first
@ -1817,7 +1816,7 @@ class BasePipelineTestCase(base.BaseTestCase):
dict(name='memory.usage', volume=512.0), dict(name='memory.usage', volume=512.0),
dict(name='memory', volume=1024.0), dict(name='memory', volume=1024.0),
] ]
expected = [50.0] expected = [25.0]
self._do_test_arithmetic(expression, scenario, expected) self._do_test_arithmetic(expression, scenario, expected)
def test_arithmetic_transformer_missing(self): def test_arithmetic_transformer_missing(self):

View File

@ -101,15 +101,14 @@ class ArithmeticTransformer(transformer.TransformerBase):
def flush(self, context): def flush(self, context):
new_samples = [] new_samples = []
cache_clean_list = []
if not self.misconfigured: if not self.misconfigured:
for resource_id in self.cache: for resource_id in self.cache:
if self._check_requirements(resource_id): if self._check_requirements(resource_id):
new_samples.append(self._calculate(resource_id)) new_samples.append(self._calculate(resource_id))
else: cache_clean_list.append(resource_id)
LOG.warn(_('Unable to perform calculation, not all of ' for res_id in cache_clean_list:
'{%s} are present'), self.cache.pop(res_id)
', '.join(self.required_meters))
self.cache.clear()
return new_samples return new_samples
@classmethod @classmethod