diff options
| author | Jordan Pittier <jordan.pittier@scality.com> | 2016-11-10 16:19:01 +0100 |
|---|---|---|
| committer | Jordan Pittier <jordan.pittier@scality.com> | 2016-11-10 16:30:23 +0100 |
| commit | 52279b1b04924284576966eb33192dd1301683bb (patch) | |
| tree | 0092fbb6679104b9641574ea5c90895983fa3060 /openstackclient/network/common.py | |
| parent | b37ad9992b69c16644222e8f092cd4bdc5e8292a (diff) | |
| download | python-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.py | 17 |
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) |
