summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Rabotyagov <noonedeadpunk@ya.ru>2020-12-01 12:44:30 +0200
committerDmitriy Rabotyagov <noonedeadpunk@ya.ru>2020-12-01 13:44:23 +0200
commit0f02029d917366c6c757ebd2644d83e4fef1f33e (patch)
tree8c1e706db42fbcf10d1ee280015ec8cfc9eb5c31
parent8387b114e38f21922967ba982bb1a25289fdb3ab (diff)
downloadpython-openstackclient-0f02029d917366c6c757ebd2644d83e4fef1f33e.tar.gz
Add option to filter instances by AZ
Since nova API microversion 2.83 it is possible for users to filter instances by AZ. However even before that this functionality was available for admin role. Change-Id: Ife4c8e81aad2ff1dde50d9f23913d9dd9397b00c
-rw-r--r--openstackclient/compute/v2/server.py8
-rw-r--r--openstackclient/tests/unit/compute/v2/test_server.py1
2 files changed, 9 insertions, 0 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index 1e39010a..c6da0fba 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -1366,6 +1366,13 @@ class ListServer(command.Lister):
def get_parser(self, prog_name):
parser = super(ListServer, self).get_parser(prog_name)
parser.add_argument(
+ '--availability-zone',
+ metavar='<availability-zone>',
+ help=_('Only return instances that match the availability zone. '
+ 'Note that this option will be ignored for non-admin users '
+ 'when using ``--os-compute-api-version`` prior to 2.83.'),
+ )
+ parser.add_argument(
'--reservation-id',
metavar='<reservation-id>',
help=_('Only return instances that match the reservation'),
@@ -1574,6 +1581,7 @@ class ListServer(command.Lister):
ignore_missing=False).id
search_opts = {
+ 'availability_zone': parsed_args.availability_zone,
'reservation_id': parsed_args.reservation_id,
'ip': parsed_args.ip,
'ip6': parsed_args.ip6,
diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py
index 5fd15e6a..dfb8df30 100644
--- a/openstackclient/tests/unit/compute/v2/test_server.py
+++ b/openstackclient/tests/unit/compute/v2/test_server.py
@@ -2962,6 +2962,7 @@ class TestServerList(TestServer):
super(TestServerList, self).setUp()
self.search_opts = {
+ 'availability_zone': None,
'reservation_id': None,
'ip': None,
'ip6': None,