Merge "Revert "Fix 'get_database_nodes' for upgraded fuel""

This commit is contained in:
Jenkins 2015-08-19 08:30:28 +00:00 committed by Gerrit Code Review
commit f78167a3d5
2 changed files with 24 additions and 26 deletions

View File

@ -67,6 +67,10 @@ class TestMysqlReplication(BaseMysqlTest):
self.node_user,
key=self.node_key)
if len(databases) == 1:
self.skipTest('There is only one database online. '
'Nothing to check')
LOG.info("Database nodes are " + ", ".join(databases))
self.master_ip = databases[0]

View File

@ -15,14 +15,12 @@
import logging
from fuel_health.common.ssh import Client as SSHClient
from fuel_health.test import BaseTestCase
import fuel_health.test
LOG = logging.getLogger(__name__)
class BaseMysqlTest(BaseTestCase):
"""Base methods for MySQL DB tests
"""
class BaseMysqlTest(fuel_health.test.BaseTestCase):
@classmethod
def setUpClass(cls):
super(BaseMysqlTest, cls).setUpClass()
@ -38,36 +36,25 @@ class BaseMysqlTest(BaseTestCase):
if 'ha' not in self.config.compute.deployment_mode:
self.skipTest('Cluster is not HA mode, skipping tests')
def get_database_nodes(self, controller_ip, username, key):
one_db_msg = "There is only one database online. Nothing to check"
no_db_msg = ("Can not find any online database. "
"Check that at least one database is operable")
@classmethod
def get_database_nodes(cls, controller_ip, username, key):
# retrieve data from controller
ssh_client = SSHClient(controller_ip,
username,
key_filename=key,
timeout=100)
hiera_cmd = ('ruby -e \'require "hiera";'
'db = Hiera.new().lookup("database_nodes", {}, {}).keys;'
'if db != [] then puts db else puts "None" end\'')
hiera_cmd = 'ruby -e \'require "hiera"; ' \
'puts Hiera.new().lookup("database_nodes", {}, {}).keys\''
database_nodes = ssh_client.exec_command(hiera_cmd)
# backward compatibility for upgraded fuel
if 'None' in database_nodes:
databases = self.config.compute.online_controllers
else:
# get online nodes
database_nodes = database_nodes.splitlines()
# get online nodes
databases = []
for node in self.config.compute.nodes:
for node in cls.config.compute.nodes:
hostname = node['hostname']
if hostname in database_nodes and node['online']:
databases.append(hostname)
self.verify_response_body_not_equal(0, len(databases),
no_db_msg, 1)
if len(databases) == 1:
self.skipTest(one_db_msg)
return databases
@ -103,6 +90,10 @@ class TestMysqlStatus(BaseMysqlTest):
self.node_user,
key=self.node_key)
if len(databases) == 1:
self.skipTest('There is only one database online. '
'Nothing to check')
for database in dbs:
LOG.info('Current database name is %s' % database)
temp_set = set()
@ -166,6 +157,9 @@ class TestMysqlStatus(BaseMysqlTest):
self.controller_ip,
self.node_user,
key=self.node_key)
if len(databases) == 1:
self.skipTest('There is only one database online. '
'Nothing to check')
for db_node in databases:
command = "mysql -h localhost -e \"SHOW STATUS LIKE 'wsrep_%'\""