diff options
| author | Artom Lifshitz <alifshit@redhat.com> | 2017-01-24 15:02:38 +0000 |
|---|---|---|
| committer | Artom Lifshitz <alifshit@redhat.com> | 2017-01-24 16:56:35 +0000 |
| commit | 98f803e0f0e622e7770cfab52e99168f6a68f427 (patch) | |
| tree | 52f209c2cb7078cfb1e88768098a98cafc2b3e88 /openstackclient/compute | |
| parent | 11ef43da495a7d9f6b36c095457e945070dfa38d (diff) | |
| download | python-openstackclient-98f803e0f0e622e7770cfab52e99168f6a68f427.tar.gz | |
Use image client for images instead of compute
With the deprecation of the Nova proxy APIs in microversion 2.36 [1],
any operation that uses a microversion higher than 2.36 and works with
images will fail because the /images endpoint will return 404. This
patch updates openstackclient to query images using the image client
in places where previously the compute client was used.
[1] http://docs.openstack.org/developer/nova/api_microversion_history.html#id33
Change-Id: Ia66e44e530799ce6531922dcf6a84e38528c8725
Closes-bug: 1630161
Diffstat (limited to 'openstackclient/compute')
| -rw-r--r-- | openstackclient/compute/v2/server.py | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py index 798d3d3f..a1330e01 100644 --- a/openstackclient/compute/v2/server.py +++ b/openstackclient/compute/v2/server.py @@ -113,7 +113,7 @@ def _get_ip_address(addresses, address_type, ip_address_family): ) -def _prep_server_detail(compute_client, server): +def _prep_server_detail(compute_client, image_client, server): """Prepare the detailed server dict for printing :param compute_client: a compute client instance @@ -130,7 +130,7 @@ def _prep_server_detail(compute_client, server): if image_info: image_id = image_info.get('id', '') try: - image = utils.find_resource(compute_client.images, image_id) + image = utils.find_resource(image_client.images, image_id) info['image'] = "%s (%s)" % (image.name, image_id) except Exception: info['image'] = image_id @@ -450,12 +450,13 @@ class CreateServer(command.ShowOne): def take_action(self, parsed_args): compute_client = self.app.client_manager.compute volume_client = self.app.client_manager.volume + image_client = self.app.client_manager.image # Lookup parsed_args.image image = None if parsed_args.image: image = utils.find_resource( - compute_client.images, + image_client.images, parsed_args.image, ) @@ -629,7 +630,7 @@ class CreateServer(command.ShowOne): sys.stdout.write(_('Error creating server\n')) raise SystemExit - details = _prep_server_detail(compute_client, server) + details = _prep_server_detail(compute_client, image_client, server) return zip(*sorted(six.iteritems(details))) @@ -797,6 +798,7 @@ class ListServer(command.Lister): def take_action(self, parsed_args): compute_client = self.app.client_manager.compute identity_client = self.app.client_manager.identity + image_client = self.app.client_manager.image project_id = None if parsed_args.project: @@ -826,7 +828,7 @@ class ListServer(command.Lister): # image name is given, map it to ID. image_id = None if parsed_args.image: - image_id = utils.find_resource(compute_client.images, + image_id = utils.find_resource(image_client.images, parsed_args.image).id search_opts = { @@ -1164,13 +1166,14 @@ class RebuildServer(command.ShowOne): def take_action(self, parsed_args): compute_client = self.app.client_manager.compute + image_client = self.app.client_manager.image server = utils.find_resource( compute_client.servers, parsed_args.server) # If parsed_args.image is not set, default to the currently used one. image_id = parsed_args.image or server._info.get('image', {}).get('id') - image = utils.find_resource(compute_client.images, image_id) + image = utils.find_resource(image_client.images, image_id) server = server.rebuild(image, parsed_args.password) if parsed_args.wait: @@ -1186,7 +1189,7 @@ class RebuildServer(command.ShowOne): sys.stdout.write(_('Error rebuilding server\n')) raise SystemExit - details = _prep_server_detail(compute_client, server) + details = _prep_server_detail(compute_client, image_client, server) return zip(*sorted(six.iteritems(details))) @@ -1561,7 +1564,8 @@ class ShowServer(command.ShowOne): sys.stderr.write(_("Error retrieving diagnostics data\n")) return ({}, {}) else: - data = _prep_server_detail(compute_client, server) + data = _prep_server_detail(compute_client, + self.app.client_manager.image, server) return zip(*sorted(six.iteritems(data))) |
