Skip to content

Commit fa4b11a

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "Add filtering by user for 'openstack server list'"
2 parents 1e36b12 + 10db0df commit fa4b11a

2 files changed

Lines changed: 25 additions & 1 deletion

File tree

doc/source/command-objects/server.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,15 @@ List servers
237237
Domain the project belongs to (name or ID).
238238
This can be used in case collisions between project names exist.
239239
240+
.. option:: --user <user>
241+
242+
Search by user (admin only) (name or ID)
243+
244+
.. option:: --user-domain <user-domain>
245+
246+
Domain the user belongs to (name or ID).
247+
This can be used in case collisions between user names exist.
248+
240249
.. option:: --long
241250
242251
List additional fields in output

openstackclient/compute/v2/server.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -705,6 +705,12 @@ def get_parser(self, prog_name):
705705
metavar='<project>',
706706
help="Search by project (admin only) (name or ID)")
707707
identity_common.add_project_domain_option_to_parser(parser)
708+
parser.add_argument(
709+
'--user',
710+
metavar='<user>',
711+
help=_('Search by user (admin only) (name or ID)'),
712+
)
713+
identity_common.add_user_domain_option_to_parser(parser)
708714
parser.add_argument(
709715
'--long',
710716
action='store_true',
@@ -716,17 +722,25 @@ def get_parser(self, prog_name):
716722
def take_action(self, parsed_args):
717723
self.log.debug('take_action(%s)', parsed_args)
718724
compute_client = self.app.client_manager.compute
725+
identity_client = self.app.client_manager.identity
719726

720727
project_id = None
721728
if parsed_args.project:
722-
identity_client = self.app.client_manager.identity
723729
project_id = identity_common.find_project(
724730
identity_client,
725731
parsed_args.project,
726732
parsed_args.project_domain,
727733
).id
728734
parsed_args.all_projects = True
729735

736+
user_id = None
737+
if parsed_args.user:
738+
user_id = identity_common.find_project(
739+
identity_client,
740+
parsed_args.user,
741+
parsed_args.user_domain,
742+
).id
743+
730744
search_opts = {
731745
'reservation_id': parsed_args.reservation_id,
732746
'ip': parsed_args.ip,
@@ -739,6 +753,7 @@ def take_action(self, parsed_args):
739753
'host': parsed_args.host,
740754
'tenant_id': project_id,
741755
'all_tenants': parsed_args.all_projects,
756+
'user_id': user_id,
742757
}
743758
self.log.debug('search options: %s', search_opts)
744759

0 commit comments

Comments
 (0)