We jubilantly announce the release of: nova 18.2.0: Cloud computing fabric controller This release is part of the rocky stable release series. Download the package from: https://tarballs.openstack.org/nova/ For more details, please see below. 18.2.0 ^^^^^^ Upgrade Notes ************* * Adds a "use_cache" parameter to the virt driver "get_info" method. Out of tree drivers should add support for this parameter. * Live migration of instances with NUMA topologies is now disabled by default when using the libvirt driver. This includes live migration of instances with CPU pinning or hugepages. CPU pinning and huge page information for such instances is not currently re- calculated, as noted in bug #1289064. This means that if instances were already present on the destination host, the migrated instance could be placed on the same dedicated cores as these instances or use hugepages allocated for another instance. Alternately, if the host platforms were not homogeneous, the instance could be assigned to non-existent cores or be inadvertently split across host NUMA nodes. The long term solution to these issues is to recalculate the XML on the destination node. When this work is completed, the restriction on live migration with NUMA topologies will be lifted. For operators that are aware of the issues and are able to manually work around them, the "[workarounds] enable_numa_live_migration" option can be used to allow the broken behavior. For more information, refer to bug #1289064. (https://bugs.launchpad.net/nova/+bug/1289064) (https://blueprints.launchpad.net/nova/+spec/numa-aware-live- migration) Bug Fixes ********* * "PUT /os-aggregates/{aggregate_id}" and "POST /os- aggregates/{aggregate_id}/action" (for set_metadata action) will now return HTTP 400 for availability zone renaming if the hosts of the aggregate have any instances. * Fixes a race condition that could allow a newly created Ironic instance to be powered off after deployment, without letting the user power it back on. * [bug 1818295 (https://bugs.launchpad.net/nova/+bug/1818295)] Fixes the problem with endpoint lookup in Ironic driver where only public endpoint is possible, which breaks deployments where the controllers have no route to the public network per security requirement. Note that python-ironicclient fix I610836e5038774621690aca88b2aee25670f0262 must also be present to resolve the bug. Other Notes *********** * The "[workarounds]/ensure_libvirt_rbd_instance_dir_cleanup" configuration option has been introduced. This can be used by operators to ensure that instance directories are always removed during cleanup within the Libvirt driver while using "[libvirt]/images_type = rbd". This works around known issues such as bug 1414895 when cleaning up after an evacuation and bug 1761062 when reverting from an instance resize. Operators should be aware that this workaround only applies when using the libvirt compute driver and rbd images_type as enabled by the following configuration options: * "[DEFAULT]/compute_driver = libvirt" * "[libvirt]/images_type = rbd" Warning: Operators will need to ensure that the instance directory itself, specified by "[DEFAULT]/instances_path", is not shared between computes before enabling this workaround, otherwise files associated with running instances may be removed. (https://bugs.launchpad.net/nova/+bug/1414895) (https://bugs.launchpad.net/nova/+bug/1761062) Changes in nova 18.1.0..18.2.0 ------------------------------ 02d6146e4d Fix resetting non-persistent fields when saving obj 133763d358 Update instance.availability_zone during live migration d4cea970c2 pass endpoint interface to Ironic client 7d0dd625d3 Allow utime call to fail on qcow2 image base file cfad7a1faa Handle templated cell mappings in nova-status 50cc1e8bb6 Handle missing exception in instance creation code 31b74bfa40 Fix WeighedHost logging regression 1559db5704 Check hosts have no instances for AZ rename e2185168f8 Fix an error when generating a host ID b09f2e58e9 Fix resource tracker updates during instance evacuation 81b0e5a068 ironic: check fresh data when sync_power_state doesn't line up 4ede352811 ironic: stop hammering ironic API in power sync loop 40771bc155 Fix race in test_volume_swap_server_with_error ecdf3c67ee fix up numa-topology live migration hypervisor check 32a77abbfc Move legacy-grenade-dsvm-neutron-multinode-live-migration in-tree c4a2a32f07 Fix legacy-grenade-dsvm-neutron-multinode-live-migration 35a050a520 Avoid BadRequest error log on volume attachment 0794345ecd Don't emit warning when ironic properties are zero 3310c3cbf5 Lock detach_volume a4017aaa53 Fix a missing policy in test policy data 315d9fab7a Provide a useful error message when trying to update non-compute services 1a684f6fbe Ignore VolumeAttachmentNotFound exception in compute.manager 99f0c4c014 tox: Don't write byte code (maybe) 75e0f5a9b1 Avoid redundant initialize_connection on source post live migration cb65d3d69c Fix InstanceMapping to always default queued_for_delete=False 9f9f372f33 PCI: do not force remove allocated devices 218c0f5f97 Use X-Forwarded-Proto as origin protocol if present e7dc43bf84 Don't call begin_detaching when detaching volume from shelved vm d2662df485 Fix port dns_name reset 1ac56a4038 Skip checking of target_dev for vhostuser 780ccfcbde Fix overcommit for NUMA-based instances 444d65221c Fix typo a0f5618ffa Fix using template cell urls with nova-manage ba269da87a Convert port to str when validate console port 6061186d2d Fix incompatible version handling in BuildRequest 6e1120ae30 Send context.global_id on neutron calls 8c678ae572 libvirt: Add workaround to cleanup instance dir when using rbd 7a0203c9ad Restore nova-consoleauth to install docs e54b064c91 Add links to summit videos in user/cells.rst 99bf929024 Removing pip-missing-reqs from default tox jobs eea3de99c6 Imported Translations from Zanata f5d8ee1bfc Ensure rbd auth fallback uses matching credentials 56778f82d6 Fix destination_type attribute in the bdm_v2 documentation 87be408b12 Fix a broken link 3eb0ba988f Exclude build request marker from server listing 44d405083d Fix a broken-link in nova doc c4db57c3de Fix a broken-link in nova doc ec91a66da4 Fix an inaccurate link in nova doc 3b18ab4b32 Document using service user tokens for long running operations bc0a5d0355 Handle unbound vif plug errors on compute restart 3e38d1cf16 Update port device_owner when unshelving 52b8973442 Fail to live migration if instance has a NUMA topology db6fc29ad2 Make compute rpcapi version calculation check all cells a8b5d0c2bd Migrate nova v2.0 legacy job to zuulv3 Diffstat (except docs and test files) ------------------------------------- .zuul.yaml | 71 ++++++--- .../admin/migrate-instance-with-snapshot.rst | 4 + nova/api/openstack/compute/instance_actions.py | 9 +- nova/api/openstack/compute/migrate_server.py | 6 +- nova/api/openstack/compute/servers.py | 1 + nova/api/openstack/compute/services.py | 11 +- nova/cmd/manage.py | 4 +- nova/cmd/status.py | 61 +++++--- nova/compute/api.py | 38 ++++- nova/compute/manager.py | 157 +++++++++++++------ nova/compute/resource_tracker.py | 5 +- nova/compute/rpcapi.py | 11 +- nova/compute/task_states.py | 7 + nova/conductor/tasks/live_migrate.py | 34 ++++ nova/conf/compute.py | 4 + nova/conf/libvirt.py | 1 + nova/conf/workarounds.py | 58 +++++++ nova/console/websocketproxy.py | 7 + nova/locale/ko_KR/LC_MESSAGES/nova.po | 11 +- nova/network/neutronv2/api.py | 61 +++++++- nova/network/os_vif_util.py | 12 ++ nova/objects/build_request.py | 10 +- nova/objects/cell_mapping.py | 8 +- nova/objects/instance.py | 11 ++ nova/objects/instance_mapping.py | 5 + nova/objects/migrate_data.py | 2 + nova/objects/numa.py | 17 +- nova/objects/request_spec.py | 13 ++ nova/pci/manager.py | 35 ++++- nova/scheduler/filter_scheduler.py | 5 +- .../functional/regressions/test_bug_1815153.py | 173 +++++++++++++++++++++ .../openstack/compute/admin_only_action_common.py | 36 ++++- .../api/openstack/compute/test_flavor_manage.py | 5 +- .../api/openstack/compute/test_instance_actions.py | 63 +++++++- .../api/openstack/compute/test_migrate_server.py | 8 +- .../unit/api/openstack/compute/test_serversV21.py | 14 +- .../unit/api/openstack/compute/test_services.py | 14 +- .../unit/conductor/tasks/test_live_migrate.py | 55 ++++++- nova/virt/driver.py | 7 +- nova/virt/fake.py | 2 +- nova/virt/hardware.py | 23 ++- nova/virt/hyperv/driver.py | 2 +- nova/virt/ironic/client_wrapper.py | 6 + nova/virt/ironic/driver.py | 46 +++--- nova/virt/libvirt/driver.py | 52 ++----- nova/virt/libvirt/guest.py | 5 +- nova/virt/libvirt/imagebackend.py | 32 +++- nova/virt/libvirt/volume/net.py | 5 +- nova/virt/powervm/driver.py | 3 +- nova/virt/vmwareapi/driver.py | 2 +- nova/virt/xenapi/driver.py | 2 +- nova/virt/zvm/driver.py | 2 +- nova/volume/cinder.py | 15 +- .../legacy/nova-grenade-live-migration/post.yaml | 15 ++ .../legacy/nova-grenade-live-migration/run.yaml | 58 +++++++ ...1378904-disable-az-rename-b22a558a20b12706.yaml | 7 + .../notes/bug-1414895-8f7d8da6499f8e94.yaml | 24 +++ .../notes/bug-1815791-f84a913eef9e3b21.yaml | 11 ++ ...-live-migration-with-numa-bc710a1bcde25957.yaml | 25 +++ ...nterface-for-ironicclient-a0b6b8f8dedc7341.yaml | 9 ++ tox.ini | 5 +- 108 files changed, 2326 insertions(+), 452 deletions(-)