summaryrefslogtreecommitdiff
path: root/openstackclient/image/v2/image.py
diff options
context:
space:
mode:
authorDean Troyer <dtroyer@gmail.com>2013-07-08 16:48:10 -0500
committerDean Troyer <dtroyer@gmail.com>2013-07-18 14:14:14 -0500
commitcdaee1b71e21df56e6127689801240274af9d847 (patch)
tree9c70467b3700e8f919e271b0a7b25eaf5b53cba7 /openstackclient/image/v2/image.py
parent1a0d5ccc68f65394292992b48afe20241e89e7b8 (diff)
downloadpython-openstackclient-cdaee1b71e21df56e6127689801240274af9d847.tar.gz
Complete Image v1
* Add v1 versions of image delete, list, save, set, show * Change default Image API to v1 Rebased for https://review.openstack.org/#/c/36772/ Change-Id: Ie2bfe660aac8a0fcf651c67fd1ea4842e76ce377
Diffstat (limited to 'openstackclient/image/v2/image.py')
-rw-r--r--openstackclient/image/v2/image.py65
1 files changed, 41 insertions, 24 deletions
diff --git a/openstackclient/image/v2/image.py b/openstackclient/image/v2/image.py
index 61273aa2..e84e0d01 100644
--- a/openstackclient/image/v2/image.py
+++ b/openstackclient/image/v2/image.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2013 OpenStack, LLC.
+# Copyright 2012-2013 OpenStack Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
@@ -16,6 +16,7 @@
"""Image V2 Action Implementations"""
import logging
+import six
from cliff import command
from cliff import lister
@@ -26,27 +27,32 @@ from openstackclient.common import utils
class DeleteImage(command.Command):
- """Delete image command"""
+ """Delete an image"""
log = logging.getLogger(__name__ + ".DeleteImage")
def get_parser(self, prog_name):
parser = super(DeleteImage, self).get_parser(prog_name)
parser.add_argument(
- "id",
- metavar="<image_id>",
- help="ID of image to delete.")
+ "image",
+ metavar="<image>",
+ help="Name or ID of image to delete",
+ )
return parser
def take_action(self, parsed_args):
self.log.debug("take_action(%s)" % parsed_args)
image_client = self.app.client_manager.image
- image_client.images.delete(parsed_args.id)
+ image = utils.find_resource(
+ image_client.images,
+ parsed_args.image,
+ )
+ image_client.images.delete(image)
class ListImage(lister.Lister):
- """List image command"""
+ """List available images"""
log = logging.getLogger(__name__ + ".ListImage")
@@ -55,7 +61,8 @@ class ListImage(lister.Lister):
parser.add_argument(
"--page-size",
metavar="<size>",
- help="Number of images to request in each paginated request.")
+ help="Number of images to request in each paginated request",
+ )
return parser
def take_action(self, parsed_args):
@@ -74,7 +81,7 @@ class ListImage(lister.Lister):
class SaveImage(command.Command):
- """Save image command"""
+ """Save an image locally"""
log = logging.getLogger(__name__ + ".SaveImage")
@@ -82,42 +89,52 @@ class SaveImage(command.Command):
parser = super(SaveImage, self).get_parser(prog_name)
parser.add_argument(
"--file",
- metavar="<file>",
- help="Local file to save downloaded image data "
- "to. If this is not specified the image "
- "data will be written to stdout.")
+ metavar="<filename>",
+ help="Downloaded image save filename [default: stdout]",
+ )
parser.add_argument(
- "id",
- metavar="<image_id>",
- help="ID of image to describe.")
+ "image",
+ metavar="<image>",
+ help="Name or ID of image to delete",
+ )
return parser
def take_action(self, parsed_args):
self.log.debug("take_action(%s)" % parsed_args)
image_client = self.app.client_manager.image
- data = image_client.images.data(parsed_args.id)
+ image = utils.find_resource(
+ image_client.images,
+ parsed_args.image,
+ )
+ data = image_client.images.data(image)
gc_utils.save_image(data, parsed_args.file)
class ShowImage(show.ShowOne):
- """Show image command"""
+ """Show image details"""
log = logging.getLogger(__name__ + ".ShowImage")
def get_parser(self, prog_name):
parser = super(ShowImage, self).get_parser(prog_name)
parser.add_argument(
- "id",
- metavar="<image_id>",
- help="ID of image to describe.")
+ "image",
+ metavar="<image>",
+ help="Name or ID of image to display",
+ )
return parser
def take_action(self, parsed_args):
self.log.debug("take_action(%s)" % parsed_args)
image_client = self.app.client_manager.image
- data = image_client.images.get(parsed_args.id)
-
- return zip(*sorted(data.iteritems()))
+ image = utils.find_resource(
+ image_client.images,
+ parsed_args.image,
+ )
+
+ info = {}
+ info.update(image._info)
+ return zip(*sorted(six.iteritems(info)))