From 638398e593ab95b8e280a3dafd9e1258dd5560e0 Mon Sep 17 00:00:00 2001 From: Taseer Date: Mon, 13 Mar 2017 21:13:45 +0500 Subject: Implement 'show' command. - Render the description via templates JIRA: QTIP-205 Change-Id: I10523f85f80350e901a4a701bb65ca4833f8ff7c Signed-off-by: Taseer Ahmed (cherry picked from commit bb5af4b9be1325b61c7f80e71c7d50892ae22956) --- qtip/cli/commands/cmd_metric.py | 5 ++++- qtip/cli/commands/cmd_plan.py | 5 ++++- qtip/cli/commands/cmd_qpi.py | 5 ++++- qtip/cli/templates/metric.j2 | 6 ++++++ qtip/cli/templates/plan.j2 | 2 ++ qtip/cli/templates/qpi.j2 | 12 ++++++++++++ qtip/cli/utils.py | 13 +++++++++++++ 7 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 qtip/cli/templates/metric.j2 create mode 100644 qtip/cli/templates/plan.j2 create mode 100644 qtip/cli/templates/qpi.j2 (limited to 'qtip') diff --git a/qtip/cli/commands/cmd_metric.py b/qtip/cli/commands/cmd_metric.py index e8d86972..31b7b702 100644 --- a/qtip/cli/commands/cmd_metric.py +++ b/qtip/cli/commands/cmd_metric.py @@ -35,7 +35,10 @@ def cmd_list(ctx): @click.argument('name') @pass_context def show(ctx, name): - pass + metric = MetricSpec('{}.yaml'.format(name)) + cnt = metric.content + output = utils.render('metric', cnt) + click.echo(output) @cli.command('run', help='Run tests to run Performance Metrics') diff --git a/qtip/cli/commands/cmd_plan.py b/qtip/cli/commands/cmd_plan.py index 2f07965d..90773491 100644 --- a/qtip/cli/commands/cmd_plan.py +++ b/qtip/cli/commands/cmd_plan.py @@ -43,7 +43,10 @@ def list(ctx): @click.argument('name') @pass_context def show(ctx, name): - pass + plan = Plan('{}.yaml'.format(name)) + cnt = plan.content + output = utils.render('plan', cnt) + click.echo(output) @cli.command('run', help='Execute a Plan') diff --git a/qtip/cli/commands/cmd_qpi.py b/qtip/cli/commands/cmd_qpi.py index a12fa983..1f23211e 100644 --- a/qtip/cli/commands/cmd_qpi.py +++ b/qtip/cli/commands/cmd_qpi.py @@ -36,7 +36,10 @@ def cmd_list(ctx): @click.argument('name') @pass_context def show(ctx, name): - pass + qpi = QPISpec('{}.yaml'.format(name)) + cnt = qpi.content + output = utils.render('qpi', cnt) + click.echo(output) @cli.command('run', help='Run performance tests for the specified QPI') diff --git a/qtip/cli/templates/metric.j2 b/qtip/cli/templates/metric.j2 new file mode 100644 index 00000000..126587f9 --- /dev/null +++ b/qtip/cli/templates/metric.j2 @@ -0,0 +1,6 @@ +Name: {{ name }} +Description: {{ description }} +Workloads: +{% for wl in workloads %} + {{ wl }} +{% endfor %} diff --git a/qtip/cli/templates/plan.j2 b/qtip/cli/templates/plan.j2 new file mode 100644 index 00000000..c9adccc8 --- /dev/null +++ b/qtip/cli/templates/plan.j2 @@ -0,0 +1,2 @@ +Name: {{ name }} +Description: {{ description }} diff --git a/qtip/cli/templates/qpi.j2 b/qtip/cli/templates/qpi.j2 new file mode 100644 index 00000000..cc85f10d --- /dev/null +++ b/qtip/cli/templates/qpi.j2 @@ -0,0 +1,12 @@ +Name: {{ title }} +Description: {{ description }} +{% for section in sections %} + Name: {{ section.name }} + Weight: {{ section.weight }} + Formula: {{ section.formula }} + Metrics: + {% for metric in section.metrics %} + {{ metric }} + {% endfor %} +{% endfor %} + diff --git a/qtip/cli/utils.py b/qtip/cli/utils.py index 844d4f34..a7473236 100644 --- a/qtip/cli/utils.py +++ b/qtip/cli/utils.py @@ -7,6 +7,9 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## +from jinja2 import Environment +from jinja2 import FileSystemLoader +from os import path from prettytable import PrettyTable @@ -16,3 +19,13 @@ def table(name, components): table.align[name] = 'l' [table.add_row([component['name'][0:-5]]) for component in components] return table + + +def render(name, var_dict): + """ Get the templates to render for specific component """ + tmpl_path = path.join(path.dirname(__file__), 'templates') + tmpl_loader = FileSystemLoader(tmpl_path) + env = Environment(loader=tmpl_loader) + template = env.get_template('{}.j2'.format(name)) + result = template.render(var_dict) + return result -- cgit 1.2.3-korg