This requires fixes found in cliff 3.5.0 [1] and osc-lib 2.3.0 [2]. With
these fixes in place, we can remove the icky, still broken
'assertItemEqual' and 'assertListItemEqual' helpers.
[1] https://review.opendev.org/761421
[2] https://review.opendev.org/761394
Change-Id: Id6c26b37c3c7d5ec6761361abca57f9219b76838
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This had gotten pretty out-of-date and included a whole load of OSC
plugins which I don't think we need to track from here. This updated
version is simply generated via 'pip freeze' using pip >= 20.3, which
includes the new dependency resolver.
Change-Id: I4fb0b69dbd538f313c6fef97126c22078904c69f
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
pip 20.3 finally includes a proper dependency resolver. Its use is
causing the following error messages on the lower-constraints job:
ERROR: Cannot install ... because these package versions have
conflicting dependencies.
The conflict is caused by:
bandit 1.1.0 depends on PyYAML>=3.1.0
cliff 3.4.0 depends on PyYAML>=3.12
openstacksdk 0.52.0 depends on PyYAML>=3.13
Bump our lower constraint for PyYAML to resolve this issue. With that
resolved, we see a new issue:
ERROR: Could not find a version that satisfies the requirement
cryptography>=2.7 (from openstacksdk)
ERROR: No matching distribution found for cryptography>=2.7
This is less self-explanatory but looking at the lower-constraints for
openstacksdk 0.52.0 shows a dependency on cryptography 2.7 [1], meaning
we need to bump this also.
Next up, flake8-import-order seems to cause the dependency resolver to
go nuts, eventually ending with the following error message in a Python
3.6 environment:
Using cached enum34-1.1.2.zip (49 kB)
ERROR: Command errored out with exit status 1:
command: ...
cwd: ...
Complete output (9 lines):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File ".../lib/python3.6/site-packages/setuptools/__init__.py", line 7, in <module>
import setuptools.distutils_patch # noqa: F401
File ".../lib/python3.6/site-packages/setuptools/distutils_patch.py", line 9, in <module>
import re
File "/usr/lib64/python3.6/re.py", line 142, in <module>
class RegexFlag(enum.IntFlag):
AttributeError: module 'enum' has no attribute 'IntFlag'
----------------------------------------
A quick Google suggests this is because the enum34 package is not
complete [2]. We shouldn't even be using it since our base virtualenv
should at least use Python 3.6, but I guess some dependency doesn't
properly restrict the dependency to <= Python 3.4. This is moved from
'test-requirements.txt' to 'tox.ini' since we don't need to use our
constraints machinery for linters.
Finally, the versions of bandit and hacking that pip is bringing in both
requires in a newer version of babel, which in turn requires a new
version of pytz.
Collecting hacking>=2.0.0
...
ERROR: Cannot install oslo.i18n because these package versions have
conflicting dependencies.
The conflict is caused by:
babel 2.9.0 depends on pytz>=2015.7
babel 2.8.1 depends on pytz>=2015.7
babel 2.8.0 depends on pytz>=2015.7
babel 2.7.0 depends on pytz>=2015.7
Seeing as we shouldn't be tracking bandit in
lower-constraints, I'm not sure why we're want to bump these
dependencies for just that. As above, we move these dependencies out of
'test-requirements' and into 'tox.ini' since we can do that for linters.
[1] https://opendev.org/openstack/openstacksdk/src/tag/0.52.0/requirements.txt#L19
[2] https://github.com/iterative/dvc/issues/1995#issuecomment-491889669
Change-Id: I8ec738fbcabc8d8553db79a876e5592576cd18fa
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Use consistent help strings and error messages.
Change-Id: I42647a6b7e67ce4b8dd5f826e20802ade691c266
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
The documentation presents the parameters necessary
to authenticate via federation (using password) and do
a brief description of each parameter used in the process.
Change-Id: Iae3b6d0b56ebd2bbbb94f9f3637b5086e75559a7
Continue journey towards having OSC consuming SDK for nova part.
Depends-On: https://review.opendev.org/#/c/762131/
Change-Id: Id16e6c47aa93f02f15f49e1f59f73fecaa3e3b80
Let's switch flavors from novaclient or direct API requests onto using
SDK. Microversion agreement comes out of the box.
SDK normalizes property names, while OSC uses server side names. In
order not to break OSC users continue using server-side names.
Depends-On: https://review.opendev.org/#/c/762989/
Change-Id: I62b2ed8488ee4ac9c42051311bcfb455506ddd90
The autoprogram-cliff directive has a habit of producing text like
This command is provided by the $me plugin.
which doesn't make any sense.
Cliff recently added a config option whereby consumers can let it know
who $me is so it can suppress that message where appropriate (while
still producing it for $plugin, as intended).
Depends-On: https://review.opendev.org/692464
Change-Id: I0d580fb1d34dd56740eb6d976caa795e0e951047
Add optional parameters "NODE" and "HOST" in the help text of the
server create comand for --availability-zone.
Co-Authored-By: tianhui <tianhui@awcloud.com>
Change-Id: I4faea8a3d3aecb21ec535e55c238c71745fc68cb
Task: 24274
Story: 2003313
This new query parameter will allow to send a query to the Neutron
server filtering only by those parameters needed by the list
command: ID, name, MAC address, fixed IPs and status.
When using input parameter "long", security groups IDs, device owner
and tags will be added to the fields filter.
With 4500 ports, those are the execution times for the command
"openstack port list" (average values in a development environment):
Neutron API (seconds) CLI (seconds)
Without filter: 3.05 10.15
With filter: 2.76 8.19
Depends-On: https://review.opendev.org/#/c/754113/
Change-Id: I1cccf0bc3533f8085e8dd61bf2fbe78c49b74b31
Closes-Bug: #1897100
We can't remove these commands for a long time, given OSC's intention to
support multiple releases of OpenStack, but we can at least indicate to
users that this thing might not work anymore.
Change-Id: I9093cc1197a0287984d83e2020fba100d0c958b3
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
The 'os-agents' API was recently removed from nova [1]. Remove the
functional tests, since they will always fail going forward but will
continue to run on older stable branches.
Also Squeeze https://review.opendev.org/#/c/762559/ inside, since those
2 are simultaneously blocking gate
[1] https://review.opendev.org/#/c/749309/
Change-Id: I0bf7d4c0ba2a9d4637db0d209d8d52163d772f12
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
The 'os-migrations' API accepts 'instance_uuid' and 'migration_type'
query string parameters, not 'server' and 'type'. For the former, as the
name would suggest, the value should be a server UUID, not a name.
In addition, this is a list command and therefore should subclass the
'Lister' base class.
Change-Id: I736f5575156fc04d7ada7783a1865ab3b438396f
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Let's continue our journey and start using SDK for the keypair
operations
Depends-On: https://review.opendev.org/#/c/761883/
Change-Id: Id411e70b8e1a79c0e88a0e22be7ff37e5c30fcda
Change I1d1ac1ac46f49f64794ffc8631e166935537966c introduced the 'quota
set --force' parameter to force set nova quotas. As part of that fix, we
introduced a functional test, 'QuotaTests.test_quota_set_force' that
works by attempting to set the 'limit' of the quota for instances to the
current usage ('is_use') minus one.
This test is flawed. It doesn't create any instances so when it fires by
itself, it will always set the 'limit' to 0. When it fires at the same
time as other tests (remember, we run tests in parallel), notably tests
that rely on booting instances, it can cause other tests to fail with
the following error:
Quota exceeded for instances: Requested 1, but already used 0 of 0
instances (HTTP 403)
We could attempt to work around this by creating a new project and using
that project to fiddle with quotas. That's a lot of work though, and the
returns are questionable: the 'quota set' command is an admin-only
command by default and the '--force' parameter should almost never be
used. Simply remove this test.
Change-Id: Ic07ff6f4a7c1c27852c892eb906bb144aae91788
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Story: #2008327
Task: #41225
We don't support it anymore. This is just noise now.
Change-Id: I3640e7d8e520db69f83f95e9c7759279f7c15008
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Added ``-c project_id | user_id | created_at`` to ``openstack server list``
command to get these columns as an output.
Change-Id: I18991adf899c7b72c98bb89871bf0715d35943f0
Story: 2007925
This change adds a new 'openstack server evacuate' command to provide
parity with the 'nova evacuate' command. The term "evacuate" is
notoriously poor, in that it implies the instance is moved rather than
recreated, but it is retained since people are familiar with it now.
Change-Id: I1e32ca51036c501862d8e89b3144a9695d98a06f
This patch adds functionality of specific the user id when create,
delete, show and list keypairs.
Change-Id: Ib826f1f4f5a73d1875ba0f02e124b3222c4d05ed
Co-Authored-By: tianhui <tianhui@awcloud.com>
This rather complex function has had stuff tacked on over the years.
Help make working with it a bit easier through liberal application of
whitespace and some nicer indentation. Some option help text is improved
based on changes to modern nova.
Change-Id: I8154dd395dd904c3bcd180a7d0f9037b7e0be64f
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>