[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.objects_for_delete = []
cls.nova_notifications = ['memory', 'vcpus', 'disk.root.size', cls.nova_notifications = ['memory', 'vcpus', 'disk.root.size',
'disk.ephemeral.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', cls.nova_vsphere_pollsters = ['instance', 'memory.usage',
'cpu_util', 'cpu_util',
'disk.read.requests.rate', 'disk.read.requests.rate',
'disk.write.requests.rate', 'disk.write.requests.rate',
'disk.read.bytes.rate', 'disk.read.bytes.rate',
'disk.write.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', cls.neutron_network_notifications = ['network', 'network.create',
'network.update'] 'network.update']
cls.neutron_subnet_notifications = ['subnet', 'subnet.create', cls.neutron_subnet_notifications = ['subnet', 'subnet.create',

View File

@ -113,12 +113,13 @@ class CeilometerApiPlatformTests(ceilometermanager.CeilometerBaseTest):
1. Create an instance. 1. Create an instance.
2. Wait for 'ACTIVE' status of the instance. 2. Wait for 'ACTIVE' status of the instance.
3. Get notifications. 3. Get notifications.
4. Get pollsters. 4. Get instance pollsters.
5. Get the statistic notification:cpu_util. 5. Get disk pollsters.
6. Create an alarm for the summary statistic notification:cpu_util. 6. Get the statistic notification:cpu_util.
7. Wait for the alarm state to become 'alarm' or 'ok'. 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 Deployment tags: Ceilometer
""" """
@ -146,25 +147,39 @@ class CeilometerApiPlatformTests(ceilometermanager.CeilometerBaseTest):
self.verify(600, self.wait_metrics, 3, self.verify(600, self.wait_metrics, 3,
fail_msg, msg, notifications, query) fail_msg, msg, notifications, query)
pollsters = (self.nova_pollsters instance_pollsters = (self.nova_instance_pollsters if not vcenter
if not vcenter else self.nova_vsphere_pollsters) else self.nova_vsphere_pollsters)
pollsters.append("".join(['instance:', instance_pollsters.append("".join(['instance:',
self.compute_client.flavors.get( self.compute_client.flavors.get(
instance.flavor['id']).name])) instance.flavor['id']).name]))
fail_msg = 'Failed to get pollsters.' fail_msg = 'Failed to get instance pollsters.'
msg = 'getting pollsters' msg = 'getting instance pollsters'
self.verify(600, self.wait_metrics, 4, fail_msg, msg, pollsters, query) 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.' fail_msg = 'Failed to get statistic notification:cpu_util.'
msg = 'getting 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, msg, 'cpu_util', query)
fail_msg = ('Failed to create alarm for ' fail_msg = ('Failed to create alarm for '
'summary statistic notification:cpu_util.') 'summary statistic notification:cpu_util.')
msg = 'creating alarm for summary statistic notification:cpu_util' msg = 'creating alarm for summary statistic notification:cpu_util'
threshold = cpu_util_stat[0].sum - 1 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, fail_msg, msg,
meter_name='cpu_util', meter_name='cpu_util',
threshold=threshold, threshold=threshold,
@ -176,7 +191,7 @@ class CeilometerApiPlatformTests(ceilometermanager.CeilometerBaseTest):
fail_msg = ('Failed while waiting for ' fail_msg = ('Failed while waiting for '
'alarm state to become "alarm" or "ok".') 'alarm state to become "alarm" or "ok".')
msg = '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) fail_msg, msg, alarm.alarm_id)
def test_create_sample(self): def test_create_sample(self):