Refactoring galera state test
1) Removed 1 extra indent level 2) Removed 'return result' expression 3) Changed method of analysis mysql output Change-Id: I825c72dd8da6e487a71ae70d4af4009b541221e3 Closes-Bug:#1479335
This commit is contained in:
parent
888baa3eab
commit
dd87b1a9f2
|
@ -159,6 +159,24 @@ class TestMysqlStatus(fuel_health.test.BaseTestCase):
|
|||
else:
|
||||
self.skipTest("There is no RHEL deployment")
|
||||
|
||||
@staticmethod
|
||||
def get_variables_from_output(output, variables):
|
||||
"""Return dict with variables and their values extracted from mysql
|
||||
Assume that output is "| Var_name | Value |"
|
||||
"""
|
||||
result = {}
|
||||
LOG.debug('Expected variables: "{0}"'.format(str(variables)))
|
||||
for line in output:
|
||||
try:
|
||||
var, value = line.strip("| ").split("|")[:2]
|
||||
except ValueError:
|
||||
continue
|
||||
var = var.strip()
|
||||
if var in variables:
|
||||
result[var] = value.strip()
|
||||
LOG.debug('Extracted values: "{0}"'.format(str(result)))
|
||||
return result
|
||||
|
||||
def test_state_of_galera_cluster(self):
|
||||
"""Check galera environment state
|
||||
Target Service: HA mysql
|
||||
|
@ -173,40 +191,43 @@ class TestMysqlStatus(fuel_health.test.BaseTestCase):
|
|||
"""
|
||||
if 'CentOS' in self.config.compute.deployment_os:
|
||||
for controller in self.controllers:
|
||||
command = "mysql -e \"SHOW STATUS LIKE 'wsrep_%'\""
|
||||
ssh_client = SSHClient(controller, self.controller_user,
|
||||
key_filename=self.controller_key,
|
||||
timeout=100)
|
||||
output = self.verify(
|
||||
20, ssh_client.exec_command, 1,
|
||||
"Verification of galera cluster node status failed",
|
||||
'get status from galera node',
|
||||
command).splitlines()[3:-2]
|
||||
command = "mysql -e \"SHOW STATUS LIKE 'wsrep_%'\""
|
||||
ssh_client = SSHClient(controller, self.controller_user,
|
||||
key_filename=self.controller_key,
|
||||
timeout=100)
|
||||
output = self.verify(
|
||||
20, ssh_client.exec_command, 1,
|
||||
"Verification of galera cluster node status failed",
|
||||
'get status from galera node',
|
||||
command).splitlines()
|
||||
|
||||
LOG.debug('output is %s' % output)
|
||||
LOG.debug('mysql output from node "{0}" is \n"{1}"'.format(
|
||||
controller, output)
|
||||
)
|
||||
|
||||
result = {}
|
||||
for i in output:
|
||||
key, value = i.split('|')[0:-2]
|
||||
result.update({key: value})
|
||||
return result
|
||||
mysql_vars = [
|
||||
'wsrep_cluster_size',
|
||||
'wsrep_ready',
|
||||
'wsrep_connected'
|
||||
]
|
||||
result = self.get_variables_from_output(output, mysql_vars)
|
||||
|
||||
self.verify_response_body_content(
|
||||
result.get('wsrep_cluster_size', 0),
|
||||
str(len(self.controllers)),
|
||||
msg='Cluster size on %s less '
|
||||
'than controllers count' % controller,
|
||||
failed_step='2')
|
||||
self.verify_response_body_content(
|
||||
result.get('wsrep_cluster_size', 0),
|
||||
str(len(self.controllers)),
|
||||
msg='Cluster size on %s less '
|
||||
'than controllers count' % controller,
|
||||
failed_step='2')
|
||||
|
||||
self.verify_response_body_content(
|
||||
result.get(('wsrep_ready', 'OFF')), 'ON',
|
||||
msg='wsrep_ready on %s is not ON' % controller,
|
||||
failed_step='3')
|
||||
self.verify_response_body_content(
|
||||
result.get(('wsrep_ready', 'OFF')), 'ON',
|
||||
msg='wsrep_ready on %s is not ON' % controller,
|
||||
failed_step='3')
|
||||
|
||||
self.verify_response_body_content(
|
||||
result.get(('wsrep_connected', 'OFF')), 'ON',
|
||||
msg='wsrep_connected on %s is not ON' % controller,
|
||||
failed_step='3')
|
||||
self.verify_response_body_content(
|
||||
result.get(('wsrep_connected', 'OFF')), 'ON',
|
||||
msg='wsrep_connected on %s is not ON' % controller,
|
||||
failed_step='3')
|
||||
else:
|
||||
self.skipTest('There is no CentOs deployment')
|
||||
|
||||
|
@ -225,39 +246,42 @@ class TestMysqlStatus(fuel_health.test.BaseTestCase):
|
|||
"""
|
||||
if 'Ubuntu' in self.config.compute.deployment_os:
|
||||
for controller in self.controllers:
|
||||
command = "mysql -e \"SHOW STATUS LIKE 'wsrep_%'\""
|
||||
ssh_client = SSHClient(controller, self.controller_user,
|
||||
key_filename=self.controller_key,
|
||||
timeout=100)
|
||||
output = self.verify(
|
||||
20, ssh_client.exec_command, 1,
|
||||
"Verification of galera cluster node status failed",
|
||||
'get status from galera node',
|
||||
command).splitlines()[3:-2]
|
||||
command = "mysql -e \"SHOW STATUS LIKE 'wsrep_%'\""
|
||||
ssh_client = SSHClient(controller, self.controller_user,
|
||||
key_filename=self.controller_key,
|
||||
timeout=100)
|
||||
output = self.verify(
|
||||
20, ssh_client.exec_command, 1,
|
||||
"Verification of galera cluster node status failed",
|
||||
'get status from galera node',
|
||||
command).splitlines()
|
||||
|
||||
LOG.debug('output is %s' % output)
|
||||
LOG.debug('mysql output from node "{0}" is \n"{1}"'.format(
|
||||
controller, output)
|
||||
)
|
||||
|
||||
result = {}
|
||||
for i in output:
|
||||
key, value = i.split('|')[0:-2]
|
||||
result.update({key: value})
|
||||
return result
|
||||
mysql_vars = [
|
||||
'wsrep_cluster_size',
|
||||
'wsrep_ready',
|
||||
'wsrep_connected'
|
||||
]
|
||||
result = self.get_variables_from_output(output, mysql_vars)
|
||||
|
||||
self.verify_response_body_content(
|
||||
result.get('wsrep_cluster_size', 0),
|
||||
str(len(self.controllers)),
|
||||
msg='Cluster size on %s less '
|
||||
'than controllers count' % controller,
|
||||
failed_step='2')
|
||||
self.verify_response_body_content(
|
||||
result.get('wsrep_cluster_size', 0),
|
||||
str(len(self.controllers)),
|
||||
msg='Cluster size on %s less '
|
||||
'than controllers count' % controller,
|
||||
failed_step='2')
|
||||
|
||||
self.verify_response_body_content(
|
||||
result.get(('wsrep_ready', 'OFF')), 'ON',
|
||||
msg='wsrep_ready on %s is not ON' % controller,
|
||||
failed_step='3')
|
||||
self.verify_response_body_content(
|
||||
result.get('wsrep_ready', 'OFF'), 'ON',
|
||||
msg='wsrep_ready on %s is not ON' % controller,
|
||||
failed_step='3')
|
||||
|
||||
self.verify_response_body_content(
|
||||
result.get(('wsrep_connected', 'OFF')), 'ON',
|
||||
msg='wsrep_connected on %s is not ON' % controller,
|
||||
failed_step='3')
|
||||
self.verify_response_body_content(
|
||||
result.get('wsrep_connected', 'OFF'), 'ON',
|
||||
msg='wsrep_connected on %s is not ON' % controller,
|
||||
failed_step='3')
|
||||
else:
|
||||
self.skipTest('There is no Ubuntu deployment')
|
||||
|
|
Loading…
Reference in New Issue