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
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
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
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
This change adds availability of the features introduced on Image
Import Refactoring work. Including:
Discovery call to discover what Import modes are available
Staging call to stage the image for import in 'glance-direct'
Import call to trigger the actual Image Import task
EXPERIMENTAL: Image creation with the new workflow
Change-Id: I2d10ac0cc951c933c3594837b490638e38ff0b12
Currently client is contacting glance service even if the
caller has niether specified any redirection nor '--file'
option. This unnecessary request although isn't causing
any critical issues but can be avoided by simply doing
input validation first.
TrivialFix
Change-Id: I841bebeda38814235079429eca0b1e5fd2f04dae
1.As mentioned in [1], we should avoid usingg
six.iteritems to achieve iterators. We can
use dict.items instead, as it will return
iterators in PY3 as well. And dict.items/keys
will more readable. 2.In py2, the performance
about list should be negligible, see the link [2].
[1] https://wiki.openstack.org/wiki/Python3
[2] http://lists.openstack.org/pipermail/openstack-dev/2015-June/066391.html
Change-Id: I71c13040318eca6e5ed993e8aa03f8003986a71c
Used '%' instead of format() because format() function doesn't
support the parsing of unicode codec like u'\U0001f693' in Python 2.
Python3 parse unicode codec with .format() correctly.
For example:
openstack@openstack-VirtualBox:~$ python2
Python 2.7.6 (default, Oct 26 2016, 20:30:19)
>>> '{0}'.format(u'\U0001f693')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\U0001f693'
in position 0: ordinal not in range(128)
>>> '%s' % (u'\U0001f693')
u'\U0001f693'
NOTE: format() fuction will parse unicode codec in Python 2 after
prefixing 'u' like u'{0}.format(u'\U0001f693') but prfixing 'u'
at every place is not good, so it's better to use the '%' module.
Change-Id: I2fcca96a1356df08453e08487afb62dfec91ba9d
Closes-Bug: #1570766
Adding two classes RequestIdProxy and GeneratorProxy derived from
wrapt.ObjectProxy to wrap objects returned from the API.
GeneratorProxy class is used to wrap generator objects returned
by cases like images.list() etc. whereas RequestIdProxy class is
used to wrap non-generator object cases like images.create() etc.
In all cases the returned object will have the same behavior as
the wrapped(original) object. However now the returned objects
will have an extra property 'request_ids' which is a list of
exactly one request id.
For generator cases the request_ids property will be an empty list
until the underlying generator is invoked at-least once.
Co-Authored-By: Abhishek Kekane <abhishek.kekane@nttdata.com>
Closes-Bug: #1525259
Blueprint: return-request-id-to-caller
Change-Id: If8c0e0843270ff718a37ca2697afeb8da22aa3b1
vhdx is also a format of the disk valid value in v2 version,
so add it in disk_format.
Related-Bug: 1635518
Co-Authored-By: Stuart McLaren <stuart.mclaren@hpe.com>
Change-Id: I7d82d4a4bdb180a53e86552f6f6b3bed908e6dc0
Following Python 3 guide https://wiki.openstack.org/wiki/Python3
Thus, we should replace task.iteritems() with task.items()
Change-Id: If617c3a87836930dc78a4ce7dd45a9b7804e0d24
This patch adds support for community images retrieval and
creation in the Glance client.
Depends-On: I94bc7708b291ce37319539e27b3e88c9a17e1a9f
Change-Id: I81e83eab5a9d30643c354f0cb6df425cf7a7bae3
Commands like glance md-namespace-show <namespace> fail because
of a breaking change in warlock 1.3.0's model creation factory
method.
Warlock introduced a new kwarg 'resolver' in model_factory method
but changed its position with the 'base_class' kwarg. Since we
were calling the model_factory method with positional arg, this
broke the model creation.
Closes-Bug: #1596573
Change-Id: Ic7821f4fdb1b752e0c7ed2bc486299a06bf485c1
Image schema that is located in glance client
is seriously outdated, we need to updated it
and bring it in line with the server version.
Change-Id: I5a79a84a9c07b9ee821a71a5bd2d61cb4299ad72
This code removes unnecessary PATCH requests
for tags updating if they were not modified.
Change-Id: I8eced32f39d0c98e0b26014e7b2341ab6580ff01
Closes-bug: 1587999
Enabled following hacking checks from tox.ini:
- H233 Python 3.x incompatible use of print operator
- H303 no wildcard import
- H404 multi line docstring should start with a summary
Change-Id: I2553bcd3e80c00acc08d135a1d2dadfb6cda49fe
Partial-Bugs: #1475054
Now the help message of namespace and resource_type are wrong,
we could see a <unavailable> error when try to get the help
information, such as "glance help md-namespace-create".
See the patch[1] to get more information. the patch[1] added
image schema, but the metadata schema are needed as well.
This patch adds the current metadata schema into client, so that
help text can't be rendered when there schema is not available in
the system.
[1]: https://review.openstack.org/#/c/209536/3
Change-Id: I2ab94d8768114a7e5c475310ba094af653627658
Closes-Bug: #1536430
When docs are generated with pbr command 'warnerrors = True'
there are many doc problems that are shown. This patch fixes
these problems.
Change-Id: Idb804ab924782b6d7d379494987bdba2acbce568
Closes-Bug: #1557235
After commit Ieb03aaba887492819f9c58aa67f7acfcea81720e, the command
location-update is totally broken now. This patch removes the updating
for an image from non-empty to empty since it's not supported now.
And also removing the default value of metadata for location-update
cli command because now the only purpose of location-update is updating
the location's metadata, so it doesn't make sense to give it a default
value which may update existing metadata by mistake.
Closes-Bug: #1537626
Change-Id: I9ce98e6c63996bbfdbc56761055e37a871f9d3e2