[verify] Extend rerun cmd with tag and concurrency args
CLI method rerun should look as similar as `rally verify start` Change-Id: Iad93e344c8f9d9d27a972ba5b7314788beb91580
This commit is contained in:
parent
5a465f9057
commit
f488f8652c
@ -55,7 +55,7 @@ _rally()
|
||||
OPTS["verify_list-verifier-tests"]="--id --pattern"
|
||||
OPTS["verify_list-verifiers"]="--status"
|
||||
OPTS["verify_report"]="--uuid --type --to --open"
|
||||
OPTS["verify_rerun"]="--uuid --deployment-id --failed --detailed --no-use"
|
||||
OPTS["verify_rerun"]="--uuid --deployment-id --failed --tag --concurrency --detailed --no-use"
|
||||
OPTS["verify_show"]="--uuid --sort-by --detailed"
|
||||
OPTS["verify_show-verifier"]="--id"
|
||||
OPTS["verify_start"]="--id --deployment-id --tag --pattern --concurrency --load-list --skip-list --xfail-list --detailed --no-use"
|
||||
|
14
rally/api.py
14
rally/api.py
@ -879,15 +879,22 @@ class _Verification(object):
|
||||
return verification, results
|
||||
|
||||
@classmethod
|
||||
def rerun(cls, verification_uuid, deployment_id=None, failed=False):
|
||||
def rerun(cls, verification_uuid, deployment_id=None, failed=False,
|
||||
tags=None, concurrency=0):
|
||||
"""Rerun tests from a verification.
|
||||
|
||||
:param verification_uuid: Verification UUID
|
||||
:param deployment_id: Deployment name or UUID
|
||||
:param failed: Rerun only failed tests
|
||||
:param tags: List of tags to assign them to verification
|
||||
:param concurrency: The number of processes to use to run verifier
|
||||
tests
|
||||
"""
|
||||
# TODO(ylobankov): Improve this method in the future: put some
|
||||
# information about re-run in run_args.
|
||||
run_args = {}
|
||||
if concurrency:
|
||||
run_args["concurrency"] = concurrency
|
||||
|
||||
verification = cls.get(verification_uuid)
|
||||
tests = verification.tests
|
||||
@ -906,8 +913,9 @@ class _Verification(object):
|
||||
LOG.info("Re-running %stests from verification (UUID=%s) for "
|
||||
"deployment '%s' (UUID=%s).", "failed " if failed else "",
|
||||
verification.uuid, deployment["name"], deployment["uuid"])
|
||||
return cls.start(verification.verifier_uuid, deployment["uuid"],
|
||||
load_list=tests)
|
||||
return cls.start(
|
||||
verification.verifier_uuid, deployment["uuid"], load_list=tests,
|
||||
tags=tags, **run_args)
|
||||
|
||||
@staticmethod
|
||||
def get(verification_uuid):
|
||||
|
@ -414,8 +414,9 @@ class VerifyCommands(object):
|
||||
"in case of Tempest you can specify 'set=smoke').")
|
||||
@cliutils.args("--concurrency", dest="concur", type=int, metavar="<N>",
|
||||
required=False,
|
||||
help="How many processes to use to run verifier tests. "
|
||||
"The default value (0) auto-detects your CPU count.")
|
||||
help="How many processes to be used for running verifier "
|
||||
"tests. The default value (0) auto-detects your CPU "
|
||||
"count.")
|
||||
@cliutils.args("--load-list", dest="load_list", type=str, metavar="<path>",
|
||||
required=False,
|
||||
help="Path to a file with a list of tests to run.")
|
||||
@ -515,6 +516,13 @@ class VerifyCommands(object):
|
||||
help="Deployment name or UUID. " + LIST_DEPLOYMENTS_HINT)
|
||||
@cliutils.args("--failed", dest="failed", required=False,
|
||||
help="Rerun only failed tests.", action="store_true")
|
||||
@cliutils.args("--tag", nargs="+", dest="tags", type=str, required=False,
|
||||
help="Mark verification with a tag or a few tags.")
|
||||
@cliutils.args("--concurrency", dest="concur", type=int, metavar="<N>",
|
||||
required=False,
|
||||
help="How many processes to be used for running verifier "
|
||||
"tests. The default value (0) auto-detects your CPU "
|
||||
"count.")
|
||||
@cliutils.args("--detailed", dest="detailed", action="store_true",
|
||||
required=False,
|
||||
help="Show verification details such as errors of failed "
|
||||
@ -525,11 +533,14 @@ class VerifyCommands(object):
|
||||
@envutils.with_default_verification_uuid
|
||||
@envutils.with_default_deployment(cli_arg_name="deployment-id")
|
||||
@plugins.ensure_plugins_are_loaded
|
||||
def rerun(self, api, verification_uuid=None, deployment=None,
|
||||
failed=False, detailed=False, do_use=True):
|
||||
def rerun(self, api, verification_uuid=None, deployment=None, tags=None,
|
||||
concur=None, failed=False, detailed=False, do_use=True):
|
||||
"""Rerun tests from a verification for a specific deployment."""
|
||||
verification, results = api.verification.rerun(verification_uuid,
|
||||
deployment, failed)
|
||||
deployment=deployment,
|
||||
failed=failed,
|
||||
tags=tags,
|
||||
concur=concur)
|
||||
if detailed:
|
||||
self._print_details_after_run(results)
|
||||
|
||||
|
@ -359,9 +359,9 @@ class VerifyCommandsTestCase(test.TestCase):
|
||||
"failures": 0})
|
||||
self.fake_api.verification.rerun.return_value = (verification, results)
|
||||
|
||||
self.verify.rerun(self.fake_api, "v_uuid", "d_id", failed=True)
|
||||
self.fake_api.verification.rerun.assert_called_once_with("v_uuid",
|
||||
"d_id", True)
|
||||
self.verify.rerun(self.fake_api, "v_uuid", "d_id", failed=True,)
|
||||
self.fake_api.verification.rerun.assert_called_once_with(
|
||||
"v_uuid", deployment="d_id", failed=True, tags=None, concur=None)
|
||||
|
||||
def test_show(self):
|
||||
deployment_name = "Some Deploy"
|
||||
|
@ -1394,7 +1394,7 @@ class VerificationAPITestCase(test.TestCase):
|
||||
|
||||
api._Verification.rerun("uuid")
|
||||
mock___verification_start.assert_called_once_with(
|
||||
"v_uuid", "d_uuid", load_list=tests.keys())
|
||||
"v_uuid", "d_uuid", load_list=tests.keys(), tags=None)
|
||||
|
||||
@mock.patch("rally.api._Verification.start")
|
||||
@mock.patch("rally.api._Deployment.get")
|
||||
@ -1414,7 +1414,7 @@ class VerificationAPITestCase(test.TestCase):
|
||||
api._Verification.rerun("uuid", failed=True)
|
||||
expected_tests = [t for t, r in tests.items() if r["status"] == "fail"]
|
||||
mock___verification_start.assert_called_once_with(
|
||||
"v_uuid", "d_uuid", load_list=expected_tests)
|
||||
"v_uuid", "d_uuid", load_list=expected_tests, tags=None)
|
||||
|
||||
@mock.patch("rally.api._Verification.get")
|
||||
def test_rerun_failed_tests_raise_exc(
|
||||
|
Loading…
Reference in New Issue
Block a user