summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 59c047ad..627b6733 100644
--- a/doc/source/command-objects/server.rst
+++ b/doc/source/command-objects/server.rst
@@ -220,7 +220,7 @@ List servers
.. option:: --image <image>
- Search by image ID
+ Search by image (name or ID)
.. option:: --host <hostname>
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index 42699f8d..d58ebacd 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -717,7 +717,7 @@ class ListServer(lister.Lister):
parser.add_argument(
'--image',
metavar='<image>',
- help=_('Search by image'),
+ help=_('Search by image (name or ID)'),
)
parser.add_argument(
'--host',
@@ -796,6 +796,13 @@ class ListServer(lister.Lister):
flavor_id = utils.find_resource(compute_client.flavors,
parsed_args.flavor).id
+ # Nova only supports list servers searching by image ID. So if a
+ # image name is given, map it to ID.
+ image_id = None
+ if parsed_args.image:
+ image_id = utils.find_resource(compute_client.images,
+ parsed_args.image).id
+
search_opts = {
'reservation_id': parsed_args.reservation_id,
'ip': parsed_args.ip,
@@ -804,7 +811,7 @@ class ListServer(lister.Lister):
'instance_name': parsed_args.instance_name,
'status': parsed_args.status,
'flavor': flavor_id,
- 'image': parsed_args.image,
+ 'image': image_id,
'host': parsed_args.host,
'tenant_id': project_id,
'all_tenants': parsed_args.all_projects,