Allows passing --file and --progress to glance image-create with Image API v2.
if --file is present the image-create effectively calls image-upload with the
newly created image's id and the '--file' + '--progress' paramaters. The image
metadata will be printed after the upload call instead of after creation.
In a case argumented file does not exist the image will not be created and
error will be printed instead.
DocImpact
Closes-Bug: #1324067
Change-Id: I5d41fb2bbeb4e56213ae8696b84bf96b749414f8
This adds a useful error message when a user enters an invalid value
for --os-image-api-version. Previously, the shell directly attempted to
import the module the user specified, and printed the error from the
exception raised when that failed:
$ glance --os-image-api-version stupid-glance-version
No module named vstupid-glance-version.shell
Glanceclient now catches this exception and prints something
understandable for a user:
$ glance --os-image-api-version stupid-glance-version
"stupid-glance-version" is not a supported API version. Example values are "1" or "2".
Closes-Bug: #1395841
Change-Id: I48a95b7562c10bd68d777be408dcfa22cb05ec6a
These were not written at the time of release, so this catches up with
the latest version.
For reference:
$ git log --oneline --no-merges 0.13.0..0.14.0
33dcea8 Support for Metadata Definitions Catalog API
16077d9 Catch new urllib3 exception: ProtocolError
6dda6f3 Fix error when logging http response with python 3
d6498b6 Ensure server's SSL cert is validated
9a53c1f Enable osprofiler interface in glanceclient shell
69361a1 Hide stderr noise in test output
1dfce53 Remove deprecated commands from shell
867e4ca Normalize glanceclient requested service url
4494853 Fix glance-client to work with IPv6 controllers
f15dc6b Add support for Keystone v3
7736349 Update theme for docs
e79031b Add a tox job for generating docs
68c1d1f Don't stream non-binary requests
f75a810 Use a correctly formatted example location in help
dbb242b Replace old httpclient with requests
1db17aa Enable F841
797d101 Resolving the performance issue for image listing of v2 API
e305dad Add profiling support to glanceclinet
9b9f3be Use immutable arg rather mutable arg
1c46c76 Add CONTRIBUTING.rst
$ git log --oneline --no-merges 0.14.0..0.14.1 f980fc5 Update how tokens are redacted
ba19a53 Handle UnicodeDecodeError in log_http_response
4d6b94a Print traceback to stderr if --debug is set
61e4eba Updated from global requirements
97b1506 Fix v2 requests to non-bleeding edge servers
9fbc313 Work toward Python 3.4 support and testing
d97f03e Import missing gettextutils._ in shell.py
4631b76 Fix indentation in tox.ini
cda8c4d Downgrade log message for http request failures
8770586 CLI image-update gives a wrong help on '--tags' param
$ git log --oneline --no-merges 0.14.1..0.14.2
052904b Don't replace the https handler in the poolmanager
5f4966d Remove network_utils
2b567cf Skip non-base properties in patch method
7ef1b7c Adds support for Glance Tasks calls
1511c86 Fix the ordering of assertEqual arguments
ab07caf Stop using intersphinx
929a72e Default to system CA bundle if no CA certificate is provided
Change-Id: Ie4195fa9ad7f5f45c387fda4b1db4fbce7a3f98c
Change I09f70eee3e2777f52ce040296015d41649c2586a, introduced a bug where
the identity_headers are not added to the request headers anymore
causing the former to be completely ignored and useless.
This patch fixes that issue by restoring the previous code. A new test
has been added to avoid regressions.
Closes-bug: #1394965
Change-Id: I1b1633636448398cf3f41217f1d671b43ebd9946
python-glanceclient displays curl statements for debugging/troubleshooting
purposes. For IPv6 URLs, curl requires --globoff to be passed in the
arguments. Since glanceclient does not use curl directly, this patch
displays the curl commands with globoff option which works for both
IPv4 and IPv6 URLs.
Fix adapted from python-novaclient Ib7099e8e3bbc15f29bbaa1db37ef21e78a74e7bc
Closes-Bug: #1228744
Change-Id: Ie02c4e75ca1ab995102aa55bbff39b2161218b2d
This commit is removing the read-only properties from shell options to
prevent user from doing invalid requests using the client.
Change-Id: I17e9578e705bd3cf628fe39630ebecc4ea43e392
Closes-Bug: 1350802
The option is present in the v1 shell, but missing from the v2 shell. This
allows the user to filter based on any image property.
Example:
$ glance --os-image-api-version 2 image-list --property-filter os_distro=NixOS
DocImpact
Closes-Bug: #1383326
Change-Id: Ia65a08520e3eaf3ecd9b9018be9f6a8e2d3d4f0b
Fix somes tests failures for py34, most of them are related
to items order of dict.
Closes-Bug: 1382582
Change-Id: I954b884f03931e4f0ecb654fb38edd0c46a3c379
Commit f980fc5492 changed how the
X-Auth-Token header was scrubbed when logging the request, but
effectively made the value required which can lead to an AttributeError
if the value for the header is None.
The value can be None if you're using Nova but don't have Nova
configured with auth_strategy='keystone' (see
nova.image.glance._create_glance_client for details).
This patch simply checks if the auth_token is set in the http client
object and if not, it doesn't set the X-Auth-Token key in the session
header.
Closes-Bug: #1381295
Change-Id: Ie285d5253df28a9f0f964147a53c99ceaa919c5c
In order to keep the support for `--ssl-nocompression` it was decided to
overwrite the https HTTPAdapter in `requests` poolmanager. Although this
seemed to work correctly, it was causing some issues when using
glanceclient from other services that rely on requests and that were
also configured to use TLS.
THis patch changes implements a different strategy by using
`glance+https` as the scheme to use when `no-compression` is requested.
Closes-bug: #1350251
Closes-bug: #1347150
Closes-bug: #1362766
Change-Id: Ib25237ba821ee20a561a163b79402d1375ebed0b
In some of the v2 tests, dictionaries are construed from lists of
tuples of length two. For example:
dict([('visibility', 'private')])
There could be a very good reason for doing it that way, but it eludes
me. This patch replaces those with dictionary literals.
Change-Id: Ie9668bd681538ef41521f08a20cb8c3417ac91e8
Added functionality from keystoneclient to fallback to the tty for password
entry if no password is given via the environment or the --os-password option.
Change-Id: I096e81b61d7f499cbda300abdc14430928d18491
Closes-Bug: 1357549
Currently, if '--public' is specified, an image is created but
it is not marked as public:
$ glance image-create --public --name minus-minus-public --disk-format raw \
--container-format bare < /etc/fstab
+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
.
.
.
| is_public | False |
.
.
.
+------------------+--------------------------------------+
This is inconsistent.
'--public' has been deprecated for some time, and has
been removed from devstack (https://review.openstack.org/#/c/39323/),
so we can finally get rid of it.
We now raise the standard error for unsupported arguments.
Change-Id: I15d16f690f9bd92b4cefbc8ed36ed2d171ff22f3
Closes-bug: #1378844
It's currently impossible to update properties which are defined in
image schema and which are not a base image property. Proposed fix skips
every non-base property when building a json patch, that is used to
update image properties through glance API.
Change-Id: I3b35cef379fcf437715e2966f9a0d25c1b4e4016
Closes-Bug: #1371559
Add tasks operations on client side to support task create,
list all and show.
DocImpact
Implement blueprint async-glance-workers
Change-Id: Ib4b8e347a8a47817e3b427c8ba024e8c32f65155
python-glanceclient (like, for example, curl) can advertise the default
set of supported OpenSSL ciphers in its ClientHello packet.
This patches reduces that to a stronger subset.
Change-Id: I7c30465e79d8a32f43458cd6253a98fcf067dc38
Closes-bug: #1370283
This keeps testtools happy, since it expects the argument ordering to be
(expected, actual).
Change-Id: I95b41ad7645700ce23b46c7a5700e79008ed08be
Closes-bug: #1277104
Similar to commit dec9c9f35 and log_curl_request,
this ignores decoding errors when logging response
headers by passing errors='ignore' to safe_encode.
Change-Id: Ic915a7d8334e9473f300c9db670a3a8f5cda8976
Closes-Bug: #1369756
This change allows easier debugging of client related issues, with a
full traceback printed out when an uncaught error occurs in the client.
Previously, it could be hard to find the portion of code raising an
exception, with just the message from the exception being displayed.
Previous behaviour (with a rather artificial client error being raised):
$ glance --debug image-list
Contrived exception
Behaviour after this patch:
$ glance --debug image-list
Traceback (most recent call last):
File "/opt/stack/python-glanceclient/glanceclient/shell.py", line 590, in main
args.func(client, args)
File "/opt/stack/python-glanceclient/glanceclient/v1/shell.py", line 77, in do_image_list
raise(Exception('Contrived exception'))
Exception: Contrived exception
Contrived exception
Change-Id: Id7b76b707e5fc16a0402dcb104ec40787e0ffbe2
Remove intersphinx from the docs build as it triggers network calls that
occasionally fail, and we don't really use intersphinx (links other
sphinx documents out on the internet)
This also removes the requirement for internet access during docs build.
This can cause docs jobs to fail if the project errors out on
warnings.
Change-Id: I71e941e2a639641a662a163c682eb86d51de42fb
Related-Bug: #1368910
In the case where v2 requests are sent to a server which is not running
head of tree which includes the v2 metadef code some 404 cases need to
be handled to enable standard requests to complete.
This patch aslo improves fetching schemas -- they are now only
fetched as needed.
Change-Id: I8c871f11b909337bd7df19b77e606772dbc634b2
Closes-bug: #1367326