summaryrefslogtreecommitdiff
path: root/openstackclient/network/common.py
diff options
context:
space:
mode:
authorJordan Pittier <jordan.pittier@scality.com>2016-11-10 16:19:01 +0100
committerJordan Pittier <jordan.pittier@scality.com>2016-11-10 16:30:23 +0100
commit52279b1b04924284576966eb33192dd1301683bb (patch)
tree0092fbb6679104b9641574ea5c90895983fa3060 /openstackclient/network/common.py
parentb37ad9992b69c16644222e8f092cd4bdc5e8292a (diff)
downloadpython-openstackclient-52279b1b04924284576966eb33192dd1301683bb.tar.gz
network.common.NetworkAndComputeShowOne: catch HttpException
Problem: if a user issue the cmd 'openstack floating ip create public' and has already maxed his quota for FIP, OSC exits with a not so useful message: >jordan@jordan-XPS13-9333:~ $ openstack floating ip create public >HttpException: Conflict This patches catch the HttpException earlier and prints a more verbose message: > jordan@jordan-XPS13-9333:~ $ openstack floating ip create public > Error while executing command: Quota exceeded for resources: ['floatingip'] Change-Id: I7c87524d871d230d92f007c32e06439b34c7194a
Diffstat (limited to 'openstackclient/network/common.py')
-rw-r--r--openstackclient/network/common.py17
1 files changed, 11 insertions, 6 deletions
diff --git a/openstackclient/network/common.py b/openstackclient/network/common.py
index 2b1a5656..a2e700be 100644
--- a/openstackclient/network/common.py
+++ b/openstackclient/network/common.py
@@ -14,6 +14,7 @@
import abc
import logging
+import openstack.exceptions
from osc_lib.command import command
from osc_lib import exceptions
import six
@@ -181,12 +182,16 @@ class NetworkAndComputeShowOne(command.ShowOne):
"""
def take_action(self, parsed_args):
- if self.app.client_manager.is_network_endpoint_enabled():
- return self.take_action_network(self.app.client_manager.network,
- parsed_args)
- else:
- return self.take_action_compute(self.app.client_manager.compute,
- parsed_args)
+ try:
+ if self.app.client_manager.is_network_endpoint_enabled():
+ return self.take_action_network(
+ self.app.client_manager.network, parsed_args)
+ else:
+ return self.take_action_compute(
+ self.app.client_manager.compute, parsed_args)
+ except openstack.exceptions.HttpException as exc:
+ msg = _("Error while executing command: %s") % exc.message
+ raise exceptions.CommandError(msg)
def get_parser(self, prog_name):
LOG.debug('get_parser(%s)', prog_name)