aboutsummaryrefslogtreecommitdiffstats
path: root/qtip/cli
diff options
context:
space:
mode:
authorTaseer <taseer94@gmail.com>2017-04-11 21:39:18 +0500
committerTaseer <taseer94@gmail.com>2017-04-13 11:55:43 +0500
commitb694a4a2d4719169ccc7fb3696367bca7118b513 (patch)
tree69c45568078b9ade485b9ff0b28e0ceec80a75c0 /qtip/cli
parenta4878f6c98855f5392324e0e72df3e2711022dd9 (diff)
User friendly messages for exceptions
- Use colorama for color - Implement verbosity option in separate patch Change-Id: Ib2491d867e9bbf59cb00874d99a11f86ad7eea1b Signed-off-by: Taseer Ahmed <taseer94@gmail.com>
Diffstat (limited to 'qtip/cli')
-rw-r--r--qtip/cli/commands/cmd_metric.py17
-rw-r--r--qtip/cli/commands/cmd_plan.py17
-rw-r--r--qtip/cli/commands/cmd_qpi.py17
3 files changed, 39 insertions, 12 deletions
diff --git a/qtip/cli/commands/cmd_metric.py b/qtip/cli/commands/cmd_metric.py
index a2208444..1741fb48 100644
--- a/qtip/cli/commands/cmd_metric.py
+++ b/qtip/cli/commands/cmd_metric.py
@@ -8,8 +8,11 @@
##############################################################################
import click
+from colorama import Fore
import os
+from qtip.base.error import InvalidContentError
+from qtip.base.error import NotFoundError
from qtip.cli import utils
from qtip.cli.entry import Context
from qtip.loader.metric import MetricSpec
@@ -36,10 +39,16 @@ def cmd_list(ctx):
@click.argument('name')
@pass_context
def show(ctx, name):
- metric = MetricSpec('{}.yaml'.format(name))
- cnt = metric.content
- output = utils.render('metric', cnt)
- click.echo(output)
+ try:
+ metric = MetricSpec('{}.yaml'.format(name))
+ except NotFoundError as nf:
+ click.echo(Fore.RED + "ERROR: metric spec: " + nf.message)
+ except InvalidContentError as ice:
+ click.echo(Fore.RED + "ERROR: metric spec " + ice.message)
+ else:
+ cnt = metric.content
+ output = utils.render('metric', cnt)
+ click.echo(output)
@cli.command('run', help='Run performance test')
diff --git a/qtip/cli/commands/cmd_plan.py b/qtip/cli/commands/cmd_plan.py
index beb61b0e..b7c540b7 100644
--- a/qtip/cli/commands/cmd_plan.py
+++ b/qtip/cli/commands/cmd_plan.py
@@ -9,8 +9,11 @@
import click
+from colorama import Fore
import os
+from qtip.base.error import InvalidContentError
+from qtip.base.error import NotFoundError
from qtip.cli import utils
from qtip.cli.entry import Context
from qtip.loader.plan import Plan
@@ -44,10 +47,16 @@ def list(ctx):
@click.argument('name')
@pass_context
def show(ctx, name):
- plan = Plan('{}.yaml'.format(name))
- cnt = plan.content
- output = utils.render('plan', cnt)
- click.echo(output)
+ try:
+ plan = Plan('{}.yaml'.format(name))
+ except NotFoundError as nf:
+ click.echo(Fore.RED + "ERROR: plan spec: " + nf.message)
+ except InvalidContentError as ice:
+ click.echo(Fore.RED + "ERROR: plan spec: " + ice.message)
+ else:
+ 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 1e3671c5..a47442b7 100644
--- a/qtip/cli/commands/cmd_qpi.py
+++ b/qtip/cli/commands/cmd_qpi.py
@@ -9,8 +9,11 @@
import click
+from colorama import Fore
import os
+from qtip.base.error import InvalidContentError
+from qtip.base.error import NotFoundError
from qtip.cli import utils
from qtip.cli.entry import Context
from qtip.loader.qpi import QPISpec
@@ -37,10 +40,16 @@ def cmd_list(ctx):
@click.argument('name')
@pass_context
def show(ctx, name):
- qpi = QPISpec('{}.yaml'.format(name))
- cnt = qpi.content
- output = utils.render('qpi', cnt)
- click.echo(output)
+ try:
+ qpi = QPISpec('{}.yaml'.format(name))
+ except NotFoundError as nf:
+ click.echo(Fore.RED + "ERROR: qpi spec: " + nf.message)
+ except InvalidContentError as ice:
+ click.echo(Fore.RED + "ERROR: qpi spec: " + ice.message)
+ else:
+ cnt = qpi.content
+ output = utils.render('qpi', cnt)
+ click.echo(output)
@cli.command('run', help='Run performance tests for the specified QPI')