Skip to content

Commit 7d138b9

Browse files
author
Dean Troyer
committed
Remove tenant round 3 - other commands
Mostly options and help strings: * image, server, project usage, volume Change-Id: I788b0660f8c2daacde53c20a72dd1afc60cf5159
1 parent c385180 commit 7d138b9

5 files changed

Lines changed: 37 additions & 14 deletions

File tree

‎openstackclient/common/utils.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ def format_dict(data):
9191
def get_item_properties(item, fields, mixed_case_fields=[], formatters={}):
9292
"""Return a tuple containing the item properties.
9393
94-
:param item: a single item resource (e.g. Server, Tenant, etc)
94+
:param item: a single item resource (e.g. Server, Project, etc)
9595
:param fields: tuple of strings with the desired field names
9696
:param mixed_case_fields: tuple of field names to preserve case
9797
:param formatters: dictionary mapping field names to callables

‎openstackclient/compute/v2/server.py‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -414,10 +414,10 @@ def get_parser(self, prog_name):
414414
metavar='<server-name>',
415415
help='regular expression to match instance name (admin only)')
416416
parser.add_argument(
417-
'--all-tenants',
417+
'--all-projects',
418418
action='store_true',
419-
default=bool(int(os.environ.get("ALL_TENANTS", 0))),
420-
help='display information from all tenants (admin only)')
419+
default=bool(int(os.environ.get("ALL_PROJECTS", 0))),
420+
help='Include all projects (admin only)')
421421
parser.add_argument(
422422
'--long',
423423
action='store_true',
@@ -438,7 +438,7 @@ def take_action(self, parsed_args):
438438
'flavor': parsed_args.flavor,
439439
'image': parsed_args.image,
440440
'host': parsed_args.host,
441-
'all_tenants': parsed_args.all_tenants,
441+
'all_tenants': parsed_args.all_projects,
442442
}
443443
self.log.debug('search options: %s', search_opts)
444444

‎openstackclient/compute/v2/usage.py‎

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,15 @@ def get_parser(self, prog_name):
4747

4848
def take_action(self, parsed_args):
4949
self.log.debug("take_action(%s)" % parsed_args)
50+
51+
def _format_project(project):
52+
if not project:
53+
return ""
54+
if project in project_cache.keys():
55+
return project_cache[project].name
56+
else:
57+
return project
58+
5059
compute_client = self.app.client_manager.compute
5160
columns = (
5261
"tenant_id",
@@ -55,7 +64,7 @@ def take_action(self, parsed_args):
5564
"total_local_gb_usage"
5665
)
5766
column_headers = (
58-
"Project ID",
67+
"Project",
5968
"RAM MB-Hours",
6069
"CPU Hours",
6170
"Disk GB-Hours"
@@ -76,6 +85,15 @@ def take_action(self, parsed_args):
7685

7786
usage_list = compute_client.usage.list(start, end)
7887

88+
# Cache the project list
89+
project_cache = {}
90+
try:
91+
for p in self.app.client_manager.identity.tenants.list():
92+
project_cache[p.id] = p
93+
except Exception:
94+
# Just forget it if there's any trouble
95+
pass
96+
7997
if len(usage_list) > 0:
8098
print("Usage from %s to %s:" % (start.strftime(dateformat),
8199
end.strftime(dateformat)))
@@ -84,6 +102,7 @@ def take_action(self, parsed_args):
84102
(utils.get_item_properties(
85103
s, columns,
86104
formatters={
105+
'tenant_id': _format_project,
87106
'total_memory_mb_usage': lambda x: float("%.2f" % x),
88107
'total_vcpus_usage': lambda x: float("%.2f" % x),
89108
'total_local_gb_usage': lambda x: float("%.2f" % x),

‎openstackclient/image/v1/image.py‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ def get_parser(self, prog_name):
7171
)
7272
parser.add_argument(
7373
"--owner",
74-
metavar="<tenant>",
75-
help="Owner of the image",
74+
metavar="<project>",
75+
help="Image owner (project name or ID)",
7676
)
7777
parser.add_argument(
7878
"--size",
@@ -296,8 +296,8 @@ def get_parser(self, prog_name):
296296
)
297297
parser.add_argument(
298298
"--owner",
299-
metavar="<tenant>",
300-
help="Owner of the image",
299+
metavar="<project>",
300+
help="Image owner (project name or ID)",
301301
)
302302
parser.add_argument(
303303
"--min-disk",

‎openstackclient/volume/v1/volume.py‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -179,10 +179,10 @@ def get_parser(self, prog_name):
179179
help='Filter results by name',
180180
)
181181
parser.add_argument(
182-
'--all-tenants',
182+
'--all-projects',
183183
action='store_true',
184184
default=False,
185-
help='Display information from all tenants (admin only)',
185+
help='Include all projects (admin only)',
186186
)
187187
parser.add_argument(
188188
'--long',
@@ -232,7 +232,7 @@ def take_action(self, parsed_args):
232232
'Attached',
233233
)
234234
search_opts = {
235-
'all_tenants': parsed_args.all_tenants,
235+
'all_tenants': parsed_args.all_projects,
236236
'display_name': parsed_args.name,
237237
'status': parsed_args.status,
238238
}
@@ -322,7 +322,11 @@ def take_action(self, parsed_args):
322322
volume._info.update(
323323
{'properties': utils.format_dict(volume._info.pop('metadata'))}
324324
)
325-
325+
if 'os-vol-tenant-attr:tenant_id' in volume._info:
326+
volume._info.update(
327+
{'project_id': volume._info.pop(
328+
'os-vol-tenant-attr:tenant_id')}
329+
)
326330
return zip(*sorted(six.iteritems(volume._info)))
327331

328332

0 commit comments

Comments
 (0)