summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Add debug log for scheduler weight calculation" into stable/xenaxena-em24.2.1Zuul2023-04-061-4/+36
|\
| * Add debug log for scheduler weight calculationBalazs Gibizer2023-04-041-4/+36
| | | | | | | | | | | | | | | | | | | | We have all the weighers enabled by default and each can have its own multiplier making the final compute node order calculation pretty complex. This patch adds some debug logging that helps understanding how the final ordering was reached. Change-Id: I7606d6eb3e08548c1df9dc245ab39cced7de1fb5 (cherry picked from commit 154ab7b2f9ad80fe432d2c036d5e8c4ee171897b)
* | Merge "db: Resolve additional SAWarning warnings" into stable/xenaZuul2023-04-063-4/+25
|\ \
| * | db: Resolve additional SAWarning warningsStephen Finucane2023-02-163-4/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Resolving the following SAWarning warnings: Coercing Subquery object into a select() for use in IN(); please pass a select() construct explicitly SELECT statement has a cartesian product between FROM element(s) "foo" and FROM element "bar". Apply join condition(s) between each element to resolve. While the first of these was a trivial fix, the second one is a little more involved. It was caused by attempting to build a query across tables that had no relationship as part of our archive logic. For example, consider the following queries, generated early in '_get_fk_stmts': SELECT instances.uuid FROM instances, security_group_instance_association WHERE security_group_instance_association.instance_uuid = instances.uuid AND instances.id IN (__[POSTCOMPILE_id_1]) SELECT security_groups.id FROM security_groups, security_group_instance_association, instances WHERE security_group_instance_association.security_group_id = security_groups.id AND instances.id IN (__[POSTCOMPILE_id_1]) While the first of these is fine, the second is clearly wrong: why are we filtering on a field that is of no relevance to our join? These were generated because we were attempting to archive one or more instances (in this case, the instance with id=1) and needed to find related tables to archive at the same time. A related table is any table that references our "source" table - 'instances' here - by way of a foreign key. For each of *these* tables, we then lookup each foreign key and join back to the source table, filtering by matching entries in the source table. The issue here is that we're looking up every foreign key. What we actually want to do is lookup only the foreign keys that point back to our source table. This flaw is why we were generating the second SELECT above: the 'security_group_instance_association' has two foreign keys, one pointing to our 'instances' table but also another pointing to the 'security_groups' table. We want the first but not the second. Resolve this by checking if the table that each foreign key points to is actually the source table and simply skip if not. With this issue resolved, we can enable errors on SAWarning warnings in general without any filters. Conflicts: nova/tests/fixtures/nova.py NOTE(melwitt): The conflict is because change I63f57980e01f472a25821790610f0836f1882a7f (tests: Restore - don't reset - warning filters) is not in Xena. Change-Id: I63208c7bd5f9f4c3d5e4a40bd0f6253d0f042a37 Signed-off-by: Stephen Finucane <sfinucan@redhat.com> (cherry picked from commit 8142b9dc47b7096ab9d8180f0b5b1e52d513e2dc) (cherry picked from commit ce2cc54bfe236554badb9f6bf53a958417e5525d)
* | | Merge "Handle mdev devices in libvirt 7.7+" into stable/xenaZuul2023-04-056-27/+97
|\ \ \
| * | | Handle mdev devices in libvirt 7.7+Billy Olsen2023-04-056-27/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Libvirt 7.7 changed the mdev device naming to include the parent PCI device when listing node devices. The domain, however, will still only see the UUID and not see the parent PCI device. Changing the parsing to simply drop the PCI identifier is not enough as the device cannot be found when attempting to lookup the new ID. Modify the Libvirt Driver's _get_mediated_device_information to tolerate different formats of the mdev name. This first uses the legacy behavior by trying to lookup the device name that is passed in (typically mdev_<uuid> format) and if that is not found, iterates the list of mdev node devices until the right UUID is found and selects that one. Note that the lookup of the mdev device by UUID are needed in order to keep the ability to recreate assigned mediated devices on a reboot of the compute node. Additionally, the libvirt utils parsing method mdev_name2uuid, has been updated to tolerate both mdev_<uuid> and mdev_<uuid>_<pciid> formats. Closes-Bug: 1951656 Change-Id: Ifed0fa16053228990a6a8df8d4c666521db7e329 (cherry picked from commit a28b907c4f0dbba6e141a8fbea807e6cb0438977) (cherry picked from commit 98d8c9eaa3c415cc234193e6a9115db887751363) (cherry picked from commit 28053917200e3e242148672efda0e1a2b043dc48)
* | | | Merge "Reproducer for bug 1951656" into stable/xenaZuul2023-04-051-0/+83
|\ \ \ \ | |/ / / | | | / | |_|/ |/| |
| * | Reproducer for bug 1951656Sylvain Bauza2023-04-051-0/+83
| |/ | | | | | | | | | | | | | | | | | | Due to a new mdev naming, we can't parse it. Change-Id: I0f785178b132dfef668829558dea9f7e674abadb Related-Bug: #1951656 (cherry picked from commit 185201974775bab966f4e5ca3bbdc31b8269fa4c) (cherry picked from commit 857df72d3166a8f7e8a8cdfeabb62ad6ead46565) (cherry picked from commit 71aa17a487136be5e938192857721d9119222811)
* | Merge "Accept both 1 and Y as AMD SEV KVM kernel param value" into stable/xenaZuul2023-03-302-15/+25
|\ \ | |/ |/|
| * Accept both 1 and Y as AMD SEV KVM kernel param valueBalazs Gibizer2022-05-302-15/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The libvirt virt dirver checks the AMD KVM kernel module parameter SEV to see if that feature is enabled. However it seems that the /sys/module/kvm_amd/parameters/sev file can either contain "1\n" or "Y\n" to indicate that the feature is enabled. Nova only checked for "1\n" so far making the feature disabled on compute nodes with "Y\n" value. Now the logic is extended to accept both. Closes-Bug: #1975686 Change-Id: I737e1d73242430b6756178eb0bf9bd6ec5c94160 (cherry picked from commit ab51a5dd25b8d4c66562148b43b1022eb5ceed7e) (cherry picked from commit 8a1b4975f71f9ce1446db689afb092d6e0a670a7)
* | Merge "nova-live-migration tests not needed for Ironic" into stable/xenaZuul2023-02-091-2/+17
|\ \
| * | nova-live-migration tests not needed for IronicJay Faulkner2023-01-201-2/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ironic does not support live migration, so we will skip these tests if the only changed files are in Ironic virt driver to ensur we don't waste resources or time trying to run unneeded tests. Change-Id: Ieb5ac3bb93af6a950acff4d76d0276096a6a24dd (cherry picked from commit c7b865c79b42457c3a9cf987924737fd8675f53e) (cherry picked from commit 273831716780090677215ba70168bb74a2dae814)
* | | Merge "Improving logging at '_allocate_mdevs'." into stable/xenaZuul2023-02-061-0/+13
|\ \ \
| * | | Improving logging at '_allocate_mdevs'.Jorge San Emeterio2023-01-231-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adding both 'info' and 'debug' messages with the intention of telling which mdevs are available, which get allocated and whether new ones are created. Closes-Bug: #1992451 Change-Id: Ibd331df51fd4eaeed4831a98469f06a4ce0cd452 (cherry picked from commit 6feb3350b048606297068841e3feba110bb0b0ab) (cherry picked from commit 03374cf4a2ff98c938691a209d6a3fb14a06d3a0) (cherry picked from commit 9f6ca77a184379e90e10d6705fbd78208debb612)
* | | | Merge "Gracefully ERROR in _init_instance if vnic_type changed" into stable/xena24.2.0Zuul2023-01-256-7/+252
|\ \ \ \
| * | | | Gracefully ERROR in _init_instance if vnic_type changedBalazs Gibizer2023-01-256-7/+252
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the vnic_type of a bound port changes from "direct" to "macvtap" and then the compute service is restarted then during _init_instance nova tries to plug the vif of the changed port. However as it now has macvtap vnic_type nova tries to look up the netdev of the parent VF. Still that VF is consumed by the instance so there is no such netdev on the host OS. This error killed the compute service at startup due to unhandled exception. This patch adds the exception handler, logs an ERROR and continue initializing other instances on the host. Also this patch adds a detailed ERROR log when nova detects that the vnic_type changed during _heal_instance_info_cache periodic. Closes-Bug: #1981813 Change-Id: I1719f8eda04e8d15a3b01f0612977164c4e55e85 (cherry picked from commit e43bf900dc8ca66578603bed333c56b215b1876e) (cherry picked from commit a28c82719545d5c8ee7f3ff1361b3a796e05095a)
* | | | | Merge "[stable-only][cve] Check VMDK create-type against an allowed list" ↵Zuul2023-01-253-0/+86
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | into stable/xena
| * | | | | [stable-only][cve] Check VMDK create-type against an allowed listDan Smith2023-01-253-0/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Trivial conflicts on xena only in: nova/conf/compute.py NOTE(sbauza): Stable policy allows us to proactively merge a backport without waiting for the parent patch to be merged (exception to rule #4 in [1]. Marking [stable-only] in order to silence nova-tox-validate-backport [1] https://docs.openstack.org/project-team-guide/stable-branches.html#appropriate-fixes Related-Bug: #1996188 Change-Id: I5a399f1d3d702bfb76c067893e9c924904c8c360
* | | | | | Merge "Reproduce bug 1981813 in func env" into stable/xenaZuul2023-01-252-3/+80
|\ \ \ \ \ \ | | |/ / / / | |/| / / / | |_|/ / / |/| | | |
| * | | | Reproduce bug 1981813 in func envBalazs Gibizer2023-01-252-3/+80
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There stable/yoga only change in test_pci_sriov_servers.py due to unittest.mock switch[1] only happened in zed. [1] https://review.opendev.org/q/topic:unittest.mock+status:merged+project:openstack/nova Related-Bug: #1981813 Change-Id: I9367b7ed475917bdb05eb3f209ce1a4e646534e2 (cherry picked from commit f8c91eb75fc5504a37fc3b4be1d65d33dbc9b511) (cherry picked from commit 4954f993680c75fd9d3d507f2dcd00300c9b3d44)
* | | | Merge "Adapt websocketproxy tests for SimpleHTTPServer fix" into stable/xenaZuul2023-01-101-35/+26
|\ \ \ \
| * | | | Adapt websocketproxy tests for SimpleHTTPServer fixmelanie witt2022-11-301-35/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In response to bug 1927677 we added a workaround to NovaProxyRequestHandler to respond with a 400 Bad Request if an open redirect is attempted: Ie36401c782f023d1d5f2623732619105dc2cfa24 I95f68be76330ff09e5eabb5ef8dd9a18f5547866 Recently in python 3.10.6, a fix has landed in cpython to respond with a 301 Moved Permanently to a sanitized URL that has had extra leading '/' characters removed. This breaks our existing unit tests which assume a 400 Bad Request as the only expected response. This adds handling of a 301 Moved Permanently response and asserts that the redirect location is the expected sanitized URL. Doing this instead of checking for a given python version will enable the tests to continue to work if and when the cpython fix gets backported to older python versions. While updating the tests, the opportunity was taken to commonize the code of two unit tests that were nearly identical. Related-Bug: #1927677 Closes-Bug: #1986545 Change-Id: I27441d15cc6fa2ff7715ba15aa900961aadbf54a (cherry picked from commit 15769b883ed4a86d62b141ea30d3f1590565d8e0) (cherry picked from commit 4a2b44c7cf55d1d79d5a2dd638bd0def3af0f5af)
* | | | | Merge "Handle "no RAM info was set" migration case" into stable/xenaZuul2023-01-103-0/+40
|\ \ \ \ \ | |_|/ / / |/| | | |
| * | | | Handle "no RAM info was set" migration caseBrett Milford2022-10-073-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This handles the case where the live migration monitoring thread may race and call jobStats() after the migration has completed resulting in the following error: libvirt.libvirtError: internal error: migration was active, but no RAM info was set Closes-Bug: #1982284 Change-Id: I77fdfa9cffbd44b2889f49f266b2582bcc6a4267 (cherry picked from commit 9fea934c71d3c2fa7fdd80c67d94e18466c5cf9a) (cherry picked from commit 00396fa9396324780c09161ed57a86b7e458c26f) (cherry picked from commit 4316234e63b76e4f9877ec6e924b5c54ea761bbb)
* | | | | Merge "Retry attachment delete API call for 504 Gateway Timeout" into ↵Zuul2022-12-133-11/+54
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | stable/xena
| * | | | | Retry attachment delete API call for 504 Gateway TimeoutTakashi Kajinami2022-11-293-11/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When cinder-api runs behind a load balancer(eg haproxy), the load balancer can return 504 Gateway Timeout when cinder-api does not respond within timeout. This change ensures nova retries deleting a volume attachment in that case. Also this change makes nova ignore 404 in the API call. This is required because cinder might continue deleting the attachment even if the load balancer returns 504. This also helps us in the situation where the volume attachment was accidentally removed by users. Closes-Bug: #1978444 Change-Id: I593011d9f4c43cdae7a3d53b556c6e2a2b939989 (cherry picked from commit 8f4b740ca5292556f8e953a30f2a11ed4fbc2945) (cherry picked from commit b94ffb1123b1a6cf0a8675e0d6f1072e9625f570)
* | | | | | Merge "enable blocked VDPA move operations" into stable/xenaZuul2022-12-055-26/+385
|\ \ \ \ \ \
| * | | | | | enable blocked VDPA move operationsSean Mooney2022-12-015-26/+385
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change adds functional test for operations on servers with VDPA devices that are expected to work but currently blocked due to lack of testing or qemu bugs. cold-migrate, resize, evacuate,and shelve are enabled and tested by this patch Conflicts: nova/tests/functional/libvirt/test_pci_sriov_servers.py Closes-Bug: #1970467 Change-Id: I6e220cf3231670d156632e075fcf7701df744773 (cherry picked from commit 95f96ed3aa201bc5b90e589b288fa4039bc9c0d2) (cherry picked from commit 041939361e393b808724b8590eb76b3aa075814e)
* | | | | | | Merge "Add compute restart capability for libvirt func tests" into stable/xenaZuul2022-12-056-50/+123
|\ \ \ \ \ \ \ | |/ / / / / /
| * | | | | | Add compute restart capability for libvirt func testsBalazs Gibizer2022-12-016-50/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The existing generic restart_compute_service() call in the nova test base class is not appropriate for the libvirt functional test that needs to reconfigure the libvirt connection as it is not aware of the libvirt specific mocking needed when a compute service is started. So this patch adds a specific restart_compute_service() call to nova.tests.functional.libvirt.base.ServersTestBase. This will be used by a later patch testing [pci]device_spec reconfiguration scenarios. This change showed that some of the existing libvirt functional test used the incomplete restart_compute_service from the base class. Others used local mocking to inject new pci config to the restart. I moved all these to the new function and removed the local mocking. Conflicts: nova/tests/functional/libvirt/test_device_bus_migration.py Change-Id: Ic717dc42ac6b6cace59d344acaf12f9d1ee35564 (cherry picked from commit 57c253a609e859fa21ba05b264f0ba4d0ade7b8b) (cherry picked from commit f98858aa77e4443164fc09fae3667fb0f66edfbf)
* | | | | | | Merge "Remove double mocking... again" into stable/xenaZuul2022-12-0520-187/+158
|\ \ \ \ \ \ \ | |/ / / / / /
| * | | | | | Remove double mocking... againBalazs Gibizer2022-12-0120-187/+158
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I thought we fixed all the double mocking issues with I3998d0d49583806ac1c3ae64f1b1fe343cefd20d but I was wrong. While we used both mock and unittest.mock the fixtures.MockPatch used the mock lib instead of the unittest.mock lib. The path Ibf4f36136f2c65adad64f75d665c00cf2de4b400 (Remove the PowerVM driver) removed the last user of mock lib from nova. So it is also removed the mock from test-requirements. This triggered that fixtures.MockPatch athat started using unittest.mock too. Before Ibf4f36136f2c65adad64f75d665c00cf2de4b400 a function can be mocked twice once with unittest.mock and once with fixtures.MockPatch (still using mock). However after that patch both path of such double mocking goes through unittest.mock and the second one fails. So this patch fixes double mocking so far hidden behind fixtures.MockPatch. This patch made the py310 and functional-py310 jobs voting on master however that has been dropped as part of the backport. Conflicts: nova/tests/fixtures/nova.py nova/tests/unit/api/openstack/compute/test_quotas.py nova/tests/unit/api/openstack/compute/test_server_group_quotas.py Conflicts are due to lack of unified limits feature in xena Change-Id: Ic1352ec31996577a5d0ad18a057339df3e49de25 (cherry picked from commit bf654e3a4a8f690ad0bec0955690bf4fadf98dba) (cherry picked from commit 69667a817cb65c3efbe4e3ada0e8c69c0a106087)
* | | | | | | Merge "Remove double mocking" into stable/xenaZuul2022-12-0519-658/+527
|\ \ \ \ \ \ \ | |/ / / / / /
| * | | | | | Remove double mockingBalazs Gibizer2022-12-0119-658/+527
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In py310 unittest.mock does not allow to mock the same function twice as the second mocking will fail to autospec the Mock object created by the first mocking. This patch manually fixes the double mocking. Fixed cases: 1) one of the mock was totally unnecessary so it was removed 2) the second mock specialized the behavior of the first generic mock. In this case the second mock is replaced with the configuration of the first mock 3) a test case with two test steps mocked the same function for each step with overlapping mocks. Here the overlap was removed to have the two mock exists independently The get_connection injection in the libvirt functional test needed a further tweak (yeah I know it has many already) to act like a single mock (basically case #2) instead of a temporary re-mocking. Still the globalness of the get_connection mocking warrant the special set / reset logic there. Conflicts: nova/tests/unit/api/openstack/compute/test_limits.py nova/tests/unit/virt/libvirt/volume/test_lightos.py nova/tests/unit/virt/test_block_device.py Change-Id: I3998d0d49583806ac1c3ae64f1b1fe343cefd20d (cherry picked from commit f8cf050a1380ae844e0184ed45f4a04fde3b07a9) (cherry picked from commit b40bd1bf52c87c31e18caf85d79dd03da6c7cffc)
* | | | | | | Merge "Record SRIOV PF MAC in the binding profile" into stable/xenaZuul2022-12-0515-135/+907
|\ \ \ \ \ \ \ | |/ / / / / /
| * | | | | | Record SRIOV PF MAC in the binding profileBalazs Gibizer2022-12-0115-135/+907
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Today Nova updates the mac_address of a direct-physical port to reflect the MAC address of the physical device the port is bound to. But this can only be done before the port is bound. However during migration Nova does not update the MAC when the port is bound to a different physical device on the destination host. This patch extends the libvirt virt driver to provide the MAC address of the PF in the pci_info returned to the resource tracker. This information will be then persisted in the extra_info field of the PciDevice object. Then the port update logic during migration, resize, live migration, evacuation and unshelve is also extended to record the MAC of physical device in the port binding profile according to the device on the destination host. The related neutron change Ib0638f5db69cb92daf6932890cb89e83cf84f295 uses this info from the binding profile to update the mac_address field of the port when the binding is activated. Closes-Bug: #1942329 Conflicts: nova/network/neutron.py nova/objects/pci_device.py nova/tests/fixtures/libvirt.py nova/tests/unit/network/test_neutron.py nova/tests/unit/virt/libvirt/test_host.py nova/virt/fake.py nova/virt/libvirt/host.py Most of the conlficts are due to the lack of the vpd feature and I83a128a260acdd8bf78fede566af6881b8b82a9c the addtional unit tests in test_neutron and test_compute_mgr are form the vpd feature but have been modified to drop assertions related to the vpd feature while keeping the assertions related to SRIOV PF MAC adress binding. Change-Id: Iad5e70b43a65c076134e1874cb8e75d1ba214fde (cherry picked from commit cd03bbc1c33e33872594cf002f0e7011ab8ea047) (cherry picked from commit 813377077bd0173bdf128823e46b5df7c0a575b9)
* | | | | | | Merge "refactor: remove duplicated logic" into stable/xenaZuul2022-12-052-12/+14
|\ \ \ \ \ \ \ | |/ / / / / /
| * | | | | | refactor: remove duplicated logicSean Mooney2022-12-012-12/+14
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove _update_port_pci_binding_profile and replace its usage with _get_pci_device_profile. changes from yoga are due to a partial backport of are due to a partial backport of I9a1532e9a98f89db69b9ae3b41b06318a43519b3 which is required to resolve conflict due to the lack of the remote managed ports feature in xena specificaly _get_port_pci_slot was refactored to _get_port_pci_dev Change-Id: I34dae6fdb746205f0baa4997e69eec55634bec4d (cherry picked from commit 8d2776fb34339b311c713992a39507452c4ae42f) (cherry picked from commit 683cbd06336bba37d033c292c4c0ea83e06d9c07)
* | | | | | Merge "Fix the wrong exception used to retry detach API calls" into stable/xenaZuul2022-11-302-22/+30
|\ \ \ \ \ \ | | |/ / / / | |/| / / / | |_|/ / / |/| | | |
| * | | | Fix the wrong exception used to retry detach API callsTakashi Kajinami2022-02-152-22/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When cinderclient receives an error response from API, it raises one of the exceptions from the cinderclient.exceptions module instead of the cinderclient.apiclient.exceptions module. This change fixes the wrong exception used to detect 500 error from cinder API, so that API calls to detach volumes are properly retried. Closes-Bug: #1944043 Change-Id: I741cb6b29a67da8c60708c6251c441d778ca74d0 (cherry picked from commit f6206269b71d9bcaf65aa0313c21cc6b75a54fb3)
* | | | | [compute] always set instance.host in post_livemigrationSean Mooney2022-11-073-6/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change add a new _post_live_migration_update_host function that wraps _post_live_migration and just ensures that if we exit due to an exception instance.host is set to the destination host. when we are in _post_live_migration the guest has already started running on the destination host and we cannot revert. Sometimes admins or users will hard reboot the instance expecting that to fix everything when the vm enters the error state after the failed migrations. Previously this would end up recreating the instance on the source node leading to possible data corruption if the instance used shared storage. Change-Id: Ibc4bc7edf1c8d1e841c72c9188a0a62836e9f153 Partial-Bug: #1628606 (cherry picked from commit 8449b7caefa4a5c0728e11380a088525f15ad6f5) (cherry picked from commit 643b0c7d35752b214eee19b8d7298a19a8493f6b) (cherry picked from commit 17ae907569e45cc0f5c7da9511bb668a877b7b2e)
* | | | | Adds a repoducer for post live migration failAmit Uniyal2022-11-072-1/+63
| |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds a regression test or repoducer for post live migration fail at destination, the possible casue can be fail to get instance network info or block device info changes: adds return server from _live_migrate in _integrated_helpers Related-Bug: #1628606 Change-Id: I48dbe0aae8a3943fdde69cda1bd663d70ea0eb19 (cherry picked from commit a20baeca1f5ebb0dfe9607335a6986e9ed0e1725) (cherry picked from commit 74a618a8118642c9fd32c4e0d502d12ac826affe) (cherry picked from commit 71e5a1dbcc22aeaa798d3d06ce392cf73364b8db)
* | | | Merge "neutron: Unbind remaining ports after PortNotFound" into stable/xenaZuul2022-09-252-23/+64
|\ \ \ \
| * | | | neutron: Unbind remaining ports after PortNotFoundStephen Finucane2022-05-192-23/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Just because we encountered a PortNotFound error when unbinding a port doesn't mean we should stop unbinding the remaining ports. If this error is encountered, simply continue with the other ports. While we're here, we clean up some other tests related to '_unbind_port' since they're clearly duplicates. Conflicts: nova/tests/unit/network/test_neutron.py NOTE(stephenfin): Conflicts are due to the absence of change I8058902df167239fa455396d3595a56bcf472b2b ("neutron: Rework how we check for extensions") which we don't want to backport. Change-Id: Id04e0df12829df4d8929e03a8b76b5cbe0549059 Signed-off-by: Stephen Finucane <sfinucan@redhat.com> Closes-Bug: #1974173 (cherry picked from commit 9e0dcb52ab308a63c6a18e47d1850cc3ade4d807) (cherry picked from commit 6f32b118640ee466b58155b5ecd50e041b4a2e7e)
* | | | | Merge "Retry in CellDatabases fixture when global DB state changes" into ↵Zuul2022-09-071-20/+46
|\ \ \ \ \ | |_|_|/ / |/| | | | | | | | | stable/xena
| * | | | Retry in CellDatabases fixture when global DB state changesmelanie witt2022-05-101-20/+46
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a NOTE in the CellDatabases code about an unlikely but possible race that can occur between taking the writer lock to set the last DB context manager and taking the reader lock to call target_cell(). When the race is detected, a RuntimeError is raised. We can handle the race by retrying setting the last DB context manager when the race is detected, as described in the NOTE. Closes-Bug: #1959677 Change-Id: I5c0607ce5910dce581ab9360cc7fc69ba9673f35 (cherry picked from commit 1c8122a25f50b40934af127d7717b55794ff38b5) (cherry picked from commit 875668827896a44db8dd5083bd6148625c6bddea)
* | | | Merge "For evacuation, ignore if task_state is not None" into stable/xenaZuul2022-08-194-17/+35
|\ \ \ \
| * | | | For evacuation, ignore if task_state is not NoneAmit Uniyal2022-08-164-17/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ignore instance task state and continue with vm evacutaion Closes-Bug: #1978983 Change-Id: I5540df6c7497956219c06cff6f15b51c2c8bc29d (cherry picked from commit db919aa15f24c0d74f3c5c0e8341fad3f2392e57) (cherry picked from commit 6d61fccb8455367aaa37ae7bddf3b8befd3c3d88)
* | | | | Merge "add regression test case for bug 1978983" into stable/xenaZuul2022-08-192-2/+82
|\ \ \ \ \ | |/ / / /
| * | | | add regression test case for bug 1978983Amit Uniyal2022-08-162-2/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change add a repoducer test for evacuating a vm in the powering-off state Related-Bug: #1978983 Change-Id: I5540df6c7497956219c06cff6f15b51c2c8bc299 (cherry picked from commit 5904c7f993ac737d68456fc05adf0aaa7a6f3018) (cherry picked from commit 6bd0bf00fca6ac6460d70c855eded3898cfe2401)