The 'unicode_key_value_to_string' and '_encode' helpers were used to
handle the difference between unicode and byte strings in Python 2. In a
Python 3-only world, they are unnecessary. Remove them.
Some references to text encoding in the HACKING file are removed. In
theory, we should no longer have to worry about byte strings.
Change-Id: I0694b25dc4d72e817cb08ce6cafb39bb8226293d
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This is no longer needed in a Python 3-only world.
Change-Id: I84231b7e8d952b562870838a2fa4ef0d86179183
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
IETF RFC 3986 classifies "~" as a reserved character [1],
however until python3.7 [2], python's url parsing
used to encode this character.
urllib has seen a lot of churn in various python
releases, and hence we were using a six wrapper
to shield ourselves, however, this backwards-incompatible
change in encoding norms forces us to deal with
the problem at our end.
Manila's API accepts "~" in both, its encoded
or un-encoded forms. So, let's stop encoding it
within manilaclient, regardless of the version
of python running it.
[1] https://tools.ietf.org/html/rfc3986.html
[2] https://docs.python.org/3/library/urllib.parse.html#url-quoting
Closes-Bug: #1785283
Change-Id: I6df5d543ae94ed1fa966c8019a52e9fca19e387e
The unicode() built-in does not exist under Python 3 so use
six.text_type, which is set correctly to str or unicode, instead.
Change-Id: I4e2a4b10dfaa8703525df7d5a6892487698657da
When using the name or description to filter the share list,
share group list, share network list or snapshot list, if the
name or description is unicode symbols, the query will fail due to the
invalid str value. This change is to fix them.
Change-Id: I73ed2b675542d3aeedc9efdba08067819bf7d3e4
Closes-bug: #1712988
The Manila client needs the following changes to support microversions:
* Maintain backwards compatibility with Kilo. When the client detects
that the server doesn't support microversions it will fall back to
using the v1 API.
* The --os-share-api-version option supports overriding the version.
* If 1.0 is specified as the version the client will load the v1
client and use the server's v1 API.
* The client will send a request for the server's API version and
determine if the client's supported versions and the server's
supported versions overlap. If not the client will display an error
and quit. See diagram 1 below.
* The client supports the @wraps annotation. The annotation is used
with the v2/shell.py commands and any class that inherits from
the Manager class in manilaclient/base.py.
* If an appropriate command version isn't found for commands using
@wraps then the client will display an error and quit.
following commit: ab49d645befd04c84272f0d24e1b604012d191dd.
Diagram 1:
Client:
2.5 2.8
|-------------|
Server1:
2.0 2.5
|-------------|
Client uses version 2.5
Server2:
2.7 2.10
|-------------|
Client uses version 2.8
Server3:
2.9 2.12
|-------------|
Client displays error and quits
Server4:
1.0 (Kilo Server)
|-|
Client detects pre-microversion server and loads v1 client
Example usage of wraps annotation:
* Support 2.0 - 2.4: @api_versions.wraps("2.0", "2.4")
* Support 2.5 - latest: @api_versions.wraps("2.5")
Implements: blueprint manila-client-advanced-microversion-support
Change-Id: I3733fe85424e39566addc070d42609e508259f19
Remove 'print_list' and 'print_dict' functions from
manilaclient.utils and use same functions from cliutils instead.
Partially implements: blueprint use-common-code
Change-Id: I5f7ac638403bfc23b855219f6e11469e23481fbc
Replace usage of oslo-incubator modules strutils, importutils, timeutils
with corresponding oslo.utils modules instead.
Removes timeutils module, others will be replaced with next oslo-incubator sync.
Change-Id: I12530f4e4d745f9a95b339182e31189e32e56fa6
1) Added new params for filtering by:
- share network
- snapshot
- volume type
- host
- limit and offset a la pagination
- project id (useful with '--all-tenants')
- metadata*
- extra-specs*
- direction (asc, desc)*
- key of share*
* requires server-side update
2) Added aliases for params, mostly in perspective to avoid mess of underscore
and dash symbols.
3) Updated utils.print_list func to print results as is without reordering.
Implements blueprint improve-share-list-filtering
Change-Id: I6fe92c5242f18c900e109271f9182bd5ed287b25
Remove functions 'arg', 'env' and 'add_arg' from
manilaclient.utils and use same functions from cliutils instead.
Partially implements: blueprint use-common-code
Change-Id: Ib41250d527c5949cdfb7c6956703ff4b371a062b
First part of manilaclient.utils module cleanup,
where usage of deleted functions replaced with functions
from common code.
Partially implements: blueprint use-common-code
Change-Id: Iefe7da601cdaf030787c6d7588dd0c1706e309cd
The bash completion code is the sole user of the slugify() function
in utils, which is substantially similar to to_slug() provided in
strutils from oslo. Remove slugify() and use to_slug() instead.
Change-Id: Iffab2f59504ee7ec6528860e06a5140ff22f332f
Closes-Bug: #1266127
Adds command 'metadata' for setting and unsetting metadata keys.
Adds command 'metadata-update-all' for updating all metadata.
Adds command 'metadata-show' for viewing share metadata.
Adds key '--metadata' to command 'create'
Partially implements bp manila-client-enhancements
Change-Id: I10d20e12e71065d6e40be062715fa01998828ab2