Commit Graph

60 Commits

Author SHA1 Message Date
mouad benchchaoui 1d7da740b2 Show a pretty progressbar when uploading and downloading an image.
Add a new module that contain generic wrapper for file and iterator, which
are used to wrap image to upload and the request body iterator in upload and
download cases repectively, to show and advance a pretty progress bar when this
laters are consumed, The progress bar is triggered by adding a --progress command
line argument to commands: image-create, image-download or image-update.

Change-Id: I2ba42fd0c58f4fa087adb568ec3f08246cae3759
bug fix: LP#1112309
blueprint: progressbar-when-uploading
2013-08-08 15:40:15 +02:00
Stuart McLaren bb47812765 Allow v1 client to list all users' images
Add a '--all-tenants' option to the image-list command.  This adds
'is_public=None' to the query string passed to the server, and for an
admin user results in a listing of all images present on the server
irrespective of owner or public values.

Addresses bug 1201787.

Change-Id: I38dd0752a31ebea84f16b786d205e82eba1a96bc
2013-07-26 11:01:52 +00:00
Stuart McLaren 12feedb2cf Add v1 client side owner based filtering
Add the --owner option to the v1 client's image-list command to support
filtering images based on the owner (tenant id).

Allows administrators to more easily list a particular user's images.

Note that this is far less efficient than v2 server-side owner based filtering.

Addresses bug 1201765.

Change-Id: I4ffa522b96c91e659c87f5452f2f1f44e47e806b
2013-07-26 11:00:32 +00:00
Jenkins c120aff87f Merge "Fix problem where image data is not read from a pipe." 2013-06-18 12:47:31 +00:00
Flaper Fesp 7818387d4a Replace utils.ensure_(str|unicode) with strutils.safe(decode|encode)
Glanceclient implemented both functions before they landed into oslo.
Since both functions are already in oslo, it is now possible to pull
them in.

There's a small difference between glance's implementation and oslo's,
that is the later does not convert non-str objects - int, bool - to str
before trying to decode / encode them. This patch takes care of that
where necessary, more precisely, while encoding headers before doing a
new request.

Fixes bug: #1172253

Change-Id: I9a0dca31140bae28d8ec6aede515c5bb852b701b
2013-06-04 00:42:32 +02:00
Hugh Saunders 9fda0dc815 Fix problem where image data is not read from a pipe.
For image-updae and image-create commands, glanceclient attempts to
determine whether image data should be uploaded based on the presence
of data on stdin. Unforunately it is difficult to determine if data is
available, especially when standard in is from a pipe.

This is especially problematic for update operations, where data must
only be uploaded if the image is in queued state. For example data may
be uploaded when the user only wants to rename an image, but the rename
will be rejected because data cannot be uploaded to an unqueued image.

This patch removes the check that attempts to determine if data is
available to read as it didn't work for pipes. It also re-introduces a
check for image state in the update operation, so that glanceclient only
attempts to read data if the image being updated is in queued state.

The image state check is part of the original patchset that was removed
so the patchset could have a single focus [1]

This patch also removes a test for handling empty stdin, and adds a test
for reading stdin from a pipe.

[1] https://review.openstack.org/#/c/27536/3/glanceclient/v1/shell.py

Fixes: bug 1184566
Related to: bug 1173044

Change-Id: I8d37f6412a0bf9ca21cbd75cde6a4d5a174e5545
2013-06-03 18:01:58 +01:00
Hugh Saunders a3585ef62d Don't attempt to read stdin if it is empty.
* Check for available data size in v1/shell.py/_set_data_field, don't
   read if 0.
 * Add test_shell.py including tests for 3x stdin scenarios:
	* closed
 	* open and empty
	* open with data

Change-Id: I6ff65b0e226be509de9cd3f021560081529283b0
Fixes: bug #1173044
2013-05-23 13:37:09 +01:00
Jenkins 4bbc7b8a9b Merge "Improve Python 3.x compatibility" 2013-04-24 16:38:25 +00:00
Dirk Mueller 45feb672af Improve Python 3.x compatibility
Some mechanical translation of the deprecated
except x,y construct. Should work with Python >= 2.6
just fine

Change-Id: I394f9956b9e3e3d9f5f1e9ad50c35b13200af2a1
2013-04-22 16:38:55 +02:00
MattieuPuel 5ab88370d0 bug 1166263 image-update handling for closed stdin
handles the case where an image-update command is issued from a cron job with an
invalid standard input file descriptor: consider no image data is provided when
no --file option present.

Change-Id: I5eb3433311e5faf0a3fb7eb36f6a01e5df7efe4c
2013-04-16 14:34:58 +02:00
John Bresnahan a8f7de2afd Filter images list by public=True|False
When running the image-list command the user should have the option
to list images according to whether or not the image is was set
to public.  A new test is included to verify this behavior.

Change-Id: If645e7390fcf850648cda780a04ea37a26d855a2
Fixes bug: 1118799
2013-03-30 21:26:35 -10:00
Jenkins d831b5eb27 Merge "Decode input and encode output" 2013-02-18 18:58:14 +00:00
Flaper Fesp 55cb4f4473 Decode input and encode output
Currently glanceclient doesn't support non-ASCII characters for images
names and properties (names and values as well). This patch introduces 2
functions (utils.py) that will help encoding and decoding strings in a
more "secure" way.

About the ensure_(str|unicode) functions:

    They both try to use first the encoding used in stdin (or python's
    default encoding if that's None) and fallback to utf-8 if those
    encodings fail to decode a given text.

About the changes in glanceclient:

    The major change is that all inputs will be decoded and will kept as
    such inside the client's functions and will then be encoded before
    being printed / sent out the client.

    There are other small changes, all related to encoding to str,
    around in order to avoid fails during some conversions. i.e: quoting
    url encoded parameters.

Fixes bug: 1061150

Change-Id: I5c3ea93a716edfe284d19f6291d4e36028f91eb2
2013-02-13 21:53:11 +01:00
David Wittman ed67c32014 Fix typo in image-update help page
The image-update help page reversed the DISK_FORMAT
and CONTAINER_FORMAT metavars.

Fixes bug #1111054

Change-Id: Iec8374782d00e8e9102141fb1e1c16d7f6ac136c
2013-01-30 22:15:19 -06:00
Ken'ichi Ohmichi 0aba81ac1f Add image names to glance command arguments.
Now a user should specify ID as an image by glance command, and I feel
it is easy-use that a user can specify name also as an image like nova
command(ex. "nova boot").

By applying this patch, a user can specify name as image like the
following examples:

$ glance image-show cirros-0.3.0-x86_64-uec
$ glance image-update --name root-fs cirros-0.3.0-x86_64-uec
$ glance image-delete cirros-0.3.0-x86_64-uec
$ glance image-download cirros-0.3.0-x86_64-uec
$ glance member-create cirros-0.3.0-x86_64-uec 94b0e63a27ca43348fe056622fe3fe94
$ glance member-delete cirros-0.3.0-x86_64-uec 94b0e63a27ca43348fe056622fe3fe94

Fixes bug 1093380

Change-Id: Ia0a070eed6ae3853ef02032f479087edb1d75a67
2013-01-05 07:32:25 +09:00
Brian Waldon 2500e69b22 Update --location help to reference swift store.
Fixes bug 1085575.

Change-Id: I6b325874a21e63fa02fe261f19e3d071f2b220d9
2012-12-03 15:01:34 -08:00
Jenkins 7be3395c6c Merge "Change default image sort to use name" 2012-11-30 21:27:15 +00:00
Jenkins b66e6faac0 Merge "Add --sort-key and --sort-dir to image-list" 2012-11-30 21:22:23 +00:00
Brian Waldon 4fa6805242 Change default image sort to use name
Fixes bug 1081542.

Change-Id: I9e09c3fe3b6c2bfce7e37df1d29b37a42168e878
2012-11-28 09:50:46 -08:00
Brian Waldon 4da8b287b4 Add --sort-key and --sort-dir to image-list
The --sort-key and --sort-dir CLI options allow users to control the
field and direction by which their images are sorted in an image-list
operation. The previous default sort behavior of sorting by ID asc has
been preserved.

Fixes bug 1082957.

Change-Id: I1d3664219c275b0379fe176f8288d6ffae0dffbe
2012-11-28 09:46:32 -08:00
Jenkins 09c8216177 Merge "Allow setting x-image-meta-store through shell on image creation" 2012-11-26 23:20:19 +00:00
Chuck Short c0ec97f310 Pin pep8 to 1.3.3
Standardize pep8 to 1.3.3 and cleared up any errors
found by pep8 tests.

Change-Id: Ib7eb97d0789556d1676ccad58b5d3364065b7d15
Signed-off-by: Chuck Short <chuck.short@canonical.com>
2012-11-25 11:34:56 -05:00
Florian Haas c2ba627ec1 Allow setting x-image-meta-store through shell on image creation
Add a command line arg "--store" to "glance image-create" so users
can specify a store other than the default on image creation.

Change-Id: Icf9a894b08e405d6884964b3cfaa80250e85ed71
2012-11-24 11:22:41 +01:00
Jenkins e40580b77a Merge "Make image sizes more readable for humans" 2012-11-19 18:56:52 +00:00
Christian Berendt b24832c22a Make image sizes more readable for humans
By introducing the parameter --human-readable for several functions
(image-list, image-show, image-update, image-create) it's possible
to convert the size in bytes to something more readable like
9.309MB or 1.375GB.

Change-Id: I4e2654994361dcf330ed6d681dbed73388f159cb
2012-11-19 10:15:19 -08:00
Brian Waldon 0e90f8ef23 Set useful boolean flag metavars
The boolean flags --is-protected and --is-public now
communicate that they must be set to True or False.

Fixes bug 1056501.

Change-Id: I23094ea556eb71d6eb977a64c171119738ed792b
2012-11-19 09:08:50 -08:00
Andre Naehring 00eff28f28 Enhance --checksum help with algorithm
Fixes bug 1056499.

Added a line to the help text of --checksum which enhances the help text
to show what checksum algorithm is expected.

Change-Id: Ie6604022dd9f398c639afe647b2d94b5179dbb61
2012-11-14 15:37:31 +01:00
Jenkins a8e88aa340 Merge "Allow deletion of multiple images through CLI" 2012-10-25 02:23:49 +00:00
Sulochan Acharya 8b2c227f27 Allow deletion of multiple images through CLI
Add nargs to argparse for image-delete command to
allow muliple (optional) positional image-id arguments.
For example:
image-delete xxx aaa yyy will delete valid images
xxx and yyy and print error message for invalid image
aaa. Also with --verbose you can see some extra text
on delete request for each image.

Fixes bug1056498.

Change-Id: I6e804700ed24d16f90ec92569c0893cad4aaa26f
2012-10-24 06:06:50 -05:00
Sulochan Acharya 1e14e82c81 Fixes shell command for member-delete
Fixes the member-delete cli command and string formatting for
dry-run option.
Fixes bug1064320

Change-Id: I338f03d53da5c9b7656ae4d1335de9623b774dd8
2012-10-23 08:15:55 -05:00
Jenkins 9004ee40df Merge "Display acceptable disk/container formats in help text" 2012-10-13 02:54:09 +00:00
Stuart McLaren 727aadbc25 Handle create/update of images with unknown size
It may not be possible to know in advance the total
size of image data which is to be uploaded, for example
if the data is being piped to stdin.

To handle this we use HTTP Transfer-Encoding: chunked
and do not set any image size headers.

Various subtly different cases needed to be handled for
both image-create and image-update, including:

 * input from named pipe
 * piped input of zero size
 * regular file of zero length

Fix for bug 1056220.

Change-Id: I0c7f0a64d883e058993b954a1c465c5b057f2bcf
2012-10-08 11:16:18 +00:00
Brian Waldon b5d46e2e0d Display acceptable disk/container formats in help text
Fixes bug #1056497

This patch provides more information in the help text. Originally the text
provided the trivial definitions of the arguments disk_format and
container_format. This patch updates the text to display the acceptable
formats.

Change-Id: I893b52c9f72a34c75e8bea522820863592300302
2012-10-04 06:28:41 -07:00
Jenkins e140dbb0c7 Merge "Fixes glance add / update / image-create / image-update on Windows" 2012-09-18 20:44:58 +00:00
Stuart McLaren cdc94af297 Typo in image-create help page
The image-create help page reversed the DISK_FORMAT
and CONTAINER_FORMAT metavars.

Fixes bug 1051968.

Change-Id: I385cb0912ad87a62fd10742b5da23a5ea8bc9bb8
2012-09-17 13:43:08 +00:00
Alessandro Pilotti 91896ff518 Fixes glance add / update / image-create / image-update on Windows
Fixes Bug #1050345

The image upload hangs if the file contains a byte with value 0x1A (EOF), due to
the fact that the file or stdin streams are treated as text and not
binary streams. This fix sets the proper binary mode.

Change-Id: I3425cb9729a8da4d1b73fbfba06fd6f2c7e8833e
2012-09-13 19:09:11 +03:00
Jenkins 01ec6d942d Merge "Update command descriptions" 2012-08-21 23:07:57 +00:00
Brian Waldon 5069d66d51 Update command descriptions
Several commands did not have descriptions or the descriptions
they had were insufficient. This adds mission descriptions
and fattens up those that were too lean.

Change-Id: I091ae70cdae5d3f72f273519d88873cb5392ba3b
2012-08-21 13:13:09 -07:00
Lars Gellrich c24fc93142 Enable client V1 to download images
Added the CLI option image-download to download an image via API V1.
Based on commit 137b3cf975

Related to bp glance-client-v2

Change-Id: Ie587e208ad7433e468798cd9b1846b4a21e1c4ec
2012-08-16 14:25:08 +00:00
Brian Waldon a511e6a05e Add legacy compat layer to v1 shell
All legacy CLI commands should work as expected with a few
minor exceptions:
- no upload animation
- no interactive pagination
- help/usage output has changed

Deprecated options are indicated as such in their usage info. Deprecated
commands have descriptions that label them as such.

Related to bp glance-client-parity

Change-Id: I584b2447361967228bea332e14880e18db12fca8
2012-08-01 22:21:27 -07:00
Brian Waldon 0f628b19cb Add pagination to v1 image-list
* Use recursive generator function to make subsequent requests
  to the v1 detailed images resource
* 'limit' continues to act as the absolute limit of images to return
  from a list call
* 'page_size' indicates how many images to ask for in each subsequent
  pagination request
* Expose --page-size through the cli
* Convert v1 images tests to use strict url comparison
* Drop strict_url_check from FakeAPI kwargs - now the functionality
  is always active and tests must directly match fixture urls
* Fix bug 1024614

Change-Id: Ifa7874d88360e03b5c8aa95bfb9d5e6dc6dc927e
2012-07-19 13:26:37 -07:00
Brian Waldon 49bc6f94f2 Add --is-public to image-create
This moves image-create closer to image-update by adding
--is-public and hiding the help output of --public. The
--public option will be removed once devstack no longer
depends on it.

Fix bug 1023632

Change-Id: I2c58655ba56eef1fa486246618c4fb5bd3c6c8cf
2012-07-13 08:12:45 -07:00
Brian Waldon b7f476e211 Translate is_protected to protected
When creating or updating an image, translate the 'is_protected'
argument into the proper 'protected' image attribute.

Fix bug 1023653

Change-Id: Icfe6c38e4fda098ce3f90fd94c8fbbc18be2f4a8
2012-07-11 16:37:28 -07:00
Brian Waldon d8433ee40a Change --protected to --is-protected in create
Make image-create match image-update when specifying a specific
value for 'protected'.

Fix bug 1023650

Change-Id: I02ddeb59c1f6882b206279a71f7af8889ce4602c
2012-07-11 16:28:24 -07:00
Brian Waldon db1fabed11 Properly map boolean-like arguments to True/False
--is-public and --is-protected are now evaluated as True and False

Fix bug 1023652

Change-Id: Ife2313770eebc176e7744711956aed20f16576a5
2012-07-11 16:25:13 -07:00
Brian Waldon cf8613e76d Preserve image properties on update
* By default, image properties should not be deleted on image update.
* A user can specify --purge-props through the CLI or purge_props
  as a keyword argument to ImageManager.update to override the default
  behavior and force properties to be deleted.
* Fixes bug 1022758

Change-Id: Ib079378cb765552fc29a66913aefbbcd934d2065
2012-07-09 21:03:46 -07:00
Brian Waldon 0e8ab72357 Add --file to image-update and correct bad name
* Add the --file option to the image-update action, as it was left out
  of a previous patch
* Additionally, change a bad reference (args.fields) to args.file
* Fix bug 1022750

Change-Id: Idde127ec3f138f718d671b2133d50debec26236e
2012-07-09 15:25:10 -07:00
Brian Waldon a1691ddc10 Allow image filtering by custom properties
A user can filter a list of images by passing in a 'properties'
sub-dictionary inside of the 'filters' keyword argumen to
ImageManager.list(). The same functionality can be used through
the CLI through the use of one or more'--property-filter' options.

Related to bp glance-client-parity.

Change-Id: I7d119174d83faa894dde557e1944289de296a02c
2012-07-04 15:49:41 -07:00
Brian Waldon e7db533bc0 Expand v1 image-list filters
Add comparison filters for the v1 image-list command: --name,
--status, --container-format, --disk-format.

Related to bp glance-client-parity.

Change-Id: I27377764ea5543a4bef593f0a731b09a914a9265
2012-07-04 15:24:08 -07:00
Brian Waldon 9aad246f0e Add size filtering to image-list action
Add --size-min and --size-max options to image-list to
represent the size_min and size_max filters passed to
the ImageManager.list method.

Related to bp glance-client-parity

Change-Id: Icb5458c3ed26ea754cff6360b741b3af99d1beb5
2012-07-04 14:24:38 -07:00