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