diff options
author | Taseer <taseer94@gmail.com> | 2017-03-10 17:18:22 +0500 |
---|---|---|
committer | Taseer <taseer94@gmail.com> | 2017-03-10 17:34:47 +0500 |
commit | 0bd051505c2851d61356e7c448d7802913ab785f (patch) | |
tree | 7e6ef22745416a747023369258e5cd4fbd5b9f00 | |
parent | c5f64d5114be98cbe6a74c2078b22b741ae984a4 (diff) |
Implement 'list' command.
- Loads Qtip components from the default path.
JIRA: QTIP-205
Change-Id: Id87993d65c5cd6a23c199cf1049d75a0971b6354
Signed-off-by: Taseer Ahmed <taseer94@gmail.com>
-rw-r--r-- | qtip/cli/commands/cmd_metric.py | 8 | ||||
-rw-r--r-- | qtip/cli/commands/cmd_plan.py | 8 | ||||
-rw-r--r-- | qtip/cli/commands/cmd_qpi.py | 8 | ||||
-rw-r--r-- | qtip/cli/utils.py | 18 | ||||
-rw-r--r-- | requirements.txt | 2 | ||||
-rw-r--r-- | tests/unit/cli/cmd_metric_test.py | 8 | ||||
-rw-r--r-- | tests/unit/cli/cmd_plan_test.py | 4 | ||||
-rw-r--r-- | tests/unit/cli/cmd_qpi_test.py | 6 |
8 files changed, 48 insertions, 14 deletions
diff --git a/qtip/cli/commands/cmd_metric.py b/qtip/cli/commands/cmd_metric.py index b6035e2d..e8d86972 100644 --- a/qtip/cli/commands/cmd_metric.py +++ b/qtip/cli/commands/cmd_metric.py @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 2016 ZTE Corp and others. +# Copyright (c) 2017 taseer94@gmail.com and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -9,7 +9,9 @@ import click +from qtip.cli import utils from qtip.cli.entry import Context +from qtip.loader.metric import MetricSpec pass_context = click.make_pass_decorator(Context, ensure=False) @@ -24,7 +26,9 @@ def cli(ctx): @cli.command('list', help='List all the Metric Groups') @pass_context def cmd_list(ctx): - pass + metrics = MetricSpec.list_all() + table = utils.table('Metrics', metrics) + click.echo(table) @cli.command('show', help='View details of a Metric') diff --git a/qtip/cli/commands/cmd_plan.py b/qtip/cli/commands/cmd_plan.py index 64c702d3..2f07965d 100644 --- a/qtip/cli/commands/cmd_plan.py +++ b/qtip/cli/commands/cmd_plan.py @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 2016 ZTE Corp and others. +# Copyright (c) 2016 taseer94@gmail.com and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -10,7 +10,9 @@ import click +from qtip.cli import utils from qtip.cli.entry import Context +from qtip.loader.plan import Plan pass_context = click.make_pass_decorator(Context, ensure=False) @@ -32,7 +34,9 @@ def init(ctx): @cli.command('list', help='List the Plans') @pass_context def list(ctx): - pass + plans = Plan.list_all() + table = utils.table('Plans', plans) + click.echo(table) @cli.command('show', help='View details of a Plan') diff --git a/qtip/cli/commands/cmd_qpi.py b/qtip/cli/commands/cmd_qpi.py index 5fc9bec8..a12fa983 100644 --- a/qtip/cli/commands/cmd_qpi.py +++ b/qtip/cli/commands/cmd_qpi.py @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 2016 ZTE Corp and others. +# Copyright (c) 2017 taseer94@gmail.com and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -10,7 +10,9 @@ import click +from qtip.cli import utils from qtip.cli.entry import Context +from qtip.loader.qpi import QPISpec pass_context = click.make_pass_decorator(Context, ensure=False) @@ -25,7 +27,9 @@ def cli(ctx): @cli.command('list', help='List all the QPI specs') @pass_context def cmd_list(ctx): - pass + qpis = QPISpec.list_all() + table = utils.table('QPIs', qpis) + click.echo(table) @cli.command('show', help='View details of a QPI') diff --git a/qtip/cli/utils.py b/qtip/cli/utils.py new file mode 100644 index 00000000..844d4f34 --- /dev/null +++ b/qtip/cli/utils.py @@ -0,0 +1,18 @@ +############################################################################## +# Copyright (c) 2017 taseer94@gmail.com 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 +############################################################################## + +from prettytable import PrettyTable + + +def table(name, components): + """ Return a PrettyTable for component listing """ + table = PrettyTable([name]) + table.align[name] = 'l' + [table.add_row([component['name'][0:-5]]) for component in components] + return table diff --git a/requirements.txt b/requirements.txt index c51228f2..d00b3cf1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,3 +4,5 @@ paramiko connexion numpy pbr +ConfigParser +prettytable diff --git a/tests/unit/cli/cmd_metric_test.py b/tests/unit/cli/cmd_metric_test.py index 30f3448a..e121fb1e 100644 --- a/tests/unit/cli/cmd_metric_test.py +++ b/tests/unit/cli/cmd_metric_test.py @@ -1,5 +1,5 @@ ############################################################### -# Copyright (c) 2016 ZTE Corp and others. +# Copyright (c) 2017 taseer94@gmail.com and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -8,8 +8,8 @@ ############################################################################## import pytest -from click.testing import CliRunner +from click.testing import CliRunner from qtip.cli.entry import cli @@ -20,7 +20,9 @@ def runner(): def test_list(runner): result = runner.invoke(cli, ['metric', 'list']) - assert result.output == '' + assert 'dhrystone' and 'whetstone' and 'dpi' and \ + 'ramspeed' and 'fake-metric' and 'ssl' \ + in result.output def test_run(runner): diff --git a/tests/unit/cli/cmd_plan_test.py b/tests/unit/cli/cmd_plan_test.py index 1708c340..7c3335fc 100644 --- a/tests/unit/cli/cmd_plan_test.py +++ b/tests/unit/cli/cmd_plan_test.py @@ -1,5 +1,5 @@ ############################################################### -# Copyright (c) 2016 ZTE Corp and others. +# Copyright (c) 2017 taseer94@gmail.com and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -20,7 +20,7 @@ def runner(): def test_list(runner): result = runner.invoke(cli, ['plan', 'list']) - assert result.output == '' + assert 'Plan' and 'compute' and 'sample' in result.output def test_run(runner): diff --git a/tests/unit/cli/cmd_qpi_test.py b/tests/unit/cli/cmd_qpi_test.py index 485d5462..7067d62c 100644 --- a/tests/unit/cli/cmd_qpi_test.py +++ b/tests/unit/cli/cmd_qpi_test.py @@ -1,5 +1,5 @@ ############################################################### -# Copyright (c) 2016 ZTE Corp and others. +# Copyright (c) 2017 taseer94@gmail.com and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -8,9 +8,9 @@ ############################################################################## import pytest -from click.testing import CliRunner from qtip.cli.entry import cli +from click.testing import CliRunner @pytest.fixture(scope="module") @@ -20,7 +20,7 @@ def runner(): def test_list(runner): result = runner.invoke(cli, ['qpi', 'list']) - assert result.output == '' + assert 'QPIs' and 'compute' in result.output def test_run(runner): |