diff options
Diffstat (limited to 'yardstick/cmd')
-rw-r--r-- | yardstick/cmd/__init__.py | 15 | ||||
-rw-r--r-- | yardstick/cmd/cli.py | 6 | ||||
-rw-r--r-- | yardstick/cmd/commands/runner.py | 38 | ||||
-rw-r--r-- | yardstick/cmd/commands/scenario.py | 38 |
4 files changed, 96 insertions, 1 deletions
diff --git a/yardstick/cmd/__init__.py b/yardstick/cmd/__init__.py index e69de29bb..df891e304 100644 --- a/yardstick/cmd/__init__.py +++ b/yardstick/cmd/__init__.py @@ -0,0 +1,15 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + + +def print_hbar(barlen): + '''print to stdout a horizontal bar''' + print("+"), + print("-" * barlen), + print("+") diff --git a/yardstick/cmd/cli.py b/yardstick/cmd/cli.py index 78e4e4c20..3f6c73cc5 100644 --- a/yardstick/cmd/cli.py +++ b/yardstick/cmd/cli.py @@ -18,6 +18,8 @@ from pkg_resources import get_distribution from argparse import RawDescriptionHelpFormatter from yardstick.cmd.commands import task +from yardstick.cmd.commands import runner +from yardstick.cmd.commands import scenario class YardstickCLI(): @@ -25,7 +27,9 @@ class YardstickCLI(): # Command categories categories = { - 'task': task.TaskCommands + 'task': task.TaskCommands, + 'runner': runner.RunnerCommands, + 'scenario': scenario.ScenarioCommands } def __init__(self): diff --git a/yardstick/cmd/commands/runner.py b/yardstick/cmd/commands/runner.py new file mode 100644 index 000000000..84bc3c6cf --- /dev/null +++ b/yardstick/cmd/commands/runner.py @@ -0,0 +1,38 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +""" Handler for yardstick command 'runner' """ + +from yardstick.benchmark.runners.base import Runner +from yardstick.common.utils import cliargs +from yardstick.cmd import print_hbar + + +class RunnerCommands(object): + '''Runner commands. + + Set of commands to discover and display runner types. + ''' + + def do_list(self, args): + '''List existing runner types''' + types = Runner.get_types() + print_hbar(78) + print("| %-16s | %-60s" % ("Type", "Description")) + print_hbar(78) + for rtype in types: + print "| %-16s | %-60s" % (rtype.__execution_type__, + rtype.__doc__.split("\n")[0]) + print_hbar(78) + + @cliargs("type", type=str, help="runner type", nargs=1) + def do_show(self, args): + '''Show details of a specific runner type''' + rtype = Runner.get_cls(args.type[0]) + print rtype.__doc__ diff --git a/yardstick/cmd/commands/scenario.py b/yardstick/cmd/commands/scenario.py new file mode 100644 index 000000000..00d46cf11 --- /dev/null +++ b/yardstick/cmd/commands/scenario.py @@ -0,0 +1,38 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +""" Handler for yardstick command 'scenario' """ + +from yardstick.benchmark.scenarios.base import Scenario +from yardstick.common.utils import cliargs +from yardstick.cmd import print_hbar + + +class ScenarioCommands(object): + '''Scenario commands. + + Set of commands to discover and display scenario types. + ''' + + def do_list(self, args): + '''List existing scenario types''' + types = Scenario.get_types() + print_hbar(78) + print("| %-16s | %-60s" % ("Type", "Description")) + print_hbar(78) + for stype in types: + print("| %-16s | %-60s" % (stype.__scenario_type__, + stype.__doc__.split("\n")[0])) + print_hbar(78) + + @cliargs("type", type=str, help="runner type", nargs=1) + def do_show(self, args): + '''Show details of a specific scenario type''' + stype = Scenario.get_cls(args.type[0]) + print stype.__doc__ |