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:
parent
1c58aae501
commit
71b6178f7f
|
@ -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(
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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'])
|
||||
|
|
Loading…
Reference in New Issue