Skip to content

Commit

Permalink
Adding ceilometer tests for sanity
Browse files Browse the repository at this point in the history
1.Added check to skip test if ceilometer not enabled on the setup
2.Reduce sleep to 1 min

Removed pdb
Closes-Bug: #1470744

Change-Id: I6e7f5f6b6d9530ecc838b6b8f091256988d9c58d
  • Loading branch information
sandip-d committed Jul 4, 2015
1 parent 8918e60 commit f592c63
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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 f592c63

Please sign in to comment.