Skip to content

Commit

Permalink
Merge "Adding ceilometer tests for sanity" into R2.20
Browse files Browse the repository at this point in the history
  • Loading branch information
Zuul authored and opencontrail-ci-admin committed Jul 7, 2015
2 parents a85155b + f592c63 commit fffb5d6
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 3 deletions.
2 changes: 2 additions & 0 deletions common/contrail_test_init.py
Expand Up @@ -106,6 +106,8 @@ def __init__(
'Basic', 'auth_port', None)
self.multi_tenancy = read_config_option(self.config,
'Basic', 'multiTenancy', False)
self.enable_ceilometer = read_config_option(self.config,
'Basic', 'enable_ceilometer', False)
# Possible af values 'v4', 'v6' or 'dual'
# address_family = read_config_option(self.config,
# 'Basic', 'AddressFamily', 'dual')
Expand Down
6 changes: 5 additions & 1 deletion scripts/ceilometer_tests/base.py
Expand Up @@ -11,6 +11,10 @@ class CeilometerBaseTest(test.BaseTestCase):
@classmethod
def setUpClass(cls):
super(CeilometerBaseTest, cls).setUpClass()
if not cls.inputs.enable_ceilometer:
inst = cls()
raise inst.skipTest(
"Skipping Test.Ceilometer not enabled in the setup")
cls.isolated_creds = isolated_creds.IsolatedCreds(cls.__name__, cls.inputs, ini_file = cls.ini_file, logger = cls.logger)
cls.isolated_creds.setUp()
cls.project = cls.isolated_creds.create_tenant()
Expand Down Expand Up @@ -116,7 +120,7 @@ def setup_common_objects(self, inputs , connections):

self.vm1_fixture.wait_till_vm_up()
assert self.vm1_fixture.ping_with_certainty('8.8.8.8')
assert self.vm1_fixture.ping_to_ip('8.8.8.8',count = '100')
assert self.vm1_fixture.ping_to_ip('8.8.8.8',count = '10')
# Removing further projects from floating IP pool. For cleanup
self.logger.info('Removing project %s to FIP pool %s' %
(self.inputs.project_name, fip_pool_name))
Expand Down
74 changes: 72 additions & 2 deletions scripts/ceilometer_tests/test_ceilometer.py
Expand Up @@ -39,8 +39,8 @@ def runTest(self):
# end runTest

@preposttest_wrapper
def test_meters(self):
"""Verifying ceilometer meters"""
def test_resources_by_admin_tenant(self):
"""Verifying ceilometer resources - admin tenant"""
tenant_id = self.auth.get_project_id('default_domain',
'admin')
tenant_id = "".join(tenant_id.split('-'))
Expand All @@ -55,3 +55,73 @@ def test_meters(self):
assert True
return True

@preposttest_wrapper
def test_resources_by_user_tenant(self):
"""Verifying ceilometer resources - user tenant"""
tenant_id = self.auth.get_project_id('default_domain',
self.inputs.project_name)
tenant_id = "".join(tenant_id.split('-'))
q = ceilometer_client.make_query(tenant_id = tenant_id)
result = None
result = ceilometer_client.resource_list(self.cclient,query=q)
if not result:
self.logger.error("Ceilometer resource list did not work...")
assert False
if result:
self.logger.info("Ceilometer resource list did work...")
assert True
r1 = None
for resource in result:
if (resource.resource_id == self.res.vm1_fixture.vm_id):
self.logger.info("VM shown as resource list ")
r1 = True
else:
continue
if not r1:
self.logger.error("VM NOT shown as resource list ")
assert False
return True

@test.attr(type=['sanity'])
@preposttest_wrapper
def test_sample_floating_ip_transmit_packets(self):
"""
Verifying ceilometer sample - ip.floating.transmit.packets
Verifying ceilometer sample - ip.floating.receive.packets
Verifying ceilometer sample - ip.floating.transmit.bytes
Verifying ceilometer sample - ip.floating.receive.bytes"""

self.logger.info('Sleeping for 1 mins for sample to be collected...')
time.sleep(60)
self.logger.info('Starting verification...')
tenant_id = self.auth.get_project_id('default_domain',
self.inputs.project_name)
tenant_id = "".join(tenant_id.split('-'))
q = ceilometer_client.make_query(resource_id = self.res.vm1_fixture.vm_id)
result = None
#result = ceilometer_client.sample_list(self.cclient,'ip.floating.transmit.packets',\
# query = q)
meters = ['ip.floating.transmit.packets','ip.floating.receive.packets',\
'ip.floating.transmit.bytes','ip.floating.receive.bytes']
for m in meters:
result = ceilometer_client.sample_list(self.cclient,m)
if not result:
self.logger.error("Ceilometer sample list did not work...")
assert False
if result:
self.logger.info("Ceilometer sample list did work for meter %s..."%(m))
assert True
r1 = None
for sample in result:
metadata = sample.resource_metadata
if (metadata['device_id'] == self.res.vm1_fixture.vm_id):
r1 = sample
else:
continue
if not r1:
self.logger.error("%s meter did not show up in sample list "%(m))
assert False
else:
self.logger.info("%s meter volumn %s"%(m,r1.counter_volume))
return True

0 comments on commit fffb5d6

Please sign in to comment.