We're hitting https://github.com/tox-dev/pyproject-api/issues/101 on
the functional jobs in the gate, which are using the system tox. So
tell tox to upgrade itself to the version that gets around that issue.
Change-Id: Ifabdce8876d287c52cdec9777393fcb7c82c8fc1
Changes:
- eliminate whitespace in passenv values
- removed skipsdist=True, which in tox 4 appears to prevent os-brick
from being installed in the testenvs
- made 4.4.1 the tox minversion to catch relevant bugfixes; since
tox is not constrained, we'll actually be using the most recent
version of tox 4
- had to adjust the functional testenv's setenv, which wasn't
overriding OS_TEST_PATH like it did with tox 3
- used generative section names to define the various functional
py3 testenvs we want to support locally (namely, py38, py39,
py310, and py311)
This patch makes tox 4 the default so that we can hopefully catch
problems locally before they block the gate.
Change-Id: I01c4d44efa64650cdb46fac34a770a7aa5881baf
Add file to the reno documentation build to show release notes for
stable/2023.1.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/2023.1.
Sem-Ver: feature
Change-Id: I4d6270b745e171516de982102dbc6e5d9010da19
This patch updates keystoneauth1 minimum version. The current
used version 4.3.1 was released in 22 Feb, 2021 which is ~2 years
old.
Updating the version to 5.0.0 released in 15 July, 2022 and
upper-constraints have 5.1.1 released on 3 Jan, 2023.
Change-Id: If8a958345ae62006b8e6221a60ff3217e31823ac
Use the classic cinderclient tox.ini that has worked so well in the
past with tox 3; only change is to add the tox<4 requires statement.
Also adjust .zuul.yaml to express our preference for tox<4 in the
case that zuul has to install tox.
Change-Id: Ib1f55f9431033ad043507c6f751ee9bfe57d5cbb
In Python3.11, global flags must be placed right at the start of a
regular expression.
The following regex:
r'.*?(?m)^Lists all volumes.',
must become:
r'(?m).*?^Lists all volumes.',
However, since we are using re.MULTILINE, we actually do not need to use
a global flag.
This commit fixes the following tests in Python3.11:
- cinderclient.tests.unit.test_shell.ShellTest.test_help_arg_no_subcommand
- cinderclient.tests.unit.test_shell.ShellTest.test_help
- cinderclient.tests.unit.test_shell.ShellTest.test_help_on_subcommand
- cinderclient.tests.unit.test_shell.ShellTest.test_help_on_subcommand_mv
Closes-Bug: #1983047
Change-Id: If20abef109ddd7107c83b5886beb666a6550a640
Move more code to shell_utils that is only used
for shell operations.
The benefit of this is that the cinderclient library
becomes lighter-weight, because users of the lib
no longer have to import prettytable and extra code.
Change-Id: I7bf6bd91ee5746d1ad4bd4504f3a056d03ae86a9
When a CLI user specifies --os-volume api-version 3.66, the shell
will execute the appropriate shell code, but if the server only
supports < 3.66, the client is automatically downgraded and correctly
uses the pre-3.66 SnapshotManager.create() method.
In that case, the 'force' parameter, which is technically not allowed
in mv 3.66 (but which silently accepts a True value for backward
compatibility), will have a value of None, which the pre-3.66 code
happily passes to cinder as '"force": null' in the request body, and
which then fails the Block Storage API request-schema check.
Handle this situation by detecting a None 'force' value and setting
it to its pre-3.66 default value of False.
Change-Id: I3ad8283c2a9aaac58c8d2b50fa7ac86b617e5dd3
Closes-bug: #1995883
It is no longer supported by jammy and lead us to the following errors with the announce-release job.
```
No package matching 'python-dev' is available
```
Change-Id: I12a31b044d5f88a26984d13adff08dd9c778fe0c
Add file to the reno documentation build to show release notes for
stable/zed.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/zed.
Sem-Ver: feature
Change-Id: I593949dae5dd2faf94a639ced8feca80323329f5
Bump MAX_VERSION to 3.70 to support the following:
- 3.69 - Allow null value for shared_targets
- 3.70 - Support encrypted volume transfers
Implements: bp/transfer-encrypted-volume
Depends-On: I459f06504e90025c9c0b539981d3d56a2a9394c7
Change-Id: I11072d6d8a185037c7f4cdd52c45933b0cccaf05
In Python3.11, the following code crashes:
$ cat test.py
import argparse
parser = argparse.ArgumentParser(description='Short sample app')
subparsers = parser.add_subparsers()
subparsers.add_parser('foo')
subparsers.add_parser('foo')
$ python3.11 test.py
Traceback (most recent call last):
File "/tmp/arg.py", line 6, in <module>
subparsers.add_parser('foo')
File "/usr/lib/python3.11/argparse.py", line 1197, in add_parser
raise ArgumentError(self, _('conflicting subparser: %s') % name)
argparse.ArgumentError: argument {foo}: conflicting subparser: foo
It is now forbidden to use add_parser() multiple times with the same
arguments, which is exactly what we do in the following tests:
- cinderclient.tests.unit.test_shell.TestLoadVersionedActions.test_load_versioned_actions
- cinderclient.tests.unit.test_shell.TestLoadVersionedActions.test_load_actions_with_versioned_args
In order to fix the tests failures, we make sure to reset the parser and
subparsers before calling add_parser().
While not strictly necessary, we split those tests into two functions,
for readability purposes.
Closes-Bug: #1983054
Change-Id: I2d4cb81a394f3c10e5f01945d894746a904fb5df
Commit 3502a5591a654ae57741c6738994ffa9d8457696 broke extension loading
from pythonpath. Incompatible on python3.6.8, python3.8, python3.9. Put
it back.
Closes-Bug: #1980184
Change-Id: I5b67c93e3c789252d9bd35ee69dddbe1b556dec4
In Zed cycle, we have dropped the python 3.6/3.7[1] testing
and its support. Moving the py36 job to py38 based but to run on
ubuntu focal as c8s does not seems to have py38.
Also updating the python classifier also to reflect the same.
[1] https://governance.openstack.org/tc/reference/runtimes/zed.html
Change-Id: Ic26a360d2bb09fa6622d1acaa5021c5afbc70240
Add file to the reno documentation build to show release notes for
stable/yoga.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/yoga.
Sem-Ver: feature
Change-Id: I96aa28bd09724d3f14935e1dbf13f7e791261ccb
A new reimage API will be introduced on cinder API side with
change in depends on. This patch provides the CLI support for
the same by adding a reimage command.
Implements: blueprint add-volume-re-image-api
Change-Id: I37c254d4caf2f416e456ff6a78b5a4df4e08a176
We don't need to track this in test-reqs for
unit tests, etc. since it's only used for
functional tests.
Change-Id: I2e9a55d0f4530e9f3fd0f6c1c48cf5ee19c841da
When we run "cinder help" we can see that there is a --collect-timing
option:
--collect-timing Collect per-API call timing information.
This is a keystone session option that we are not currently acting on
from a user perspective.
This patch adds support for this option, and we'll be able to see the
timing in a similar way as we do with OSC:
$ cinder --collect-timing api-version
+------+---------+---------+-------------+
| ID | Status | Version | Min_version |
+------+---------+---------+-------------+
| v3.0 | CURRENT | 3.66 | 3.0 |
+------+---------+---------+-------------+
+--------+------------------------------------------------+----------+
| method | url | seconds |
+--------+------------------------------------------------+----------+
| GET | http://192.168.121.243/identity | 0.003591 |
| POST | http://192.168.121.243/identity/v3/auth/tokens | 0.016649 |
| GET | http://192.168.121.243/volume/ | 0.004012 |
| GET | http://192.168.121.243/volume/ | 0.004543 |
+--------+------------------------------------------------+----------+
The patch formats the "elapsed" time attribute into seconds and renames
the column to "seconds" to make it more user friendly similar to OSC.
If we didn't it would look like 0:00:00.003744
Closes-Bug: #1960337
Change-Id: Ia6b31794bf60a351007cc4476a76b9bcb76bf378
Python 2 support was removed during Ussuri cycle. This change adds
the classifier to clearly state that only Python 3 is supported.
This allows us to keep the setup.cfg file in cinder and the one in
cinderclient more consistent.
Change-Id: I5ad342f2b60348a0ba79c95415fdf1ae39714558
This patch adds information about whichever default type is set for
API will be used during volume creation if we don't provide a
volume type in volume create command.
This patch also improves the help text of `cinder type-default` command.
Change-Id: I0c437b2c4f02c12d17c04719cbeff8521647ae15
It turns out that you can't use the devstack post_config phase
for this because it happens too late. The quota settings must
be made to cinder.conf before cinder-manage db_sync is called
where they're used to set the max limit for the tables used by
the db quotas driver.
Depends-on: https://review.opendev.org/c/openstack/devstack/+/803521
Change-Id: I3bb7d9f9bede063573b24fb5a33a364c53d52434
Add file to the reno documentation build to show release notes for
stable/xena.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/xena.
Sem-Ver: feature
Change-Id: I1a2ed0695125b5d0733299f3efd263fe61868ee7
Block Storage API mv 3.66 enables snapshots of in-use volumes
without requiring a 'force' flag. For backward compatibility,
the API silently accepts force=true, even though the 'force' flag
is considered invalid for that call. That behavior is replicated
in the client, where --force with a true value is silently accepted.
The --force option is not advertised in the shell and an option
value that doesn't evaluate to true raises an UnsupportedAttribute
error. Similar behavior from the v3 Snapshot class, except it
raises a ValueError under similar circumstances.
Change-Id: I7408d0e3a5ed7f4cbcaf65cf3434ad60aaed511d
Cinder ignores both W503 and W504, and it's really annoying that
cinderclient is not consistent with cinder about this.
Change-Id: Iab7ff2bfcb61fd5d8a7ee25e245cebe7a50c46b1