summaryrefslogtreecommitdiff
path: root/openstackclient/compute
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-05-06 14:07:54 +0000
committerGerrit Code Review <review@openstack.org>2016-05-06 14:07:54 +0000
commit467ed54d6d55dbb50c8e4c8964e5baa5b8854bde (patch)
tree088614abf3e62bd0ec1bfdf611b468613e03a5e2 /openstackclient/compute
parent5df18843b7aeb2f9254f55e4127c44d6fbf66efb (diff)
parent681d6dc2de83ef13b4fb2fb4abe70f3c1ccb0e10 (diff)
downloadpython-openstackclient-467ed54d6d55dbb50c8e4c8964e5baa5b8854bde.tar.gz
Merge "Make "flavor show" command to show a private flavor properly"
Diffstat (limited to 'openstackclient/compute')
-rw-r--r--openstackclient/compute/v2/flavor.py31
1 files changed, 23 insertions, 8 deletions
diff --git a/openstackclient/compute/v2/flavor.py b/openstackclient/compute/v2/flavor.py
index 04674614..4b918369 100644
--- a/openstackclient/compute/v2/flavor.py
+++ b/openstackclient/compute/v2/flavor.py
@@ -18,10 +18,29 @@
import six
from openstackclient.common import command
+from openstackclient.common import exceptions
from openstackclient.common import parseractions
from openstackclient.common import utils
+def _find_flavor(compute_client, flavor):
+ try:
+ return compute_client.flavors.get(flavor)
+ except Exception as ex:
+ if type(ex).__name__ == 'NotFound':
+ pass
+ else:
+ raise
+ try:
+ return compute_client.flavors.find(name=flavor, is_public=None)
+ except Exception as ex:
+ if type(ex).__name__ == 'NotFound':
+ msg = "No flavor with a name or ID of '%s' exists." % flavor
+ raise exceptions.CommandError(msg)
+ else:
+ raise
+
+
class CreateFlavor(command.ShowOne):
"""Create new flavor"""
@@ -132,8 +151,7 @@ class DeleteFlavor(command.Command):
def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute
- flavor = utils.find_resource(compute_client.flavors,
- parsed_args.flavor)
+ flavor = _find_flavor(compute_client, parsed_args.flavor)
compute_client.flavors.delete(flavor.id)
@@ -239,8 +257,7 @@ class SetFlavor(command.Command):
def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute
- flavor = utils.find_resource(compute_client.flavors,
- parsed_args.flavor)
+ flavor = _find_flavor(compute_client, parsed_args.flavor)
flavor.set_keys(parsed_args.property)
@@ -258,8 +275,7 @@ class ShowFlavor(command.ShowOne):
def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute
- resource_flavor = utils.find_resource(compute_client.flavors,
- parsed_args.flavor)
+ resource_flavor = _find_flavor(compute_client, parsed_args.flavor)
flavor = resource_flavor._info.copy()
flavor.pop("links", None)
@@ -290,6 +306,5 @@ class UnsetFlavor(command.Command):
def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute
- flavor = utils.find_resource(compute_client.flavors,
- parsed_args.flavor)
+ flavor = _find_flavor(compute_client, parsed_args.flavor)
flavor.unset_keys(parsed_args.property)