summaryrefslogtreecommitdiffstats
path: root/yardstick/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'yardstick/cmd')
-rw-r--r--yardstick/cmd/__init__.py15
-rw-r--r--yardstick/cmd/cli.py6
-rw-r--r--yardstick/cmd/commands/runner.py38
-rw-r--r--yardstick/cmd/commands/scenario.py38
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__