diff options
| author | Terry Howe <terrylhowe@gmail.com> | 2014-03-31 14:48:42 -0600 |
|---|---|---|
| committer | Terry Howe <terrylhowe@gmail.com> | 2014-04-01 09:03:45 -0600 |
| commit | e72072adc3b62b5ef8e3076169fed19dea9995f7 (patch) | |
| tree | b953248f2c9a94085a0e2b9dd9ebe5471d455dc4 /openstackclient/identity | |
| parent | ee22070473dab8bfa3e89d47f1f5a77918c2b026 (diff) | |
| download | python-openstackclient-e72072adc3b62b5ef8e3076169fed19dea9995f7.tar.gz | |
Fix the project option to user list so it filters
The --project option to the user list command was not implemented
* Allow users to be filted by project
* Support id or name of project with the find_resource command
* Make sure the report does not contain duplicates
Change-Id: Ic0e10cccd7749d38a7d4b80bbdc68e61a660084b
Closes-Bug: #1177255
Diffstat (limited to 'openstackclient/identity')
| -rw-r--r-- | openstackclient/identity/v2_0/user.py | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/openstackclient/identity/v2_0/user.py b/openstackclient/identity/v2_0/user.py index 628be4b8..688306ba 100644 --- a/openstackclient/identity/v2_0/user.py +++ b/openstackclient/identity/v2_0/user.py @@ -156,6 +156,7 @@ class ListUser(lister.Lister): def take_action(self, parsed_args): self.log.debug('take_action(%s)' % parsed_args) + identity_client = self.app.client_manager.identity def _format_project(project): if not project: @@ -165,6 +166,14 @@ class ListUser(lister.Lister): else: return project + project = None + if parsed_args.project: + project = utils.find_resource( + identity_client.tenants, + parsed_args.project, + ) + project = project.id + if parsed_args.long: columns = ( 'ID', @@ -183,14 +192,20 @@ class ListUser(lister.Lister): # Cache the project list project_cache = {} try: - for p in self.app.client_manager.identity.tenants.list(): + for p in identity_client.tenants.list(): project_cache[p.id] = p except Exception: # Just forget it if there's any trouble pass else: columns = column_headers = ('ID', 'Name') - data = self.app.client_manager.identity.users.list() + data = identity_client.users.list(tenant_id=project) + + if parsed_args.project: + d = {} + for s in data: + d[s.id] = s + data = d.values() if parsed_args.long: # FIXME(dtroyer): Sometimes user objects have 'tenant_id' instead |
