diff options
| author | Zuul <zuul@review.openstack.org> | 2018-06-12 01:14:16 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2018-06-12 01:14:16 +0000 |
| commit | 4c4c0ae2da9a3b6da5a71ab2630891dc6f72a93d (patch) | |
| tree | 72ee1b46a83d651738d32a708d3d25b9ff1df4cb /openstackclient/compute | |
| parent | cf078fdbc470429b60480476562aa300e0250dbd (diff) | |
| parent | 752a2db332780ac98c4a4c3a3778b178131a8d59 (diff) | |
| download | python-openstackclient-4c4c0ae2da9a3b6da5a71ab2630891dc6f72a93d.tar.gz | |
Merge "Optimize _prep_server_detail to avoid redundant find_resource"
Diffstat (limited to 'openstackclient/compute')
| -rw-r--r-- | openstackclient/compute/v2/server.py | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py index 88016c0b..c2d9cf3a 100644 --- a/openstackclient/compute/v2/server.py +++ b/openstackclient/compute/v2/server.py @@ -120,18 +120,21 @@ def _prefix_checked_value(prefix): return func -def _prep_server_detail(compute_client, image_client, server): +def _prep_server_detail(compute_client, image_client, server, refresh=True): """Prepare the detailed server dict for printing :param compute_client: a compute client instance :param image_client: an image client instance :param server: a Server resource + :param refresh: Flag indicating if ``server`` is already the latest version + or if it needs to be refreshed, for example when showing + the latest details of a server after creating it. :rtype: a dict of server details """ info = server.to_dict() - - server = utils.find_resource(compute_client.servers, info['id']) - info.update(server.to_dict()) + if refresh: + server = utils.find_resource(compute_client.servers, info['id']) + info.update(server.to_dict()) # Convert the image blob to a name image_info = info.get('image', {}) @@ -1540,7 +1543,8 @@ class RebuildServer(command.ShowOne): self.app.stdout.write(_('Error rebuilding server\n')) raise SystemExit - details = _prep_server_detail(compute_client, image_client, server) + details = _prep_server_detail(compute_client, image_client, server, + refresh=False) return zip(*sorted(six.iteritems(details))) @@ -2021,7 +2025,8 @@ class ShowServer(command.ShowOne): return ({}, {}) else: data = _prep_server_detail(compute_client, - self.app.client_manager.image, server) + self.app.client_manager.image, server, + refresh=False) return zip(*sorted(six.iteritems(data))) |
