Added a function, which parse arguments and add -- separator
after metadata subcommand
Change-Id: I907eb89209d549dcdad361d88352491110eaadb9
Closes-Bug: #1379486
A short option for --debug is a convenience.
This commit adds the -d short option as a shortcut for --debug
Glance already provides -d.
Change-Id: Iefae6cee566f9c7d7375e89c3f8603f149e555ef
Closes-Bug: #1421210
If the bypass_url is specified in the http client, there is no need
to get it from Keystone.
Change-Id: I891849f77ad2ba98a83c993b401121216c8cfff6
closes-bug: #1350702
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: If5b27cb8c67712860faa24d543ed48eaa542f28b
Closes-Bug: 1357559
To be able to create profiling traces for Cinder, client should be
able to send special HTTP header that contains trace info.
This patch is as well important to be able to make cross project
traces. (Typical case nova calls cinder via python client, if
profiler is initialized in nova, cinder client will add extra
header, that will be parsed by special osprofiler middleware in cinder
api)
Don't worry no security issue here, trace information is signed by HMAC
key that is setted in api-paste.ini. So only person that knows HMAC key
is able to send proper header.
Main patch (in Cinder) is:
https://review.openstack.org/#/c/103415/
Change-Id: I53bb1b92e62841a02f941bdafaed7f8ed5db7ce1
Adding channels to a logger is not the responsibility of a library. This
sort of thing should be handled by an application so move the logging
over to the shell.
Change-Id: Ie11571d428913eba1aae5aa42a6e925228ba6808
V3Client support added version discovery and session supports. Most
of the external auth system doesn't support this. This fix bypasses
version discovery if the idenity service doesn't support that. Session
is used only if no external auth plugin is used
Change-Id: Ia84a2ad45940d35c5ef740727f5f7477c72ea9d4
Closes-Bug: #1333961
Some command-line args were deprecated in Diablo and slated for removal
in Folsom. They're being removed in Juno instead.
Change-Id: I02339ba08c997fecca5a6639382360962e668bfd
Make text consistent and clear.
Add periods to end of sentences.
Adjust test suite for change
Closes-Bug: #1275881
Change-Id: I1dfde51636e8dc4b42e4c4810c27c1c4ac513d82
Due to backward compatibility there are arguments hidden.
For example:
--tenant-id and --tenant_id
On those case the abbreviation mechanism if a user enter
--tenant throw that there is an ambiguity but the helps only
show --tenant-id as an optional argument.
This change remove this ambiguity if one of them is hidden.
Change-Id: I413f1ebafc68b3e02b5abadce1608e6d48207b01
Closes-Bug: #1252457
With CINDER_RAX_AUTH being rightfully removed, cinderclient is no longer
compatible with Rackspace/any non-keystone auth. To fix this, I stole
auth_system/auth_plugin from novaclient's implementation.
See https://review.openstack.org/#/c/23820/.
Change-Id: If5f84003f868ef02bb7eb7da67cf62018602e8f0
Closes-Bug: 1280393
get_volume_api_version_from_endpoint currently assumes that the
management_url will always be in the format of
http://<ip>:<port>/vX/<tenant_id>. Customers using a gateway, however,
can get a mangement_url in a different form like
https://<ip>:<port>/<resource>/vX/<tenant_id>. This causes the
get_volume_api_version_from_endpoint to find the resource portion of the
url when looking for the Volume API version which makes the
cinder client unusable.
To resolve this I have implemented an exception handler in the case that
get_volume_api_version_from_endpoint fails. If the exception is thrown, I
check for OS_VOLUME_API_VERSION in the environment and use the value of that
environment variable, if it is set, to determine the API version to use.
There are proposals to fix this via changes to keystone in future releases,
but this provides a way for IaaS Gateway users to proceed with Havana.
Change-Id: I8b978a6ecd87b81c6ae34938e37623ad1cc33994
Closes-Bug: 1233311
Python3 changed the behavior of dict.keys such that it is now
returns a dict_keys object, which is iterable but not indexable.
You can get the python2 result back with an explicit call to list.
Refactor list(*.keys()) so that it just uses list().
Change-Id: Ib2e9646ac967e9bd7cc4f47e2099f5d1358808a9
Signed-off-by: Chuck Short <chuck.short@canonical.com>
On Python 2.6, this results in an error like:
/usr/lib/python2.6/site-packages/cinderclient/shell.py:524:
DeprecationWarning: BaseException.message has been deprecated as of
Python 2.6
message = e.message
Should use the method from novaclient commit 8c4e145b92, which
works well with python2 and python3.
Change-Id: Ifbd78ad158ae87670bdee4e247469091efaa3260
NOTE:
* openstack/common/* should be synced from oslo, so i leave them
untouched.
* add (c) symbol for related lines, leave others untouched.
Change-Id: I46a87c7f248d3468b1fdf5661411962faf2fb875
Fixes-Bug: #1214176
Before v1 and v2 were set to the same service_type, so you could only
have one set at a time. This assumes the catalog is setup for v1
service_type 'volume' and v2 service_type 'volumev2'.
For backwards compatibility, we will allow v2 to be setup with
service_type 'volume' for existing installations.
Change-Id: Ife6d2cdb12d894b84ea3b276767fb93d487355d5
These exceptions can be used in novaclient, keystoneclient,
glanceclient, and other client projects.
Partially implements: blueprint common-client-library
Change-Id: I43918316622b1c1d722872fe30199db6a3a7bb76
Adds functionality which allows user to work with
that cinder API version which is the same as
the endpoint version.
Fixes: bug #1169455
Change-Id: I9bb46e602d15856d2da502a6ac2b6c25e76f4fa3
strutils is used to safely encode and decode unicode strings
for python2.7. Since unicode strings are the default in python3,
ignore the use of strutils when running with python3.
Change-Id: I9a8e296b4f2153b1ef4302a7dcd797fbb4561c35
Signed-off-by: Chuck Short <chuck.short@canonical.com>
The testsuite is full of the following:
TypeError: 'dict_keys' object does not support indexing
This is due to the fact in python3 dict methods dict.keys(),
dict.items() and dict.values() return “views” instead of lists.
Change-Id: Ifa5383e6485fdbabf363fd1442877b2452346c1c
Signed-off-by: Chuck Short <chuck.short@canonical.com>
Correct it's -> its in force-delete message
Print whole bash_completion message in "cinder help"
Reformat some doc strings per PEP-0257
Change-Id: I013b849508beac5c9fe5c6f9d4cdfae54676c29c
Currently cinderclient doesn't handle properly incoming and outgoing
encode / decode process. As a solution for this, this patch implements a
decoding process for all data incoming from the user side and encodes
everything going out of the client, i.e: http requests, prints, etc.
This patch introduces a new module (strutils.py) taken from
oslo-incubator in order to use 2 of the functions present in it:
About safe_(decode|encode):
Both functions try to encode / decode the incoming text using the
stdin encoding, fallback to python's default encoding if that
returns None or to UTF-8 as the last option.
In both functions only basestring objects are accepted and they both
raise TypeError if an object of another type is passed.
About the general cinderclient changes:
In order to better support non-ASCII characters, it is a good
practice to use unicode interanlly and encode everything that has to
go out. This patch aims to do that and introduces this behaviour in
the client.
Testing:
A good test (besides using tox) is to use cinder client with and
without setting any locale (export LANG=).
Fixes bug: 1130572
Change-Id: Idb7d06954c29e003f68a0c4aa0b80ecc7017cbc9
When a user Ctrl-C's the client, this will cause a short message to
be printed rather than an ugly backtrace.
This will not catch all instances of this (can still Ctrl-C before
reaching this code, etc.), but it should catch most of them, and those
for long-running sessions.
The specific message was chosen to match one recently added to the
glance client.
Change-Id: Ib748835ad1f94fb901b4941dc5e3797b719e197f
This will allow the cinderclient to speak to the v2 rest api if it's
enabled in the cinder config. Includes additional v2 tests as well.
blueprint cinderclient-v2-support
Change-Id: I004134d9f528a6eadefdaa89eb48087bcae2691f
When an exception message contained a non-ascii
character, the str() conversion raised an UnicodeEncodeError.
Avoid this by simply passing the message itself.
Python handles the encoding to locale already.
Change-Id: I3c4440fc238d8c8136a9bd93a0040668f82bda6e
Updated README.rst and shell.rst to match changes
in the cinder command and novaclient README.rst.
Change-Id: Ifaa53d5c06e6d7d8e3d4d858672717954303bea7
Fixes: bug #1074125
* Implement correct certificate verification
* Add --os-cacert
* Rework tests for requests
Pinned requests module to < 1.0 as 1.0.2 is now current in pipi
as of 17Dec2012.
Blueprint: tls-verify
Change-Id: I71066ff7297f3b70c08b7ae1c8ae8b6a1b82bbae
Ported from novaclient https://review.openstack.org/9241
Support CINDERCLIENT_DEBUG as synonym for --debug
Change-Id: Ic03b9e7d84c8db14f6e193ca2b478fd0d70d1299
When calling cinder without arguments you'll receive the following
output:
error: too few arguments
Try 'cinder help ' for more information.
With this change the help is also shown when calling cinder
without arguments. I think that's the expected behavior.
Change-Id: I8f46f67b7fef472ac344bb74f80cf1b77c4c4745
HTTPClient now supports a retries argument. It will reissue requests
for any 5xx or socket (400 with n/a) errors. This retry loop was
"inspired" by swiftclient's loop. It reauths one extra time if
necessary. It uses backoff times of 1, 2, 4... seconds.
The default is 0 retries. It is also exposed to the shell as well with
a --retries arg.
Change-Id: I67bed02d65155f4a4d5d879bb233f56cc78849fa
HTTPClient now supports a retries argument. It will reissue requests
for any 5xx or socket (400 with n/a) errors. This retry loop was
"inspired" by swiftclient's loop. It reauths one time if necessary.
It uses backoff times of 1, 2, 4... seconds.
The default is 0 retries. It is also exposed to the shell as well with
a --retries arg.
Change-Id: I75d9a13d6c4ba16a5da13d4bf5cad78a777d67d7
This changes every command-line option with a '_' in its name
and changes them to '-'. The old option names are maintained
for backward compatibility but are no longer in the help text.
BP command-options
Change-Id: If926bb3b8fa85d628aea197496cf976f71bcdd08