diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index 808741fdca..9cff03d678 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -393,7 +393,7 @@ class CreateServerImage(show.ShowOne):
         parser = super(CreateServerImage, self).get_parser(prog_name)
         parser.add_argument(
             'server',
-            metavar='<server',
+            metavar='<server>',
             help='Server (name or ID)',
         )
         parser.add_argument(
@@ -421,7 +421,7 @@ class CreateServerImage(show.ShowOne):
         else:
             name = server.name
 
-        image = compute_client.servers.create_image(
+        image_id = compute_client.servers.create_image(
             server,
             name,
         )
@@ -429,7 +429,7 @@ class CreateServerImage(show.ShowOne):
         if parsed_args.wait:
             if utils.wait_for_status(
                 image_client.images.get,
-                image,
+                image_id,
                 callback=_show_progress,
             ):
                 sys.stdout.write('\n')
@@ -443,7 +443,7 @@ class CreateServerImage(show.ShowOne):
 
         image = utils.find_resource(
             image_client.images,
-            image.id,
+            image_id,
         )
 
         info = {}
diff --git a/openstackclient/tests/compute/v2/test_server.py b/openstackclient/tests/compute/v2/test_server.py
index 4cd294cc3d..efe4c58b98 100644
--- a/openstackclient/tests/compute/v2/test_server.py
+++ b/openstackclient/tests/compute/v2/test_server.py
@@ -80,11 +80,7 @@ class TestServerImageCreate(TestServer):
             loaded=True,
         )
 
-        self.servers_mock.create_image.return_value = fakes.FakeResource(
-            None,
-            copy.deepcopy(image_fakes.IMAGE),
-            loaded=True,
-        )
+        self.servers_mock.create_image.return_value = image_fakes.image_id
 
         self.images_mock.get.return_value = fakes.FakeResource(
             None,