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
This commit is contained in:
Tang Chen 2015-12-02 13:47:15 +08:00 committed by Steve Martinelli
parent cb73e781e0
commit 0069a01967
2 changed files with 10 additions and 3 deletions

View File

@ -216,7 +216,7 @@ List servers
.. option:: --flavor <flavor>
Search by flavor ID
Search by flavor (name or ID)
.. option:: --image <image>

View File

@ -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,