summaryrefslogtreecommitdiff
path: root/openstackclient/compute
diff options
context:
space:
mode:
authorThrivikram Mudunuri <mthrivikram+opendev@gmail.com>2021-10-28 18:05:03 -0400
committerThrivikram Mudunuri <mthrivikram+opendev@gmail.com>2021-11-16 11:36:02 -0500
commit9acbd3e1052d533c1395eb59de4274170baed67b (patch)
tree1472d1289b7bce4dc98df22cb8bfa58c777a3ecc /openstackclient/compute
parentf824e13bc5754d3de108d39d62de3d6cfae2670c (diff)
downloadpython-openstackclient-9acbd3e1052d533c1395eb59de4274170baed67b.tar.gz
Switch server image create to SDK
Switch the server image create command from novaclient to SDK. Use the SDK versions of test fakes to support fake Server resources. Also, fetch updated image *after* waiting. If a user requests that we wait (--wait) for a server image to become active before returning, then we should probably return the final image. If we don't then the image can appear to be in a non-active state when it fact it's active. Correct this by fetching the image after the wait call. Change-Id: I83a403c035add9ab041ed6d59b5b29e42267f143
Diffstat (limited to 'openstackclient/compute')
-rw-r--r--openstackclient/compute/v2/server_image.py18
1 files changed, 9 insertions, 9 deletions
diff --git a/openstackclient/compute/v2/server_image.py b/openstackclient/compute/v2/server_image.py
index 6c0e3b22..2021fae7 100644
--- a/openstackclient/compute/v2/server_image.py
+++ b/openstackclient/compute/v2/server_image.py
@@ -73,25 +73,23 @@ class CreateServerImage(command.ShowOne):
self.app.stdout.write('\rProgress: %s' % progress)
self.app.stdout.flush()
- compute_client = self.app.client_manager.compute
+ compute_client = self.app.client_manager.sdk_connection.compute
+ image_client = self.app.client_manager.image
- server = utils.find_resource(
- compute_client.servers,
- parsed_args.server,
+ server = compute_client.find_server(
+ parsed_args.server, ignore_missing=False,
)
+
if parsed_args.name:
image_name = parsed_args.name
else:
image_name = server.name
- image_id = compute_client.servers.create_image(
+ image_id = compute_client.create_server_image(
server.id,
image_name,
parsed_args.properties,
- )
-
- image_client = self.app.client_manager.image
- image = image_client.find_image(image_id)
+ ).id
if parsed_args.wait:
if utils.wait_for_status(
@@ -105,6 +103,8 @@ class CreateServerImage(command.ShowOne):
_('Error creating server image: %s'), parsed_args.server)
raise exceptions.CommandError
+ image = image_client.find_image(image_id, ignore_missing=False)
+
if self.app.client_manager._api_version['image'] == '1':
info = {}
info.update(image._info)