2
2
# Copyright 2012 eNovance <licensing@enovance.com>
3
3
# Copyright 2012 Red Hat, Inc
4
4
# Copyright 2014 Cisco Systems, Inc
6
# Author: Julien Danjou <julien@danjou.info>
7
# Author: Eoghan Glynn <eglynn@redhat.com>
8
# Author: Pradeep Kilambi <pkilambi@cisco.com>
10
6
# Licensed under the Apache License, Version 2.0 (the "License"); you may
11
7
# not use this file except in compliance with the License. You may obtain
273
269
self._check_per_device_samples(disk.PerDeviceWriteRequestsRatePollster,
274
270
'disk.device.write.requests.rate', 800L,
274
class TestDiskLatencyPollsters(TestBaseDiskIO):
277
(virt_inspector.Disk(device='disk1'),
278
virt_inspector.DiskLatencyStats(1000)),
280
(virt_inspector.Disk(device='disk2'),
281
virt_inspector.DiskLatencyStats(2000))
286
super(TestDiskLatencyPollsters, self).setUp()
287
self.inspector.inspect_disk_latency = mock.Mock(
288
return_value=self.DISKS)
290
@mock.patch('ceilometer.pipeline.setup_pipeline', mock.MagicMock())
291
def _check_get_samples(self, factory, sample_name,
295
mgr = manager.AgentManager()
297
samples = list(pollster.get_samples(mgr, cache, self.instance))
298
self.assertIsNotNone(samples)
299
self.assertIsNotEmpty(samples)
300
self.assertIn(pollster.CACHE_KEY_DISK_LATENCY, cache)
301
for instance in self.instance:
302
self.assertIn(instance.id, cache[pollster.CACHE_KEY_DISK_LATENCY])
304
self.assertEqual(set([sample_name]), set([s.name for s in samples]))
306
match = [s for s in samples if s.name == sample_name]
307
self.assertEqual(expected_count, len(match),
308
'missing counter %s' % sample_name)
311
def test_disk_latency(self):
312
self._check_aggregate_samples(disk.DiskLatencyPollster,
315
def test_per_device_latency(self):
316
self._check_per_device_samples(disk.PerDeviceDiskLatencyPollster,
317
'disk.device.latency', 1, 'disk1')
319
self._check_per_device_samples(disk.PerDeviceDiskLatencyPollster,
320
'disk.device.latency', 2, 'disk2')