67 Commits

Author SHA1 Message Date
Tom Hancock
a3610f045d Fully support os-endpoint-type
Fix Change-Id: I98a8507f2369deff6a6f7f8f08271b169fe651ad for bug #1454436
doesnt allow OS_ENDPOINT_TYPE environment variable to be used as a default
for --os-endpoint-type as argparse takes the first definition of the
default expression for dest=os_endpoint_type

Closes-bug: 1500489
Change-Id: I76cc963b10bc7a549fe5a0cd2c73dfc6a30bb759
2015-09-28 16:36:09 +01:00
chenying
dba302e1dd Add a period for the description string of a argument
This change add a period for the description string of
a argument that gets dropped.

Closes-Bug: #1489317
Change-Id: Ica1a74625a640f8d664f5ca183ada14ef63be077
2015-09-06 02:28:07 +00:00
Ivan Kolodyazhny
04caf88307 Set default OS_VOLUME_API_VERSION to '2'
Cinder API v1.1 is deprecated and will be removed. Switching to API v2 in
cinderclient makes it works well with new API after API v1 will be
removed.

Change-Id: I639f4b54dc7e220e8e351113a4de1dff104b50a7
2015-07-30 18:24:57 +03:00
Jenkins
a0f13ea8f1 Merge "Remove unnecessary check for tenant information" 2015-07-20 13:05:41 +00:00
Jenkins
159783743e Merge "Use shared shell arguments provided by Session" 2015-07-16 22:03:34 +00:00
Ian Cordasco
8afc06c562 Remove unnecessary check for tenant information
Keystone v3 has changed the name of tenants to projects which means that
OS_TENANT_NAME is meaningless in a cloud where v3 is the default
authentication version. As such, if a user does not have OS_TENANT_NAME
enabled, cinderclient will not work even though it has checks for v3
immediately below this check (and the same check replicated further
below that). Removing this allows cinderclient to work with Keystone v3
without setting OS_TENANT_NAME unnecessarily.

Further, the check for project information was incorrectly referring to
project_domain_name and project_domain_id instead of
os_project_domain_name and os_project_domain_id.

Closes-bug: 1472636
Change-Id: Ifabb4a2aec070c00349e794364a71394feea99f1
2015-07-08 12:11:07 -05:00
Mike Perez
1f52746bcb Revert "Enable version discovery"
This reverts commit ae03d2a721bd9acb61805ce792a27fb7cf88e5cd.

Cases where a deployment is using a proxy, Cinder servers won't return
the expected publicURL, and instead gives an internal URL that the
client can't use.

Commit 2eb25ab8803214cb3beb5d8fe3efbf70a462c414 in Cinder introduces the
public_endpoint config option, but not everyone is expected to be
running that later of a version to take advantage of this.

Closes-Bug: #1464160
Change-Id: I61228c1e8630b958c792be077674b48fbdb83135
2015-07-02 11:57:33 -06:00
Michal Dulko
891ef3e71e Use shared shell arguments provided by Session
The cinderclient implemented it's own version of the CLI arguments that
are now provided by keystoneclient's session object. This changeset
converts cinder over to utilizing the shared argument registration.

Closes-Bug: 1434105
Change-Id: I72b16aab909d72a47097434436093e616667634a
2015-06-25 13:27:42 +00:00
scottda
a609eda7b4 cinderclient does not honor --os-region-name or ENV[OS_REGION_NAME]
When we use version discovery, we must pass in os-region-name for it
to work.

Change-Id: I82765f7a899d84283dd3a3672f6e151805c1c6fa
Fixes: bug 1467628
2015-06-22 18:26:04 +00:00
Jenkins
c0c5c984bb Merge "cinderclient deprecated endpoint_type needs dest=" 2015-06-16 19:07:31 +00:00
Jenkins
e88c96e18e Merge "Avoid _get_keystone_session() if auth_plugin" 2015-06-02 04:18:30 +00:00
Tomoki Sekiyama
2f97e1e3ca Bump hacking to >=0.10.0,<0.11 to fix failure of gate pep8
pbr 1.0.1 released in 2015-05-19 requires the newer
hacking module >=0.10.0,<0.11 than the versions
specified in the test-requirement.txt file,
which causes failure in gate-python-cinderclient-pep8.

This patch bumps the pbr version in test-requirement.txt
to make it consistent with requirements repository,
and adds some fixups to avoid some new hacking rules.

Change-Id: I7de6e04e30a475ec1c26224461faf0c708178a40
Closes-Bug: #1460774
2015-06-01 15:33:03 -04:00
Jenkins
a15c74361c Merge "cinderclient no longer honors --endpoint-type" 2015-05-13 16:24:04 +00:00
scottda
be46cdb711 cinderclient deprecated endpoint_type needs dest=
Fix for https://bugs.launchpad.net/python-cinderclient/+bug/1453901 did
not set dest=os_endpoint_type for synonym endpoint_type

Change-Id: I98a8507f2369deff6a6f7f8f08271b169fe651ad
Closes-Bug: 1454436
2015-05-12 22:49:24 +00:00
scottda
adc561a7b1 cinderclient no longer honors --endpoint-type
Commit for "Enable version discovery":
ae03d2a721bd9acb61805ce792a27fb7cf88e5cd
breaks CLI use of --endpoint-type. This is because we were using the
default interface instead of checking to see if an endpoint_type is
passed in.

Change-Id: I412bb6b4bcb9bf10aa6118a2ed43e28cbd3ed236
Closes-Bug: 1454407
2015-05-12 21:39:51 +00:00
scottda
24aff3b796 Add --os-endpoint-type to match other services
Cinder uses the parameter '--endpoint-type' but other services
 (Glance, Nova, Swift) use '--os-endpoint-type'. (Neutron has deprecated
 'endpoint-type' in favor or 'os-endpoint-type' as well.
'--endpoint-type' should be deprecated and 'os-endpoint-type' should
be added.

Change-Id: I0ac6573be35c86b9f764a39f1e60486d2345f51b
Closes-Bug: #1453901
2015-05-12 15:21:12 +00:00
Derrick J. Wippler
e3a0556e56 Avoid _get_keystone_session() if auth_plugin
Avoid calling _get_keystone_session() if auth_plugin is provided by the
user

Closes-Bug: 1421433
Change-Id: I37a7139107c357caf1a25ac3d0a3457afade0f83
2015-05-07 14:46:55 -05:00
Mike Perez
ae03d2a721 Enable version discovery
The service catalog can now have the cinder endpoint x.x.x.x:8776 with
service_type volume, without needing to specify a version in the
endpoint. Keystone will do discovery of the root / GET of the Cinder API
to discover the versions that can be talked to.

This also provides backwards compatibility for the previous solution of
having v1 enabled on service_type volume and v2 on service_type
volumev2.

Change-Id: Id0347f8370dbc8fd7fa8096cd5859e10b0c5d67c
2015-04-20 15:50:08 +00:00
Jenkins
7c68f6f6df Merge "cinderclient accepts arguments after metadata without -- separator" 2015-03-16 16:52:02 +00:00
rajiv
57c9bf17b3 cinderclient accepts arguments after metadata without -- separator
Added a function, which parse arguments and add -- separator
after metadata subcommand

Change-Id: I907eb89209d549dcdad361d88352491110eaadb9
Closes-Bug: #1379486
2015-03-10 09:45:00 +05:30
Kallebe Monteiro
d76387cc9f Add -d short option for --debug
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
2015-02-12 10:52:17 -03:00
Vincent Hou
7a50182fbe Add the parameter bypass_url to the cinder client
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
2014-12-01 02:43:52 +00:00
John Trowbridge
122bf5bdcc Adds tty password entry for cinderclient
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
2014-10-24 15:43:04 +00:00
Boris Pavlovic
6f5fd37ee9 Add profiling support to cinderclient
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
2014-10-08 19:30:10 +04:00
git-harry
36dd138aa6 Enables debug mode for keystone session object
This fixes the lack of debug messages introduced by commit 84af49c.

Change-Id: I7bf3e98c21f09bd4f3c2d5d3bc372f60d717c9d5
Closes-bug: #1370152
2014-09-18 17:14:19 +01:00
Jamie Lennox
b4acbd2586 Move debug logging to shell
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
2014-07-29 12:26:33 -06:00
Haneef Ali
b4906c855f Fix version discovery and auth_plugins
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
2014-07-01 09:22:06 -07:00
Matt Fischer
8d317c47dc Remove deprecated command-line args
Some command-line args were deprecated in Diablo and slated for removal
in Folsom. They're being removed in Juno instead.

Change-Id: I02339ba08c997fecca5a6639382360962e668bfd
2014-06-26 18:49:28 +00:00
haneef ali
e8e06ee289 Added support for keystone v3client
Change-Id: I7bbc74c9e73f36f942f5800a7af0da717da0bc64
2014-06-17 13:10:32 -07:00
Jenkins
12347c1a47 Merge "Ambiguous option error should not appear if Arg is SUPPRESS" 2014-05-08 19:21:36 +00:00
Diane Fleming
0d2bf657ae Update help strings for cinder client
Make text consistent and clear.
Add periods to end of sentences.
Adjust test suite for change

Closes-Bug: #1275881

Change-Id: I1dfde51636e8dc4b42e4c4810c27c1c4ac513d82
2014-04-23 09:06:21 -05:00
Juan Manuel Olle
2b182c7e34 Ambiguous option error should not appear if Arg is SUPPRESS
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
2014-04-16 15:10:55 -03:00
Cory Stone
d5334aa929 Add auth_plugin support to cinderclient
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
2014-02-14 15:09:44 -06:00
huangtianhua
5aaa68f09e Fix typo in cinderclient
sematics --> semantics
hypen-separated --> hyphen-separated
typicaly --> typically

Change-Id: I5df277ef7036082d0e4b079c23d41da809e5270f
Closes-Bug: #1254587
2013-11-28 09:28:05 +08:00
Jay S. Bryant
84ea630be0 Override endpoint URL check for API version
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
2013-10-17 15:03:55 -05:00
Jenkins
0c2839414f Merge "python3: Refactor dict for python2/python3 compat" 2013-10-13 05:53:35 +00:00
Chuck Short
b0b8afaf55 python3: Refactor dict for python2/python3 compat
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>
2013-10-11 09:04:49 -04:00
Eric Harney
98e9df62ee Fix DeprecationWarning when printing exception
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
2013-10-09 17:31:49 -04:00
ZhiQiang Fan
5ad95e9fd2 Replace OpenStack LLC with OpenStack Foundation
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
2013-09-28 23:13:54 +08:00
Mike Perez
34c7c8c2e2 Add support for multiple cinder endpoints
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
2013-08-08 11:07:36 -07:00
John Griffith
3d30126e93 Revert "Use exceptions from oslo"
This reverts commit a7cce08eab5e2e42275b84bd56127bd09b00f5bf

Change-Id: I6c0047adbc33d0d6b5890f11853974578c36c78c
2013-07-15 10:30:05 -06:00
Alessio Ababilov
a7cce08eab Use exceptions from oslo
These exceptions can be used in novaclient, keystoneclient,
glanceclient, and other client projects.

Partially implements: blueprint common-client-library

Change-Id: I43918316622b1c1d722872fe30199db6a3a7bb76
2013-07-01 11:55:31 +03:00
Jenkins
dcc2f67bee Merge "Connectivity between the endpoint version and OS_VOLUME_API_VERSION." 2013-06-25 16:29:09 +00:00
Anastasia Latynskaya
6adda93c9d Connectivity between the endpoint version and OS_VOLUME_API_VERSION.
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
2013-06-25 13:01:33 +00:00
Chuck Short
1197fb3701 python3: Strutils is not needed
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>
2013-06-22 12:50:23 -05:00
Chuck Short
3044671b36 python3: Fix traceback while running tests
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>
2013-06-19 20:52:22 -05:00
Chuck Short
4b1cdab2fe python3: Basic python3 compatibility.
Basic python3 compatibilty.

Change-Id: I4388f5956cf397f8e33d20085aae6c6a728dbbda
Signed-off-by: Chuck Short <chuck.short@canonical.com>
2013-06-12 07:59:44 -05:00
Jenkins
e7cfd77ba3 Merge "Minor typo/message fixes" 2013-04-09 15:26:12 +00:00
Eric Harney
fd3351ffa8 Minor typo/message fixes
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
2013-04-08 17:11:16 -04:00
Jenkins
222f501d9f Merge "Add OS_TENANT_ID as authentication option" 2013-04-05 12:59:08 +00:00