summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTang Chen <tangchen@cn.fujitsu.com>2015-12-02 13:47:15 +0800
committerSteve Martinelli <stevemar@ca.ibm.com>2015-12-01 06:59:08 +0000
commit0069a0196717eb7ba60bcda5b89bf87608cc01dd (patch)
treebb3e60ad4313719e94f9a3f202ee598cf2e96c4b
parentcb73e781e0b8d6a8104e3434dcf727f2e2dd4a9e (diff)
downloadpython-openstackclient-0069a0196717eb7ba60bcda5b89bf87608cc01dd.tar.gz
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
-rw-r--r--doc/source/command-objects/server.rst2
-rw-r--r--openstackclient/compute/v2/server.py11
2 files changed, 10 insertions, 3 deletions
diff --git a/doc/source/command-objects/server.rst b/doc/source/command-objects/server.rst
index 70b47482..59c047ad 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 9dca7844..42699f8d 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,