Adding node_check test case

Change-Id: I40a3d7bf3772aaef6cccef2429fec641e61b8dc4
This commit is contained in:
Anand Shanmugam 2016-04-27 12:09:03 -07:00
parent 433cee2d64
commit 57e051e542
2 changed files with 40 additions and 5 deletions

View File

@ -104,7 +104,7 @@ class ansible_runner(object):
filetered_list.append(os_node)
elif role_list and self.openstack_node:
for role in role_list:
for os_node in self.self.openstack_node:
for os_node in self.openstack_node:
if role == os_node.getRole():
filetered_list.append(os_node)
return filetered_list
@ -154,7 +154,11 @@ class ansible_runner(object):
return out
# can perform all shell operations Ex: rm /tmp/output
def execute(self, command, container_name=None):
def execute(self, command, container_name=None, roles=[]):
filetered_os_list = []
if roles:
filetered_os_list = self.get_os_node_list(role_list=roles)
self.inventory = self.init_ansible_inventory(filetered_os_list)
if is_containerized and container_name:
command = 'docker exec %s %s' % (container_name, command)
@ -169,6 +173,20 @@ class ansible_runner(object):
out = runner.run()
return out
def ping(self, container_name=None, roles=[]):
filetered_os_list = []
if roles:
filetered_os_list = self.get_os_node_list(role_list=roles)
self.inventory = self.init_ansible_inventory(filetered_os_list)
runner = ansible.runner.Runner(
module_name='ping',
remote_user=self.remote_user,
inventory=self.inventory,
forks=1,
)
out = runner.run()
return out
def get_results(self):
result = {}
if not os.path.isdir(TMP_LOCATION + 'output/'):

View File

@ -48,6 +48,9 @@ PERIODIC_TESTS_OPTS = [
cfg.IntOpt('docker_check',
default=0,
help='The docker periodic check'),
cfg.IntOpt('node_check',
default=0,
help='The Node Check peiodic check'),
cfg.IntOpt('all_operator_tests',
default=0,
help='Run all operator tests')
@ -85,7 +88,7 @@ class operator_scenario(base.Scenario):
rabbit_container = cfg.CONF.operator_test.rabbit_container
cmd = ("docker exec %s %s" % (rabbit_container, cmd))
out = self.ans_runner.execute(cmd)
out = self.ans_runner.execute(cmd, roles=['controller'])
res, output = self.ans_runner.validate_results(out)
if res['status'] is 'PASS':
@ -133,7 +136,7 @@ class operator_scenario(base.Scenario):
galera_container = cfg.CONF.operator_test.galera_container
cmd = ("docker exec %s %s" % (galera_container, cmd))
out = self.ans_runner.execute(cmd)
out = self.ans_runner.execute(cmd, roles=['controller'])
results, failed_hosts = self.ans_runner.validate_results(out)
if results['status'] is 'PASS':
@ -175,7 +178,7 @@ class operator_scenario(base.Scenario):
def ceph_check(self):
self.load()
cmd = (r"ceph -f json status")
out = self.ans_runner.execute(cmd)
out = self.ans_runner.execute(cmd, roles=['controller'])
results, failed_hosts = self.ans_runner.validate_results(out)
if results['status'] is 'PASS':
@ -196,6 +199,20 @@ class operator_scenario(base.Scenario):
return (404, ("Ceph cluster Test Failed: %s" %
results['status_message']), [])
@base.scenario(admin_only=False, operator=True)
def node_check(self):
self.load()
out = self.ans_runner.ping()
results, failed_hosts = self.ans_runner.validate_results(out)
if results['status'] is 'PASS':
return (200, "All nodes are up")
else:
msg = "Some nodes are not up"
if failed_hosts:
msg = "The following nodes are not up: %s" % str(
failed_hosts[0])
return (404, msg)
@base.scenario(admin_only=False, operator=True)
def all_operator_tests(self):
test_list = [func for func in dir(self) if base.Scenario.is_scenario(