Add `--remote-terminate` option to ansible-test.

Set `--remote-terminate success` for osx tests.
pull/24437/head
Matt Clay 8 years ago
parent bb90f5d220
commit fb9efd3c7e

@ -245,6 +245,7 @@ def delegate_remote(args, exclude, require):
version = parts[1] version = parts[1]
core_ci = AnsibleCoreCI(args, platform, version, stage=args.remote_stage) core_ci = AnsibleCoreCI(args, platform, version, stage=args.remote_stage)
success = False
try: try:
core_ci.start() core_ci.start()
@ -277,11 +278,13 @@ def delegate_remote(args, exclude, require):
try: try:
manage.ssh(cmd, ssh_options) manage.ssh(cmd, ssh_options)
success = True
finally: finally:
manage.ssh('rm -rf /tmp/results && cp -a ansible/test/results /tmp/results') manage.ssh('rm -rf /tmp/results && cp -a ansible/test/results /tmp/results')
manage.download('/tmp/results', 'test') manage.download('/tmp/results', 'test')
finally: finally:
pass if args.remote_terminate == 'always' or (args.remote_terminate == 'success' and success):
core_ci.stop()
def generate_command(args, path, options, exclude, require): def generate_command(args, path, options, exclude, require):

@ -467,6 +467,7 @@ class EnvironmentConfig(CommonConfig):
self.remote_stage = args.remote_stage # type: str self.remote_stage = args.remote_stage # type: str
self.remote_aws_region = args.remote_aws_region # type: str self.remote_aws_region = args.remote_aws_region # type: str
self.remote_terminate = args.remote_terminate # type: str
self.requirements = args.requirements # type: bool self.requirements = args.requirements # type: bool

@ -456,6 +456,7 @@ def add_environments(parser, tox_version=False, tox_only=False):
remote=None, remote=None,
remote_stage=None, remote_stage=None,
remote_aws_region=None, remote_aws_region=None,
remote_terminate=None,
) )
return return
@ -486,6 +487,12 @@ def add_environments(parser, tox_version=False, tox_only=False):
choices=sorted(AWS_ENDPOINTS), choices=sorted(AWS_ENDPOINTS),
default=None) default=None)
remote.add_argument('--remote-terminate',
metavar='WHEN',
help='terminate remote instance: %(choices)s (default: %(default)s)',
choices=['never', 'always', 'success'],
default='never')
def add_extra_docker_options(parser, integration=True): def add_extra_docker_options(parser, integration=True):
""" """

@ -9,4 +9,4 @@ platform="${args[0]}"
version="${args[1]}" version="${args[1]}"
target="posix/ci/" target="posix/ci/"
ansible-test integration --color -v --retry-on-error "${target}" --remote "${platform}/${version}" --exclude "posix/ci/cloud/" ansible-test integration --color -v --retry-on-error "${target}" --remote "${platform}/${version}" --remote-terminate success --exclude "posix/ci/cloud/"

Loading…
Cancel
Save