Add smoke test check action

Change-Id: I408f15f338bb4165a6310c9e06050791914bb711
This commit is contained in:
cao.yuan 2019-07-16 15:26:35 +08:00 committed by jacky06
parent ff625135dc
commit 269255cd76
4 changed files with 52 additions and 0 deletions

View File

@ -135,6 +135,25 @@ class ControlPlaneApi(object):
ansible_job = aciton.genconfig(servicenames)
return Job(ansible_job)
@staticmethod
def check(verbose_level=1, servicenames=[]):
"""Do post-deployment smoke tests.
:param verbose_level: the higher the number, the more verbose
:type verbose_level: integer
:return: Job object
:rtype: Job
"""
check_arg(verbose_level, u._('Verbose level'), int)
check_arg(servicenames, u._('Service names'), list,
empty_ok=True, none_ok=True)
servicenames = safe_decode(servicenames)
action = KollaAction(verbose_level=verbose_level,
playbook_name='site.yml')
ansible_job = action.check(servicenames)
return Job(ansible_job)
@staticmethod
def postdeploy(verbose_level=1):
"""Post-Deploy.

View File

@ -161,6 +161,29 @@ class Upgrade(Command):
raise Exception(traceback.format_exc())
class Check(Command):
"""Do post-deployment smoke tests."""
def get_parser(self, prog_name):
parser = super(Check, self).get_parser(prog_name)
parser.add_argument('--services', nargs='?',
metavar='<service_list>',
help=u._('Upgrade service list'))
return parser
def take_action(self, parsed_args):
services = None
try:
if parsed_args.services:
service_list = parsed_args.services.strip()
services = service_list.split(',')
verbose_level = self.app.options.verbose_level
job = CLIENT.check(verbose_level, services)
status = job.wait()
handers_action_result(job, status, verbose_level)
except Exception:
raise Exception(traceback.format_exc())
class Genconfig(Command):
"""Generate configuration files for enabled OpenStack services."""
def get_parser(self, prog_name):

View File

@ -144,6 +144,15 @@ class KollaAction(object):
job = self.playbook.run()
return job
def check(self, servicenames=[]):
'''Do post-deployment smoke tests.'''
self.playbook.services = servicenames
self.playbook.extra_vars = 'kolla_action=check'
self.playbook.print_output = True
job = self.playbook.run()
return job
def deploy(hostnames=[],
serial_flag=False, verbose_level=1, servicenames=[]):

View File

@ -64,6 +64,7 @@ kolla.cli =
service_listgroups = kolla_cli.commands.service:ServiceListGroups
service_removegroup = kolla_cli.commands.service:ServiceRemoveGroup
setdeploy = kolla_cli.commands.mode:Setdeploy
check = kolla_cli.commands.kolla_action:Check
upgrade = kolla_cli.commands.kolla_action:Upgrade