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 | |
| 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')
| -rw-r--r-- | openstackclient/compute/v2/server.py | 17 | ||||
| -rw-r--r-- | openstackclient/tests/unit/compute/v2/test_server.py | 8 |
2 files changed, 15 insertions, 10 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))) diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py index d242dc26..61c81132 100644 --- a/openstackclient/tests/unit/compute/v2/test_server.py +++ b/openstackclient/tests/unit/compute/v2/test_server.py @@ -2331,17 +2331,17 @@ class TestServerRebuild(TestServer): self.images_mock.get.return_value = self.image # Fake the rebuilt new server. - new_server = compute_fakes.FakeServer.create_one_server() - - # Fake the server to be rebuilt. The IDs of them should be the same. attrs = { - 'id': new_server.id, 'image': { 'id': self.image.id }, 'networks': {}, 'adminPass': 'passw0rd', } + new_server = compute_fakes.FakeServer.create_one_server(attrs=attrs) + + # Fake the server to be rebuilt. The IDs of them should be the same. + attrs['id'] = new_server.id methods = { 'rebuild': new_server, } |
