Reduce code duplication

Reduced source code by extracting duplicated code
(measurements: http://openqa.sed.hu/dashboard/index/88?did=2)

Change-Id: I62e68ab717d6c408b5e935e0866b7a5229b213bc
This commit is contained in:
Béla Vancsics 2016-07-20 08:57:22 +02:00
parent 79dff805bb
commit a8ea36090a
2 changed files with 23 additions and 27 deletions

View File

@ -18,6 +18,7 @@ from oslo_utils import timeutils
import six
from ceilometer.agent import plugin_base
from ceilometer.compute.pollsters import util
from ceilometer.compute.virt import inspector as virt_inspector
@ -75,3 +76,18 @@ class BaseComputePollster(plugin_base.PollsterBase):
current_time)
self._last_poll_time = current_time
return duration
@staticmethod
def _get_samples_per_devices(attribute, instance, _name, _type, _unit):
samples = []
for disk, value in six.iteritems(attribute):
samples.append(util.make_sample_from_instance(
instance,
name=_name,
type=_type,
unit=_unit,
volume=value,
resource_id="%s-%s" % (instance.id, disk),
additional_metadata={'disk_name': disk},
))
return samples

View File

@ -130,21 +130,11 @@ class _Base(pollsters.BaseComputePollster):
'device': c_data.per_disk_requests[_metadata].keys()},
)]
@staticmethod
def _get_samples_per_device(c_data, _attr, instance, _name, _unit):
def _get_samples_per_device(self, c_data, _attr, instance, _name, _unit):
"""Return one or more Samples for meter 'disk.device.*'"""
samples = []
for disk, value in six.iteritems(c_data.per_disk_requests[_attr]):
samples.append(util.make_sample_from_instance(
instance,
name=_name,
type=sample.TYPE_CUMULATIVE,
unit=_unit,
volume=value,
resource_id="%s-%s" % (instance.id, disk),
additional_metadata={'disk_name': disk},
))
return samples
return self._get_samples_per_devices(c_data.per_disk_requests[_attr],
instance, _name,
sample.TYPE_CUMULATIVE, _unit)
def get_samples(self, manager, cache, resources):
for instance in resources:
@ -318,19 +308,9 @@ class _DiskRatesPollsterBase(pollsters.BaseComputePollster):
def _get_samples_per_device(self, disk_rates_info, _attr, instance,
_name, _unit):
"""Return one or more Samples for meter 'disk.device.*'."""
samples = []
for disk, value in six.iteritems(disk_rates_info.per_disk_rate[
_attr]):
samples.append(util.make_sample_from_instance(
instance,
name=_name,
type=sample.TYPE_GAUGE,
unit=_unit,
volume=value,
resource_id="%s-%s" % (instance.id, disk),
additional_metadata={'disk_name': disk},
))
return samples
return self._get_samples_per_devices(
disk_rates_info.per_disk_rate[_attr],
instance, _name, sample.TYPE_GAUGE, _unit)
def _get_sample_read_and_write(self, instance, _name, _unit, _element,
_attr1, _attr2):