[Ceilometer] Add test for Nova disk.device.* pollsters

Added step to Ceilometer test to check disk.device.* pollsters
from Nova.

Partially implements: blueprint ceilometer-ostf-notification-tests

Change-Id: Icfcd02aaa4fcadbf295d2e3930cbe56baf97fbda
This commit is contained in:
vgusev 2015-03-16 14:41:02 +03:00 committed by tatyana-leontovich
parent 25c8738039
commit 2ddb42865c
2 changed files with 49 additions and 23 deletions

View File

@ -56,19 +56,30 @@ class CeilometerBaseTest(fuel_health.nmanager.PlatformServicesBaseClass):
cls.objects_for_delete = []
cls.nova_notifications = ['memory', 'vcpus', 'disk.root.size',
'disk.ephemeral.size']
cls.nova_pollsters = ['cpu', 'cpu_util', 'disk.read.bytes',
'disk.read.bytes.rate', 'disk.read.requests',
'disk.read.requests.rate',
'disk.write.bytes',
'disk.write.bytes.rate',
'disk.write.requests',
'disk.write.requests.rate', 'instance']
cls.nova_vsphere_pollsters = ['instance', 'memory.usage',
'cpu_util',
'disk.read.requests.rate',
'disk.write.requests.rate',
'disk.read.bytes.rate',
'disk.write.bytes.rate']
cls.nova_instance_pollsters = ['cpu', 'cpu_util',
'disk.read.bytes',
'disk.read.bytes.rate',
'disk.read.requests',
'disk.read.requests.rate',
'disk.write.bytes',
'disk.write.bytes.rate',
'disk.write.requests',
'disk.write.requests.rate',
'instance', 'memory.resident',
'disk.capacity', 'disk.allocation',
'disk.usage', 'memory.resident']
cls.nova_disk_device_pollsters = [
'disk.device.read.requests', 'disk.device.write.requests',
'disk.device.read.bytes', 'disk.device.write.bytes',
'disk.device.read.requests.rate',
'disk.device.write.requests.rate',
'disk.device.read.bytes.rate', 'disk.device.write.bytes.rate']
cls.neutron_network_notifications = ['network', 'network.create',
'network.update']
cls.neutron_subnet_notifications = ['subnet', 'subnet.create',

View File

@ -113,12 +113,13 @@ class CeilometerApiPlatformTests(ceilometermanager.CeilometerBaseTest):
1. Create an instance.
2. Wait for 'ACTIVE' status of the instance.
3. Get notifications.
4. Get pollsters.
5. Get the statistic notification:cpu_util.
6. Create an alarm for the summary statistic notification:cpu_util.
7. Wait for the alarm state to become 'alarm' or 'ok'.
4. Get instance pollsters.
5. Get disk pollsters.
6. Get the statistic notification:cpu_util.
7. Create an alarm for the summary statistic notification:cpu_util.
8. Wait for the alarm state to become 'alarm' or 'ok'.
Duration: 60 s.
Duration: 150 s.
Deployment tags: Ceilometer
"""
@ -146,25 +147,39 @@ class CeilometerApiPlatformTests(ceilometermanager.CeilometerBaseTest):
self.verify(600, self.wait_metrics, 3,
fail_msg, msg, notifications, query)
pollsters = (self.nova_pollsters
if not vcenter else self.nova_vsphere_pollsters)
pollsters.append("".join(['instance:',
self.compute_client.flavors.get(
instance.flavor['id']).name]))
fail_msg = 'Failed to get pollsters.'
msg = 'getting pollsters'
self.verify(600, self.wait_metrics, 4, fail_msg, msg, pollsters, query)
instance_pollsters = (self.nova_instance_pollsters if not vcenter
else self.nova_vsphere_pollsters)
instance_pollsters.append("".join(['instance:',
self.compute_client.flavors.get(
instance.flavor['id']).name]))
fail_msg = 'Failed to get instance pollsters.'
msg = 'getting instance pollsters'
self.verify(600, self.wait_metrics, 4, fail_msg, msg,
instance_pollsters, query)
fail_msg = 'Failed to get disk.device.* pollsters.'
msg = 'getting disk.device.* pollsters'
query_disk_device_pollsters = [{'field': 'resource', 'op': 'eq',
'value': "".join(
[instance.id, '-vda'])}]
disk_device_pollsters = (self.nova_disk_device_pollsters if not vcenter
else [])
self.verify(600, self.wait_metrics, 5,
fail_msg, msg, disk_device_pollsters,
query_disk_device_pollsters)
fail_msg = 'Failed to get statistic notification:cpu_util.'
msg = 'getting statistic notification:cpu_util'
cpu_util_stat = self.verify(60, self.wait_for_statistic_of_metric, 5,
cpu_util_stat = self.verify(60, self.wait_for_statistic_of_metric, 6,
fail_msg, msg, 'cpu_util', query)
fail_msg = ('Failed to create alarm for '
'summary statistic notification:cpu_util.')
msg = 'creating alarm for summary statistic notification:cpu_util'
threshold = cpu_util_stat[0].sum - 1
alarm = self.verify(60, self.create_alarm, 6,
alarm = self.verify(60, self.create_alarm, 7,
fail_msg, msg,
meter_name='cpu_util',
threshold=threshold,
@ -176,7 +191,7 @@ class CeilometerApiPlatformTests(ceilometermanager.CeilometerBaseTest):
fail_msg = ('Failed while waiting for '
'alarm state to become "alarm" or "ok".')
msg = 'waiting for alarm state to become "alarm" or "ok"'
self.verify(1000, self.wait_for_alarm_status, 7,
self.verify(1000, self.wait_for_alarm_status, 8,
fail_msg, msg, alarm.alarm_id)
def test_create_sample(self):