Enable statistic sending in system tests

- Remove CENTOS_7 conditions from setup_environment method
- Change force_fuel_stats_sending logic because statsenderd.log
was re-created after systemctl restart in 2-3 seconds
- Add 2 waits to check_oswl_stat method because after systemctl restart
resource was added to db in 2-3 seconds
- Add wait and retry for sending statistic because sometimes
after restarting statsenderd stat wasn't sent

Change-Id: Ib6f0d980ab26a4282fa9cb64315413de73d2db1b
Closes-Bug: #1543081
This commit is contained in:
asledzinskiy 2016-02-10 11:59:28 +02:00
parent 1c58aae501
commit 71b6178f7f
4 changed files with 42 additions and 14 deletions

View File

@ -822,7 +822,8 @@ def check_swift_ring(remote):
" balance is {0}".format(balance, ring))
def check_oswl_stat(postgres_actions, remote_collector, master_uid,
def check_oswl_stat(postgres_actions, nailgun_actions,
remote_collector, master_uid,
operation='current',
resources=None):
if resources is None:
@ -859,6 +860,18 @@ def check_oswl_stat(postgres_actions, remote_collector, master_uid,
for resource in resources:
q = "select resource_data from oswl_stats where" \
" resource_type = '\"'\"'{0}'\"'\"';".format(resource)
def get_resource():
result = postgres_actions.run_query('nailgun', q)
logger.debug("resource state is {}".format(result))
if not result:
return False
return (
len(json.loads(result)[operation]) >
expected_resource_count[operation][resource])
wait(get_resource, timeout=10,
timeout_msg="resource {} wasn't updated in db".format(resource))
q_result = postgres_actions.run_query('nailgun', q)
assert_true(q_result.strip() is not None,
"Resource {0} is absent in 'oswl_stats' table, "
@ -880,6 +893,17 @@ def check_oswl_stat(postgres_actions, remote_collector, master_uid,
operation][resource]))
# check stat on collector side
def are_logs_sent():
sent_logs = postgres_actions.count_sent_action_logs(
table='oswl_stats')
result = sent_logs == 6
if not result:
nailgun_actions.force_fuel_stats_sending()
return result
wait(are_logs_sent, timeout=20,
timeout_msg='Logs status was not changed to sent in db')
sent_logs_count = postgres_actions.count_sent_action_logs(
table='oswl_stats')
logger.info("Number of logs that were sent to collector: {}".format(

View File

@ -395,7 +395,7 @@ class NailgunActions(BaseActions):
exit_code=0)
def set_collector_address(self, host, port, ssl=False):
cmd = ("awk '/COLLECTOR.*URL/' /usr/lib/python2.6"
cmd = ("awk '/COLLECTOR.*URL/' /usr/lib/python2.7"
"/site-packages/nailgun/settings.yaml")
protocol = 'http' if not ssl else 'https'
parameters = {}
@ -418,7 +418,9 @@ class NailgunActions(BaseActions):
def force_fuel_stats_sending(self):
log_file = '/var/log/nailgun/statsenderd.log'
# Rotate logs on restart in order to get rid of old errors
cmd = 'mv {0}{{,.backup_$(date +%s)}}'.format(log_file)
cmd = 'cp {0}{{,.backup_$(date +%s)}}'.format(log_file)
self.execute(cmd)
cmd = "bash -c 'echo > /var/log/nailgun/statsenderd.log'"
self.execute(cmd)
cmd = 'supervisorctl restart statsenderd'
if MASTER_IS_CENTOS7:

View File

@ -500,14 +500,13 @@ class EnvironmentModel(object):
self.admin_install_updates()
if settings.MULTIPLE_NETWORKS:
self.describe_other_admin_interfaces(admin)
if not MASTER_IS_CENTOS7:
self.nailgun_actions.set_collector_address(
settings.FUEL_STATS_HOST,
settings.FUEL_STATS_PORT,
settings.FUEL_STATS_SSL)
# Restart statsenderd to apply settings(Collector address)
self.nailgun_actions.force_fuel_stats_sending()
if settings.FUEL_STATS_ENABLED and not MASTER_IS_CENTOS7:
self.nailgun_actions.set_collector_address(
settings.FUEL_STATS_HOST,
settings.FUEL_STATS_PORT,
settings.FUEL_STATS_SSL)
# Restart statsenderd to apply settings(Collector address)
self.nailgun_actions.force_fuel_stats_sending()
if settings.FUEL_STATS_ENABLED:
self.fuel_web.client.send_fuel_stats(enabled=True)
logger.info('Enabled sending of statistics to {0}:{1}'.format(
settings.FUEL_STATS_HOST, settings.FUEL_STATS_PORT

View File

@ -387,7 +387,8 @@ class CephHA(TestBasic):
self.env.nailgun_actions.force_oswl_collect()
self.env.nailgun_actions.force_fuel_stats_sending()
master_uid = self.env.get_masternode_uuid()
checkers.check_oswl_stat(self.env.postgres_actions, self.env.collector,
checkers.check_oswl_stat(self.env.postgres_actions,
self.env.nailgun_actions, self.env.collector,
master_uid, operation='current',
resources=['vm', 'flavor', 'volume', 'image',
'tenant', 'keystone_user'])
@ -406,7 +407,8 @@ class CephHA(TestBasic):
self.env.nailgun_actions.force_oswl_collect()
self.env.nailgun_actions.force_fuel_stats_sending()
checkers.check_oswl_stat(self.env.postgres_actions, self.env.collector,
checkers.check_oswl_stat(self.env.postgres_actions,
self.env.nailgun_actions, self.env.collector,
master_uid, operation='modified',
resources=['vm', 'volume', 'image',
'tenant', 'keystone_user'])
@ -427,7 +429,8 @@ class CephHA(TestBasic):
self.env.nailgun_actions.force_oswl_collect()
self.env.nailgun_actions.force_fuel_stats_sending()
checkers.check_oswl_stat(self.env.postgres_actions, self.env.collector,
checkers.check_oswl_stat(self.env.postgres_actions,
self.env.nailgun_actions, self.env.collector,
master_uid, operation='removed',
resources=['vm', 'flavor', 'volume', 'image',
'tenant', 'keystone_user'])