Add support for Block Storage API mv 3.60
Change I1f43c37c2266e43146637beadc027ccf6dec017e adds time-comparison filtering to the volume list calls (summary and detail) in the Block Storage API microversion 3.60. The current cinderclient filter support will pass these filters correctly, so the only change needed on the client side is to bump the MAX_VERSION so that the client can make calls to mv 3.60. Co-authored-by: Brian Rosmaita <rosmaita.fossdev@gmail.com> Change-Id: Ib4b7cbc7e527c0524336e139e127f19accfb7568 Partially-Implements: bp support-to-query-cinder-resources-filter-by-time-comparison-operators
This commit is contained in:
parent
7e8d5ca15a
commit
26a55de681
@ -29,7 +29,7 @@ LOG = logging.getLogger(__name__)
|
|||||||
# key is a deprecated version and value is an alternative version.
|
# key is a deprecated version and value is an alternative version.
|
||||||
DEPRECATED_VERSIONS = {"2": "3"}
|
DEPRECATED_VERSIONS = {"2": "3"}
|
||||||
DEPRECATED_VERSION = "2.0"
|
DEPRECATED_VERSION = "2.0"
|
||||||
MAX_VERSION = "3.59"
|
MAX_VERSION = "3.60"
|
||||||
MIN_VERSION = "3.0"
|
MIN_VERSION = "3.0"
|
||||||
|
|
||||||
_SUBSTITUTIONS = {}
|
_SUBSTITUTIONS = {}
|
||||||
|
@ -149,6 +149,24 @@ class ShellTest(utils.TestCase):
|
|||||||
u'list --filters name=abc --filters size=1',
|
u'list --filters name=abc --filters size=1',
|
||||||
'expected':
|
'expected':
|
||||||
'/volumes/detail?name=abc&size=1'},
|
'/volumes/detail?name=abc&size=1'},
|
||||||
|
{'command':
|
||||||
|
u'list --filters created_at=lt:2020-01-15T00:00:00',
|
||||||
|
'expected':
|
||||||
|
'/volumes/detail?created_at=lt%3A2020-01-15T00%3A00%3A00'},
|
||||||
|
{'command':
|
||||||
|
u'list --filters updated_at=gte:2020-02-01T00:00:00,'
|
||||||
|
u'lt:2020-03-01T00:00:00',
|
||||||
|
'expected':
|
||||||
|
'/volumes/detail?updated_at=gte%3A2020-02-01T00%3A00%3A00%2C'
|
||||||
|
'lt%3A2020-03-01T00%3A00%3A00'},
|
||||||
|
{'command':
|
||||||
|
u'list --filters updated_at=gte:2020-02-01T00:00:00,'
|
||||||
|
u'lt:2020-03-01T00:00:00 --filters created_at='
|
||||||
|
u'lt:2020-01-15T00:00:00',
|
||||||
|
'expected':
|
||||||
|
'/volumes/detail?created_at=lt%3A2020-01-15T00%3A00%3A00'
|
||||||
|
'&updated_at=gte%3A2020-02-01T00%3A00%3A00%2C'
|
||||||
|
'lt%3A2020-03-01T00%3A00%3A00'},
|
||||||
# testcases for list group
|
# testcases for list group
|
||||||
{'command':
|
{'command':
|
||||||
'group-list --filters name=456',
|
'group-list --filters name=456',
|
||||||
|
@ -2749,24 +2749,66 @@ Lists all volumes.
|
|||||||
``--tenant [<tenant>]``
|
``--tenant [<tenant>]``
|
||||||
Display information from single tenant (Admin only).
|
Display information from single tenant (Admin only).
|
||||||
|
|
||||||
|
.. _cinder-list-filters-usage:
|
||||||
|
|
||||||
``--filters [<key=value> [<key=value> ...]]``
|
``--filters [<key=value> [<key=value> ...]]``
|
||||||
Filter
|
Filter key and value pairs.
|
||||||
key
|
Please use the ``cinder list-filters`` command to check enabled filters
|
||||||
and
|
from server.
|
||||||
value
|
Default=None.
|
||||||
pairs.
|
(Supported by API version 3.33 and later)
|
||||||
Please
|
|
||||||
use
|
**Time Comparison Filters**
|
||||||
'cinder
|
|
||||||
list-filters'
|
Beginning with API version 3.60, you can apply time comparison filtering
|
||||||
to
|
to the ``created_at`` and ``updated at`` fields. Time must be
|
||||||
check
|
expressed in ISO 8601 format: CCYY-MM-DDThh:mm:ss±hh:mm. The
|
||||||
enabled
|
±hh:mm value, if included, returns the time zone as an offset from
|
||||||
filters
|
UTC.
|
||||||
from
|
|
||||||
server,
|
To use time comparison filtering, use the standard ``key=value`` syntax
|
||||||
Default=None. (Supported by API version 3.33 and
|
for the ``--filters`` option. The allowable keys are:
|
||||||
later)
|
|
||||||
|
* ``created_at``
|
||||||
|
* ``updated_at``
|
||||||
|
|
||||||
|
The value is a *time comparison statement*, which is specified as follows:
|
||||||
|
a comparison operator, followed immediately by a colon (``:``), followed
|
||||||
|
immediately by a time expressed in ISO 8601 format. You can filter by a
|
||||||
|
*time range* by appending a comma (``,``) followed a second time
|
||||||
|
comparison statement.
|
||||||
|
|
||||||
|
Six *comparison operators* are supported:
|
||||||
|
|
||||||
|
* ``gt`` (greater than) - return results more recent than the specified
|
||||||
|
time
|
||||||
|
* ``gte`` (greater than or equal) - return any results matching the
|
||||||
|
specified time and also any more recent results
|
||||||
|
* ``eq`` (equal) - return any results matching the specified time
|
||||||
|
exactly
|
||||||
|
* ``neq`` (not equal) - return any results that do not match the
|
||||||
|
specified time
|
||||||
|
* ``lt`` (less than) - return results older than the specified time
|
||||||
|
* ``lte`` (less than or equal) - return any results matching the
|
||||||
|
specified time and also any older results
|
||||||
|
|
||||||
|
**Examples**
|
||||||
|
|
||||||
|
To filter the response to volumes created before 15 January 2020:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
cinder list --filters created_at=lt:2020-01-15T00:00:00
|
||||||
|
|
||||||
|
To filter the response to those volumes updated in February 2020:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
cinder list --filters updated_at=gte:2020-02-01T00:00:00,lt:2020-03-01T00:00:00
|
||||||
|
|
||||||
|
See the `Block Storage API v3 Reference
|
||||||
|
<https://docs.openstack.org/api-ref/block-storage/v3/index.html>`_ for
|
||||||
|
more information.
|
||||||
|
|
||||||
.. _cinder_list-extensions:
|
.. _cinder_list-extensions:
|
||||||
|
|
||||||
|
13
releasenotes/notes/support-bs-mv-3.60-a65f1919b5068d17.yaml
Normal file
13
releasenotes/notes/support-bs-mv-3.60-a65f1919b5068d17.yaml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
When communicating with the Block Storage API version 3.60 and higher,
|
||||||
|
you can apply time comparison filtering to the volume list command
|
||||||
|
on the ``created_at`` or ``updated_at`` fields. Time must be
|
||||||
|
expressed in ISO 8601 format: CCYY-MM-DDThh:mm:ss±hh:mm. The
|
||||||
|
±hh:mm value, if included, returns the time zone as an offset from
|
||||||
|
UTC.
|
||||||
|
|
||||||
|
See the `Block Storage service (cinder) command-line client
|
||||||
|
<https://docs.openstack.org/python-cinderclient/latest/cli/details.html#cinder-list-filters-usage>`_
|
||||||
|
documentation for usage details.
|
Loading…
Reference in New Issue
Block a user