Add --hosts support for check action

Change-Id: Ic1148c59ce5305468acf48580addee1a9ff3be7a
Co-Authored-By: caoyuan <cao.yuan@99cloud.net>
This commit is contained in:
jacky06 2019-10-14 12:42:49 +08:00 committed by cao.yuan
parent d5d6766cd7
commit 50aeac2b3f
3 changed files with 20 additions and 4 deletions

View File

@ -226,24 +226,32 @@ class ControlPlaneApi(object):
return Job(ansible_job)
@staticmethod
def check(verbose_level=1, servicenames=[]):
def check(verbose_level=1, hostnames=[], servicenames=[]):
# type: (int, List[str], List[str]) -> Job
"""Do post-deployment smoke tests.
:param hostnames: host names
:type hostnames: list
:param verbose_level: the higher the number, the more verbose
:type verbose_level: integer
:param servicenames: services to check. If empty, then check all.
:type servicenames: list of strings
:return: Job object
:rtype: Job
"""
check_arg(verbose_level, u._('Verbose level'), int)
check_arg(hostnames, u._('Host names'), list,
empty_ok=True, none_ok=True)
check_arg(servicenames, u._('Service names'), list,
empty_ok=True, none_ok=True)
check_kolla_args(servicenames=servicenames)
hostnames = safe_decode(hostnames)
servicenames = safe_decode(servicenames)
action = KollaAction(verbose_level=verbose_level,
playbook_name='site.yml')
ansible_job = action.check(servicenames)
ansible_job = action.check(hostnames, servicenames)
return Job(ansible_job)
@staticmethod

View File

@ -258,19 +258,26 @@ 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('--hosts', nargs='?',
metavar='<host_list>',
help=u._('Check host list'))
parser.add_argument('--services', nargs='?',
metavar='<service_list>',
help=u._('Upgrade service list'))
return parser
def take_action(self, parsed_args):
hosts = []
services = None
try:
if parsed_args.hosts:
host_list = parsed_args.hosts.strip()
hosts = host_list.split(',')
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)
job = CLIENT.check(verbose_level, hosts, services)
status = job.wait()
handers_action_result(job, status, verbose_level)
except Exception:

View File

@ -174,9 +174,10 @@ class KollaAction(object):
job = self.playbook.run()
return job
def check(self, servicenames=[]):
def check(self, hostnames=[], servicenames=[]):
'''Do post-deployment smoke tests.'''
self.playbook.hosts = hostnames
self.playbook.services = servicenames
self.playbook.extra_vars = 'kolla_action=check'
self.playbook.print_output = True