Commit Graph

59419 Commits

Author SHA1 Message Date
Zuul bdaeadeb64 Merge "Revert "Revert resize: wait for events according to hybrid plug"" 2022-02-04 15:23:28 +00:00
Zuul f5427576c4 Merge "Migrate RequestSpec.numa_topology to use pcpuset" 2022-02-04 14:18:09 +00:00
Zuul 6fdd623288 Merge "Reproduce bug 1952941" 2022-02-04 12:42:47 +00:00
Zuul 37bd469199 Merge "Add 'hw:vif_multiqueue_enabled' flavor extra spec" 2022-02-03 18:51:08 +00:00
Zuul 26ce7b30b2 Merge "docs: Add new architecture guide" 2022-02-03 18:28:02 +00:00
Zuul b0633ac49b Merge "docs: Add a new cells v2 document" 2022-02-02 17:01:13 +00:00
Zuul e8feef747f Merge "Deprecate the powervm driver" 2022-01-31 19:35:25 +00:00
Zuul 55566b90aa Merge "Add nova-ovs-hybrid-plug job" 2022-01-31 18:49:51 +00:00
Stephen Finucane 9fe4654273 api: Reject duplicate port IDs in server create
Specifying a duplicate port ID is currently "allowed" but results in an
integrity error when nova attempts to create a duplicate
'VirtualInterface' entry. Start rejecting these requests by checking for
duplicate IDs and rejecting offending requests. This is arguably an API
change because there isn't a HTTP 5xx error (server create is an async
operation), however, users shouldn't have to opt in to non-broken
behavior and the underlying instance was never actually created
previously, meaning automation that relied on this "feature" was always
going to fail in a later step. We're also silently failing to do what
the user asked (per flow chart at [1]).

[1] https://docs.openstack.org/nova/latest/contributor/microversions.html#when-do-i-need-a-new-microversion

Change-Id: Ie90fb83662dd06e7188f042fc6340596f93c5ef9
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Closes-Bug: #1821088
2022-01-31 13:13:18 +00:00
Artom Lifshitz 0b0f40d1b3 Revert "Revert resize: wait for events according to hybrid plug"
This reverts commit 7a7a223602.

That commit was added because - tl'dr - upon revert resize, Neutron
with the OVS backend and the iptables security group driver would send
us the network-vif-plugged event as soon as we updated the port
binding.

That behaviour has changed with commit 66c7f00e1d. With that commit,
we started unplugging the vifs on the source compute host when doing a
resize. When reverting the resize, the vifs had to be re-plugged again,
regarldess of the networking backend in use. This renders commit
7a7a223602. pointless, and it can be
reverted.

Conflicts - most have to do with context around this commit's code:

nova/compute/manager.py

    a2984b647a added provider_mappings to
    _finish_revert_resize_network_migrate_finish()'s signature

    750aef54b1 started using
    _finish_revert_resize_network_migrate_finish() in
    _finish_revert_snapshot_based_resize_at_source()

nova/network/model.py

    8b33ac0644 added get_live_migration_plug_time_events() and
    has_live_migration_plug_time_event()

    7da94440db added has_port_with_allocation()

nova/objects/migration.py

    f203da3838 added is_resize() and is_live_migration()

nova/tests/unit/compute/test_compute.py

    a0e60feb3e added request_spec to the test

nova/tests/unit/compute/test_compute_mgr.py

    be278006a5 added unit tests below ours

nova/tests/unit/network/test_network_info.py

    7da94440db (again) added tests for has_port_with_allocation()

nova/tests/unit/virt/libvirt/test_driver.py and
nova/virt/libvirt/driver.py are different in that attempting to
identify individual conflicts is a pointless exercise, as so much has
changed (mdev, vtmp, the recent wait for events during hard reboot
workaround config option, etc). They can be treated as
manual removal of any code that had to do with the bind-time events
logic (though guided by the conflict markers in git).

TODO(artom) There was a follow up commit,
78a08d44ea, that added the migration
parameter to finish_revert_migration(). This is no longer needed, as
the migration was only used to obtain plug-time events. We'll have to
undo that as well.

Closes-bug: 1952003
Change-Id: I3cb39a9ec2c260f422b3c48122b9db512cdd799b
2022-01-31 13:10:59 +00:00
Artom Lifshitz ded6168ad7 Add nova-ovs-hybrid-plug job
We have a gap in our testing of the exernal events interaction between
Nova and Neutron. The nova-next job tests with the OVS network
backend, and Neutron has jobs that test the OVN network backend, but
nothing tests OVS + the iptables security group firewall driver, aka
"hybrid plug". Add a job to test that.

Related-bug: 1952003
Change-Id: Ie42eaa2a39ef097b0eb69b8863bb342bae007fff
2022-01-31 13:08:50 +00:00
Stephen Finucane 452913a284 Remove Python 2-specific imports
Change-Id: I64810898cd9126cf619df0b8f60e6fa01958943e
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2022-01-28 12:27:06 +00:00
Stephen Finucane 0396bba4cc requirements: Remove os-xenapi
We no longer have a Xen driver. This is an unnecessary dependency.

Change-Id: Ic298fa9ac4a8935ce4e0dc17d8842d399d4eb808
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2022-01-28 12:26:53 +00:00
Zuul 125a8530cc Merge "libvirt: Create qcow2 disks with the correct size without extending" 2022-01-25 15:12:32 +00:00
Zuul f87a63a46e Merge "Add check job for FIPS" 2022-01-25 01:34:55 +00:00
Zuul 555d859be7 Merge "block_device: Ignore VolumeAttachmentNotFound during detach" 2022-01-25 00:48:05 +00:00
Zuul b9b1b4fa65 Merge "Add service version check workaround for FFU" 2022-01-25 00:37:20 +00:00
Dan Smith 7d2e481589 Add service version check workaround for FFU
We recently added a hard failure to nova service startup for the case
where computes were more than one version old (as indicated by their
service record). This helps to prevent starting up new control
services when a very old compute is still running. However, during an
FFU, control services that have skipped multiple versions will be
started and find the older compute records (which could not be updated
yet due to their reliance on the control services being up) and refuse
to start. This creates a cross-dependency which is not resolvable
without hacking the database.

This patch adds a workaround flag to allow turning that hard fail into
a warning to proceed past the issue. This less-than-ideal solution
is simple and backportable, but perhaps a better solution can be
implemented for the future.

Related-Bug: #1958883

Change-Id: Iddbc9b2a13f19cea9a996aeadfe891f4ef3b0264
2022-01-24 08:45:58 -08:00
Zuul 96731a499a Merge "conf: Allow cinderclient and os_brick to independently log at DEBUG" 2022-01-23 03:58:10 +00:00
Zuul ae779740c5 Merge "nova-next: Deploy noVNC from source instead of packages" 2022-01-22 02:18:09 +00:00
Zuul 5ad0d0cdbe Merge "Test aborting queued live migration" 2022-01-21 21:08:48 +00:00
Zuul 34f841333b Merge "Update centos 8 py36 functional job nodeset to centos stream 8" 2022-01-21 21:08:39 +00:00
Zuul 52b974acb7 Merge "db: Remove unnecessary warning filters" 2022-01-21 13:44:48 +00:00
Zuul 5c7fa6d139 Merge "db: Remove use of 'bind' arguments" 2022-01-21 13:44:40 +00:00
Zuul bb2984b9c7 Merge "[doc] propose Review-Priority label for contribs" 2022-01-20 17:05:49 +00:00
Zuul 7bb2172317 Merge "Remove deprecated opts from VNC conf" 2022-01-18 22:45:59 +00:00
Zuul 59c3a46887 Merge "libvirt: Add announce-self post live-migration workaround" 2022-01-18 20:03:47 +00:00
Ade Lee 82c91e8cd8 Add check job for FIPS
The job makes sure that integration tests pass when the nodes are
set to be in fips mode.

Depends-On: https://review.opendev.org/c/openstack/tempest/+/822560
Change-Id: Iae13b0ffcded76ef1712fdbad3fbff3dc774336c
2022-01-18 18:46:52 +00:00
Zuul 63be4c6fc3 Merge "Move ReaderWriterLock to the test tree" 2022-01-18 06:26:58 +00:00
Zuul c2e50299f2 Merge "functional: Add reproducer for #1907775" 2022-01-17 18:17:21 +00:00
Zuul 58fda2ead5 Merge "libvirt: Ensure all volume drivers log the instance whenever possible" 2022-01-17 17:39:15 +00:00
Zuul e6f9d1f432 Merge "ensure samples folder exists for microversion" 2022-01-17 16:15:52 +00:00
Balazs Gibizer a341851f15 Move ReaderWriterLock to the test tree
The commit I168fffac8002f274a905cfd53ac4f6c9abe18803 added a wrapper
around fasteners.ReaderWriterLock to fix up an issue with eventlet. But
the wrapper was added to nova.utils module that is use not only by the
nova tests but also the nova production code. This made the fixture
library a dependency of the nova production code. While the current
ReaderWriterLock usage only limited to the nova test sub tree. The
I712f88fc1b6053fe6d1f13e708f3bd8874452a8f commit fix the issue of not
having fixtures in the nova requirements.txt. However I think a better
fix is to move the wrapper to the test subtree instead. This patch does
that and restores the state of the requirements.txt

Change-Id: I6903ce53b9b91325f7268cf2ebd02e4488579560
Related-Bug: #1958075
2022-01-17 13:29:35 +01:00
Zuul 1ddb8f83ad Merge "Add fixtures to requirements" 2022-01-17 11:14:52 +00:00
Zuul 3d411cad60 Merge "Close Glance image if downloading failed." 2022-01-17 10:31:21 +00:00
Zuul 24e02f1a9c Merge "Fill the AcceleratorRequestBindingFailed exception msg info" 2022-01-17 04:25:51 +00:00
Takashi Kajinami 33bc5c09f5 Add fixtures to requirements
The commit 887c445a7a made the nova.utils
module dependent on the fixtures library but the change missed updating
requirements and the fixtures library is not installed automatically.

This change migrates the fixtures library from test-requirements.txt to
requirements.txt so that the library is installed without test codes.

Closes-Bug: #1958075
Change-Id: I712f88fc1b6053fe6d1f13e708f3bd8874452a8f
2022-01-16 23:48:51 +09:00
Zuul d5b6412ef5 Merge "api-ref: Adjust BFV rescue non-support note." 2022-01-14 22:28:02 +00:00
Zuul a17b67ab2a Merge "Update Interop doc" 2022-01-14 22:27:56 +00:00
Zuul 5182137367 Merge "Make API fixture pass roles" 2022-01-14 21:02:28 +00:00
Zuul ca1efb52f1 Merge "Add regression test for bug #1937084" 2022-01-14 18:34:43 +00:00
Iago Estrela cec9e7f1f1 Remove deprecated opts from VNC conf
This change aims to remove the deprecated vncserver_listen and
vnserver_proxyclient_address opts from vnc conf.

Story: 2009783
Relates-To: https://review.opendev.org/c/starlingx/openstack-armada-app/+/824467

Signed-off-by: Iago Estrela <IagoFilipe.EstrelaBarros@windriver.com>
Change-Id: I9a6f26d16c74b0d5f38e16ba1e483eef0b578c21
2022-01-13 19:22:29 +00:00
Ghanshyam Mann b88ca72c71 Update centos 8 py36 functional job nodeset to centos stream 8
centOS 8 image and nodeset is planned to be remove as centOS is
EOLing soon.
- http://lists.openstack.org/pipermail/openstack-discuss/2022-January/026621.html

Devstack is also removing devstack-single-node-centos-8 nodeset
which is used in nova py36 functional job
- https://review.opendev.org/q/I36751569d92fbc5084b8308d423a75318ae7d406

This commit updates the nodeset in nove jobs to
devstack-single-node-centos-8-stream which will run functional
test on py36 env.

Change-Id: I50ced59e3aa86e629702f0fece2c4cb990ebb1ed
2022-01-13 12:06:17 -06:00
Zuul ea3945f71c Merge "Add wrapper for oslo.concurrency lockutils.ReaderWriterLock()" 2022-01-12 15:56:17 +00:00
Zuul 8c714c76ae Merge "Enable min pps tempest testing in nova-next" 2022-01-12 10:38:44 +00:00
melanie witt 887c445a7a Add wrapper for oslo.concurrency lockutils.ReaderWriterLock()
This is a follow up change to I168fffac8002f274a905cfd53ac4f6c9abe18803
which added a hackaround to enable our tests to pass with
fasteners>=0.15 which was upgraded recently as part of a
openstack/requirements update.

The ReaderWriterLock from fasteners (and thus lockutils) cannot work
correctly with eventlet patched code, so this adds a wrapper containing
the aforementioned hackaround along with a hacking check to do our best
to ensure that future use of ReaderWriterLock will be through the
wrapper.

Change-Id: Ia7bcb40a21a804c7bc6b74f501d95ce2a88b09b5
2022-01-12 04:15:26 +00:00
Zuul f2b364df64 Merge "Fill the exception msg" 2022-01-11 17:34:06 +00:00
Zuul f37a368e4e Merge "Make the CellDatabases fixture work with fasteners >= 0.15" 2022-01-11 17:19:44 +00:00
Alexey Stupnikov 3e7b9b69e6 Test aborting queued live migration
This patch adds a regression test which asserts that if a live migration
is aborted while it's 'queued', the instance's status is never reverted
back to ACTIVE, and instance remains in MIGRATING state.

There is simple idea behind implemented LiveMigrationQueuedAbortTest:
we start two instances on the same compute and try to migrate
them simultaneously when max_concurrent_live_migrations is set to 1
and nova.tests.fixtures.libvirt.Domain.migrateToURI3 is locked.
As a result, we get two live migrations stuck in 'migrating' and
'queued' states and we can issue API call to abort the second one.

Lock is removed and first instance is live migrated after second
instance's live migration is aborted.

Co-Authored-By: Alex Stupnikov <aleksey.stupnikov@gmail.com>
Partial-Bug: #1949808
Change-Id: I67d41a8e439b1ff3c5983ee17823616b80698639
2022-01-10 14:36:35 +00:00
Tobias Urdin d44e24efe2 libvirt: Add announce-self post live-migration workaround
This patch adds a workaround that can be enabled
to send an announce_self QEMU monitor command
post live-migration to send out RARP frames
that was lost due to port binding or flows not
being installed.

Please note that this makes marks the domain
in libvirt as tainted.

See previous information about this issue in
the [1] bug.

[1] https://bugs.launchpad.net/nova/+bug/1815989

Change-Id: I7a6a6fe5f5b23e76948b59a85ca9be075a1c2d6d
Related-Bug: 1815989
2022-01-10 08:41:31 +00:00