Currently user get redundant HTTP error code in error message.
Removed redundant HTTP error code from the message.
For Example:
Error message display when user trying to get the non existing image:
$ glance image-show f433471a-53a8-4d31-bf8f-f0b6b594dfc
Error message:
404 Not Found: No image found with ID f433471a-53a8-4d31-bf8f-f0b6b594dfc (HTTP 404)
After this fix:
HTTP 404 Not Found: No image found with ID f433471a-53a8-4d31-bf8f-f0b6b594dfc
Closes-Bug: #1598714
Change-Id: I33971a2a16416c8538158299325471c2a69dbb3e
This was missed when multihash support was added to the glanceclient.
The os_hash_value is an indexed field in the API.
Includes a release note.
Closes-bug: #1788271
Change-Id: Ibfe28b8c644967b7e0295dfd3f55c3ae1b0cbb2d
When running "glance -v image-list" there's no store info listed, so
user cannot know the type of the backend. This patch added an new option
"--include-stores" and is to add the store id to the output of "glance
image-list --include-stores".
The final output may like:
+-----+------+-------------+-----+----------+--------+-----+------+
| ID | Name | Disk_format | ... | Size | Status |Owner|Stores|
+-----+------+-------------+-----+----------+--------+-----+------+
| xxx | img1 | raw | ... | 10737418 | active | xxx | ceph |
| xxx | img2 | raw | ... | 5086345 | active | xxx | file |
+-----+------+-------------+-----+----------+--------+-----+------+
Change-Id: If86ef714c3aa03ce43ef29f26892f431f4766560
Co-authored-by: Jack Ding <jack.ding@windriver.com>
Signed-off-by: Liang Fang <liang.a.fang@intel.com>
Since the introduction of quoting of header content in
https://review.openstack.org/568698, the 'x-image-meta-location' header
has been broken, because urllib.quote() is really intended to be applied
to only the path section of a URL, but in this case, it gets applied to
the entire URL, and catches the colon that separates the scheme from the
remainder of the URL.
This change adds the colon to the list of characters that should not get
quoted. Since a colon can be directly represented in ASCII, this should
not invalidate the previous change.
Change-Id: I76a1c9a361b6c9f6eb95ae766b8c3bcf2267703a
Closes-Bug: #1788942
When the Glance "multihash" is available on an image, the
glanceclient should use it instead of MD5 to validate data
downloads. For cases in which the multihash specifies an
algorithm not available to the client, an option is added
to the image-download command that will allow fallback to
the legacy MD5 checksum verification.
Change-Id: I4ee6e5071eca08d3bbedceda2acc170e7ed21a6b
Closes-bug: #1788323
If the token is encoded by base64, it may contain '=' char
as well.
We should skip quoting it.
Change-Id: I1ca63d251fa366f0e8e58128d45b729a2489b65c
Partial-Bug: #1783290
The token in request header may contain url char, such as '+',
if quote it, '+' will change to '%2B' which will lead to 401 error.
Our CI doesn't notice this bug because Keystone use fernet token
which doesn't contain url char by default. But token format in
keystone is plugable, some out-tree token formats may contain
url char (for example, PKI/PKIZ token).
So we should skip quote token to avoiding information changing.
Closes-bug: #1783290
Change-Id: I5aa71b3e2b9b19581e46ccf8a80eda5d637f17d1
Added multi-store support. User can now use '--backend'
option to pass desired store while creating, uploading or
importing image to speific store backend.
Added new command 'stores-info' which will return available
stores information to the user.
Related to blueprint multi-store
Change-Id: I7370094fc4ed47205b5a86a18b22aaa7b9457e5b
We use MD5 for checksum, add this description
in cli helps.
Change-Id: I3469b0dface63f4684ad39421eee4c2a2de4d80b
Signed-off-by: Chen Hanxiao <chenhx@certusnet.com.cn>
With PEP 479, the behaviour of StopIteration is changing. Raising it to
stop a generator is considered incorrect and from Python 3.7 this will
cause a RuntimeError. The PEP recommends using the return statement.
More details: https://www.python.org/dev/peps/pep-0479/#examples-of-breakage
Change-Id: Ia067940066a5666926dcf61136b03d721a87666e
Under python 3 with ordering randomized we cannot depend on the JSON
output matching exactly. Instead we de-serialize the data structure
that was written and compare the structures, which will always match.
Change-Id: I134b62413a7cde25f3efda6a2452c1e3d11d41d0
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Currently, when the virtual size of an image is not known, "None" is displayed.
To a regular user, it feels like a programming error. We try and make things
clearer by using a "human readable" string instead.
Change-Id: Id7b8799356857d9bc58cc8a3677024fe1a7f4f56
Partial-Bug: #1665037
According to RFC 8187, HTTP headers should use 7-bit ASCII encoding.
The glanceclient was encoding them as UTF-8, which can leave the 8th
bit nonzero when representing unicode, and which presents problems
for any recipient following the standard and decoding the headers as
ASCII.
This change requires keystoneauth1 3.6.2, which has a fix for a
bug that made it unable to handle bytes in headers. The dependency
is a patch bumping the keystoneauth1 version in upper-constraints.
Depends-on: https://review.openstack.org/#/c/569138/
Change-Id: I0d14974126fcb20e23a37347f4f1756c323cf2f5
Closes-bug: #1766235
Update the local copy of the image schema to reflect Image API 2.6.
Change-Id: Ib0e56027927880d0fa198ffd8ea4b57e39f9d0fe
Closes-bug: #1762044
Depends-on: https://review.openstack.org/#/c/559501/
Add checks to image-import command so that it provides better user
feedback in failure situations.
Change-Id: I8b6b32c3d1d1a745aa68ff8dc629419dff9bb130
Closes-bug: #1758718
Add checks to the image-create-via-import commmand so that it provides
better user feedback and doesn't begin the import workflow unless the
input has a chance of succeeding. Preserves backward compatibility
with the current image-create command by (1) allowing an image record
only to be created when no import-method is specified AND no data is
supplied, and (2) doing the glance-direct workflow when no import-
method is specified AND data is provided. Also adds the ability for
the import-method to be set as an env var OS_IMAGE_IMPORT_METHOD.
Change-Id: I0a225f5471a9311217b5d90ebb5fd415c369129a
Closes-bug: #1758149
The do_image_download code has a check to make sure that there's
a place to put the data (either filename or stdout redirect) before
initiating the download. The location of this check was moved by
change I841bebeda38814235079429eca0b1e5fd2f04dae to happen at the
beginning of the function. The two intermittently failing tests
do not explicitly address the check condition, and as a result the
tests do exit early, but before they can check what they're supposed
to be testing.
Closes-bug: #1759951
Change-Id: I3c85bb358f669504b364d55618c21382b7a2a66b
Prepare for the Image API v1 to be removed from glance during Rocky
by splitting the functional tests that hit v1 from the tests that hit
v2. Introduce a new job that runs the functional-v1 tests against a
devstack running glance stable/queens, and configure this job for both
check and gate for the glanceclient. The v2 functional tests
continue to be run for both check and gate against a devstack running
glance master.
Change-Id: Ifa98ada26a84e4cca3ea8c98173f61a6174cca27
Fail image-create-via-import requests for the web-download import
method that don't include values for container_format or disk_format.
Closes-bug: #1757927
Change-Id: Ic5c81916823ff32f2dbddd32b40e825de0697dc9
Help text for some image properties (architecture, os_distro) is
pulled from the glanceclient's local version of the image schema.
The URL for those property definitions has gotten out of sync with
Glance. This patch updates the URL to be the same as that given
in the Glance image-schema response.
Change-Id: I4e46e78525fe5c00e031a98c47cacc17e5693d53
Closes-bug: #1757918
This change adds support for 'web-download' import method
to 'image-import' and 'create-image-via-import' call.
To use this 'web-download' import method, user needs to pass
--uri option 'a valid uri to external image to import in glance'
to 'image-import' and 'create-image-via-imaport' calls.
Co-authored-by: Pranali Deore <pdeore@redhat.com>
Co-authored-by: Erno Kuvaja <jokke@usr.fi>
Change-Id: I0e1d18844f64723608288de473e97710798eb602
This was only needed for Python < 2.7, but glanceclient's setup.cfg
already declares compatibility only with 2.7.
Change-Id: I80d42abf5dd5565da424a90a93545ba82ef7a58d
"glance image-tag-update" command returns unicoded response
for lists. Therefore it requires print_list method from util
class to handle such case. Added unicode_key_value_to_string()
method to remove extra 'u' from lists and dictionaries. This
fix is inspired from cinderclient's implementation.
Change-Id: I16a04e8d34f7629f72fe389456001ca1db9335ea
Closes-bug: #1534046
Old deprecated ssl options block the new keystoneauth parser get the
correct value, should be removed.
Change-Id: Ie080f9a8fa7f4407b1fcbb7fb7c763152c5ec295
Closes-Bug: 1697163
Due to the 'glanceclient.common.utils.add_req_id_to_object' decorator,
an instance of 'glanceclient.common.utils.RequestIdProxy' is returned
for most calls in glanceclient. If we wish to compare to None, we have
to compare the contents of this wrapper and not the wrapper itself.
Unit tests are updated to highlight this.
Change-Id: I7dadf32d37ac2bda33a92c71d5882e9f23e38a82
Closes-Bug: #1736759
Migrate legacy dsvm functional test jobs for python-glanceclient
to the project repository as zuul3 jobs using the devstack
functional base job.
Co-authored-by: Monty Taylor <mordred@inaugust.com>
Co-authored-by: Brian Rosmaita <rosmaita.fossdev@gmail.com>
Needed-By: I0b974bf60da6bafabeb037a75ac10654e2a6406c
Needed-By: I0271a1430843ef546e991a7a3c4b572b3e404963
Depends-On: I84de60181cb88574e341ff83cd4857cce241f2dd
Change-Id: I1977ee0d348645987107c2efb5b454d7f8b81adf
CLI image-create-via-import fails with ValueError. The reason
is create command returns RequestIdWrapper object and not image
and response.
Further it fails with AttributeError: 'Namespace' object has
no attribute 'import_method'. The reason is do_import_image() call
requires 'import_method' as input which is not provided at the
moment.
Change-Id: Ic4c4d1f3c5d290b584840e8f9047fb53611a5748
Closes-bug: #1711511
Change the request body sent from the client to be the format
that the API expects for the image-import call.
Depends-On: I08783e28719e63b5a4b2115b8fce135e55be460a
Change-Id: I5e34d772d561306c6f103c859740658a825dd189
Closes-bug: #1711259
image-stage call fails with TypeError saying 'stage() takes exactly
3 arguments (4 given). The reason is stage() also accepts image_size
as a argument which is not provided.
Further it raises 'NoneType' object has no attribute 'headers'. The
reason is stage() internally calls upload method which
returns a object of RequestIdWrapper on body (which is None) and
response. In stage call it again tries to add request id which requires
response object but instead it has a RequestIdWrapper which fails to
retrieve headers.
Change-Id: I4de4be7a55f35c3533b53acd48042c7c95b4bdc0
Closes-bug: #1711090
In python 3.6, escape sequences that are not
recognized in string literals issue DeprecationWarnings.
Convert these to raw strings.
Change-Id: I508a9147b932e219069eeee756bcbc43c7e961c5