Commit Graph

22 Commits

Author SHA1 Message Date
melanie witt 294e21c803 nova-manage: Add flavor scanning to migrate_to_unified_limits
This makes 'nova-manage limits migrate_to_unified_limits' scan the API
database for flavors and detect if any resource classes are missing
registered limits in Keystone.

Related to blueprint unified-limits-nova-unset-limits

Change-Id: I431176fd4d09201c551d8f82c71515cd4616cfea
2024-11-21 02:02:26 +00:00
Sean Mooney 2dff0f1c76 [S-RBAC] adapt nova-next for port's binding:profile field change
The binding:profile now requires the service user token
to be sent when modifying the binding:profile
see I5c0094ff21439fe8977cfc623789a09067e6a895

This is not currently supported intentionally by the openstack
client as humans and users of the openstack client should not
be making requests with a service token.

the nova next post hook had some addtioanl assertions where we injected
a fake key in the binding:profile just to assert it was not
deleted. This cant work anymore so it has been removed.

Related-Bug: #2052937
Change-Id: I5c155f0613107ccee63b502ae1fed7a865e67829
2024-02-22 19:39:39 +00:00
Sean Mooney 25fd9effd2 [codespell] doc,devstack and gate typos
Change-Id: I919e24a1b4dea394d35b845d44cddee9c762b268
2023-10-03 01:32:42 +01:00
melanie witt 9ec6afe893 Enable unified limits in the nova-next job
This configures the nova-next job to enable the new experimental
unified limits functionality.

This also adds basic testing for nova "global" limits in keystone in
the post-test-hook for the nova-next job. These can't be tested in
tempest because they involve modifying global quota limits that would
affect any other server tests running in parallel.

Related to blueprint unified-limits-nova

Depends-On: https://review.opendev.org/c/openstack/devstack/+/789962
Depends-On: https://review.opendev.org/c/openstack/tempest/+/790186
Depends-On: https://review.opendev.org/c/openstack/tempest/+/804311

Change-Id: I624b2684867305a9095e8964ead786c7b0c28242
2022-03-04 03:42:14 +00:00
Balazs Gibizer 5725297e12 Revert "Temp disable nova-manage placement heal_allocation testing"
This reverts commit 45e71fb9ce.

Reason for revert: https://review.opendev.org/c/openstack/nova/+/802060 is landed now, so the heal allocation tests should work again

Change-Id: I829e7466cec3f768ad13dcf793315fb029126a2e
2021-11-02 07:05:52 +00:00
Balazs Gibizer 45e71fb9ce Temp disable nova-manage placement heal_allocation testing
Since I99a49b107b1872ddf83d1d8497a26a8d728feb07 the nova-next job fails
due to I missed a dependency between that neutron patch and
https://review.opendev.org/c/openstack/nova/+/802060 . So this patch
disable testing until the nova adaptation lands.

Change-Id: Ic28ef83f5193e6c1fbac1577ef58fe0d9e45694d
2021-11-01 11:26:55 +00:00
Balazs Gibizer 528740128a Revert "Temporarily disable parts of heal port allocation test"
This reverts commit d309e3cdf5.

Depends-On: https://review.opendev.org/756892

Change-Id: I8f789cf6d5df368e9a8e12b5e10ce555d2ef9416
2020-11-18 11:36:35 +00:00
Balazs Gibizer d309e3cdf5 Temporarily disable parts of heal port allocation test
Due to bug 1894825 the nova-next job fails on master as the allocation
key cannot be deleted from the binding:profile of a neutron port. This
patch temporarily disable this test step while the bug is being fixed
and a new neutronlib is released with the fix.

Change-Id: I4dfebfb5c92dd8a5cdc779aac587e7477cd5fad6
Related-Bug: #1894825
Closes-Bug: #1898035
2020-10-02 09:39:01 +02:00
melanie witt 6ea945e3b1 Remove redundant call to get/create default security group
In the instance_create DB API method, it ensures the (legacy) default
security group gets created for the specified project_id if it does
not already exist. If the security group does not exist, it is created
in a separate transaction.

Later in the instance_create method, it reads the default security group
back that it wrote earlier (via the same ensure default security group
code). But since it was written in a separate transaction, the current
transaction will not be able to see it and will get back 0 rows. So, it
creates a duplicate default security group record if project_id=NULL
(which it will be, if running nova-manage db online_data_migrations,
which uses an anonymous RequestContext with project_id=NULL). This
succeeds despite the unique constraint on project_id because in MySQL,
unique constraints are only enforced on non-NULL values [1].

To avoid creation of a duplicate default security group for
project_id=NULL, we can use the default security group object that was
returned from the first security_group_ensure_default call earlier in
instance_create method and remove the second, redundant call.

This also breaks out the security groups setup code from a nested
method as it was causing confusion during code review and is not being
used for any particular purpose. Inspection of the original commit
where it was added in 2012 [2] did not contain any comments about the
nested method and it appeared to either be a way to organize the code
or a way to reuse the 'models' module name as a local variable name.

Closes-Bug: #1824435

[1] https://dev.mysql.com/doc/refman/8.0/en/create-index.html#create-index-unique
[2] https://review.opendev.org/#/c/8973/2/nova/db/sqlalchemy/api.py@1339

Change-Id: Idb205ab5b16bbf96965418cd544016fa9cc92de9
2019-10-14 18:54:43 +00:00
melanie witt 7c41365f19 Add regression test for bug 1824435
This adds a regression test in our post test hook. We are not able to
do a similar test in the unit or functional tests because SQLite does
not provide any isolation between transactions on the same database
connection [1] and the bug can only be reproduced with the isolation
that is present when using a real MySQL database.

Related-Bug: #1824435

[1] https://www.sqlite.org/isolation.html

Change-Id: I204361d6ff7c2323bc744878d8a9fa2d20a480b1
2019-10-14 06:03:44 +00:00
Balazs Gibizer 0044702e0d Test heal port allocations in nova-next
This patch extends the existing integration test for
heal_allocations to test the recently implemented port
allocation healing functionality.

Change-Id: I993c9661c37da012cc975ee8c04daa0eb9216744
Related-Bug: #1819923
2019-10-02 11:15:36 +02:00
melanie witt f5c2430876 Remove unused args from archive_deleted_rows calls
As of commit 1c9de9c777, we no longer
pass any args to the archive_deleted_rows function, so we can remove
the argument list from the function.

Change-Id: I73b2f716908088b137102631f9360939a1d7341a
2019-08-28 05:14:18 +00:00
melanie witt 1c9de9c777 Verify archive_deleted_rows --all-cells in post test hook
We are already running archive_deleted_rows in the gate, but we are
not verifying whether all instance records, for example, were actually
successfully removed from the databases (cell0 and cell1).

This adds the --all-cells option to our archive_deleted_rows runs and
verifies that instance records were successfully removed from all cell
databases.

It is not sufficient to check only for return code 0 because
archive_deleted_rows will still return 0 when it misses archiving
records in cell databases.

Related-Bug: #1719487

Change-Id: If133b12bf02d708c099504a88b474dce0bdb0f00
2019-08-27 06:16:24 +00:00
melanie witt f32671359e Make a failure to purge_db fail in post_test_hook.sh
Currently, the 'purge_db' call occurs before 'set -e', so if and when
the database purge fails (return non-zero) it does not cause the script
to exit with a failure.

This moves the call after 'set -e' to make the script exit with a
failure if the database purge step fails.

Closes-Bug: #1840967

Change-Id: I6ae27c4e11acafdc0bba8813f47059d084758b4e
2019-08-21 19:21:55 +00:00
Matt Riedemann cee072b962 Convert nova-next to a zuul v3 job
For the most part this should be a pretty straight-forward
port of the run.yaml. The most complicated thing is executing
the post_test_hook.sh script. For that, a new post-run playbook
and role are added.

The relative path to devstack scripts in post_test_hook.sh itself
had to drop the 'new' directory since we are no longer executing
the script through devstack-gate anymore the 'new' path does not
exist.

Change-Id: Ie3dc90862c895a8bd9bff4511a16254945f45478
2019-07-23 11:32:35 -04:00
Matt Riedemann 87365c760e Add integration testing for heal_allocations
This adds a simple scenario for the heal_allocations CLI
to the post_test_hook script run at the end of the nova-next
job. The functional testing in-tree is pretty extensive but
it's always good to have real integration testing.

Change-Id: If86e4796a9db3020d4fdb751e8bc771c6f98aa47
Related-Bug: #1819923
2019-06-29 11:03:55 +00:00
Dan Smith 0685139ed8 Make nova-next archive using --before
Change-Id: I4fbd0cb73c73ab680af3f341d6069addb57393fb
2019-06-05 07:42:23 -07:00
Dan Smith fd59fbd4d1 Make nova-manage db purge take --all-cells
This makes purge iterate over all cells if requested. This also makes our
post_test_hook.sh use the --all-cells variant with just the base config
file.

Related to blueprint purge-db

Change-Id: I7eb5ed05224838cdba18e96724162cc930f4422e
2018-03-08 09:26:49 -08:00
Dan Smith ae241cc68f Add simple db purge command
This adds a simple purge command to nova-manage. It either deletes all
shadow archived data, or data older than a date if provided.

This also adds a post-test hook to run purge after archive to validate
that it at least works on data generated by a gate run.

Related to blueprint purge-db

Change-Id: I6f87cf03d49be6bfad2c5e6f0c8accf0fab4e6ee
2018-03-07 10:35:32 -08:00
Dan Smith 64635ba18d Run post-test archive against cell1
Change-Id: I4af326fe66f0cf24ede8a8b7a8ce0e528c4f437c
2018-03-07 10:35:32 -08:00
Matt Riedemann e8e8941d25 Check for leaked server resource allocations in post_test_hook
The post_test_hook.sh runs in the nova-next CI job. The 1.0.0
version of the osc-placement plugin adds the CLIs to show consumer
resource allocations.

This adds some sanity check code to the post_test_hook.sh script
to look for any resource provider (compute nodes) that have allocations
against them, which shouldn't be the case for successful test runs
where servers are cleaned up properly.

Change-Id: I9801ad04eedf2fede24f3eb104715dcc8e20063d
2018-02-24 02:27:38 +00:00
Sean Dague 95441ef896 move gate hooks to gate/
We prevent a lot of tests from getting run on tools/ changes given
that most of that is unrelated to running any tests. By having the
gate hooks in that directory it made for somewhat odd separation of
what is test sensitive and what is not.

This moves things to the gate/ top level directory, and puts a symlink
in place to handle project-config compatibility until that can be
updated.

Change-Id: Iec9e89f0380256c1ae8df2d19c547d67bbdebd65
2017-01-04 11:05:16 +00:00