From 0069a0196717eb7ba60bcda5b89bf87608cc01dd Mon Sep 17 00:00:00 2001 From: Tang Chen <tangchen@cn.fujitsu.com> Date: Wed, 2 Dec 2015 13:47:15 +0800 Subject: [PATCH] Support "server list" searching by both flavor name and ID. Nova API only supports list servers searching by flavor ID. In OSC, we can support both flavor name and ID by mapping the name to ID. This patch also fix the inconsistent doc in .py and .rst files. Partial-Bug: 1521492 Change-Id: I1d1a6aa91aef4e2846745babe8382481185fa96e --- doc/source/command-objects/server.rst | 2 +- openstackclient/compute/v2/server.py | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/doc/source/command-objects/server.rst b/doc/source/command-objects/server.rst index 70b4748251..59c047ad6d 100644 --- a/doc/source/command-objects/server.rst +++ b/doc/source/command-objects/server.rst @@ -216,7 +216,7 @@ List servers .. option:: --flavor <flavor> - Search by flavor ID + Search by flavor (name or ID) .. option:: --image <image> diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py index 9dca784487..42699f8d2a 100644 --- a/openstackclient/compute/v2/server.py +++ b/openstackclient/compute/v2/server.py @@ -712,7 +712,7 @@ class ListServer(lister.Lister): parser.add_argument( '--flavor', metavar='<flavor>', - help=_('Search by flavor'), + help=_('Search by flavor (name or ID)'), ) parser.add_argument( '--image', @@ -789,6 +789,13 @@ class ListServer(lister.Lister): parsed_args.user_domain, ).id + # Nova only supports list servers searching by flavor ID. So if a + # flavor name is given, map it to ID. + flavor_id = None + if parsed_args.flavor: + flavor_id = utils.find_resource(compute_client.flavors, + parsed_args.flavor).id + search_opts = { 'reservation_id': parsed_args.reservation_id, 'ip': parsed_args.ip, @@ -796,7 +803,7 @@ class ListServer(lister.Lister): 'name': parsed_args.name, 'instance_name': parsed_args.instance_name, 'status': parsed_args.status, - 'flavor': parsed_args.flavor, + 'flavor': flavor_id, 'image': parsed_args.image, 'host': parsed_args.host, 'tenant_id': project_id,