[release-announce] nova 28.0.0 (bobcat)

no-reply at openstack.org no-reply at openstack.org
Wed Oct 4 11:34:39 UTC 2023


We are satisfied to announce the release of:

nova 28.0.0: Cloud computing fabric controller

This release is part of the bobcat release series.

The source is available from:

    https://opendev.org/openstack/nova

Download the package from:

    https://tarballs.openstack.org/nova/

Please report issues through:

    https://bugs.launchpad.net/nova/+bugs

For more details, please see below.

Changes in nova 27.0.0..28.0.0
------------------------------

10ea7a4fb2 Add a Bobcat prelude section
c486cc89dc Make our nova-ovs-hybrid-plug job omit cinder
9a27434ffc Revert "Limit nodes by ironic shard key"
3491b945b9 Revert "Add nova-manage ironic-compute-node-move"
36a5740e2a Revert "Make compute node rebalance safter"
ea07f96eb1 adapt to oslo.log changes
a3e0910d88 Add service version for Bobcat
f502a23600 Update compute rpc alias for bobcat
515d9cbfa4 doc: mark the maximum microversion for 2023.2 Bobcat
82a17a37de Imported Translations from Zanata
68b2131d81 only attempt to clean up dangling bdm if cinder is installed
d42fe462be Follow up for unified limits: PCPU and documentation
772f5a1ae4 Make compute node rebalance safter
9068db09e4 Add nova-manage ironic-compute-node-move
9d5935d007 Delete dangling bdms
f5a12f511b Limit nodes by ironic shard key
cbf400df1d Deprecate ironic.peer_list
c33a9ccf4c Reproducer for dangling bdms
8f0817f078 Add documentation for unified limits
395501c876 nova-manage: Add 'limits migrate_to_unified_limits'
32ed205794 Add function to get all attachments in Cinder.API module
bc58c1d2fb [functional]Fix remaining greenlet leaks
0ae1802db6 [functional] Avoid leaking greenlet in UnifiedLimits tests
d71d2dc219 introduce global greenpool
8d0a0ec88e Avoid lazy-loads in resize
3a68b5e193 Avoid lazy-loads on server create
9ae9d77b03 Remove a lazy load on every server show
5ebf1fa206 Avoid lazy-loading in resize and rebuild/evacuate
b9fe87ddee Log excessive lazy-loading behavior
7b7b60684e [functional] Don't leak running live migration
53972dfa5a Fix bindep for Debian bookworm
e96ac439d3 Use OSC in run-evacuate-hook instead of novaclient
e8d7380759 Update contributor guide for 2023.2 Bobcat
56adc9bd85 Fix tox docs target
f2a10afb64 Remove n-v ceph live migration job from gate
27f384b7ac Add upgrade check for compute-object-ids linkage
3e1cfcefc2 Remove unused mocks
b6cf8e6128 Bump MIN_{LIBVIRT,QEMU} for "Bobcat"
2fd034ec48 libvirt: Add 'COMPUTE_ADDRESS_SPACE_*' traits support
ca3fbb4d15 Add a new NumInstancesWeigher
5edd805fe2 Remove deprecated AZ filter.
9ae6240c92 Decorate only Flavor.get_* methods that execute queries
bb06d8817f Fix up inconsistent max_count argument in o-d-ms
3f7cc63d94 Add config option to configure TB cache size
f7ce4df51c Refactor CinderFixture
6f56c5c9fd enable validations in nova-lvm
2d320f9b00 Add a new policy for cold-migrate with host
c13a8080ea Pick next min libvirt / QEMU versions for "C" (2024) release
86c542c56a Drop Fedora support
697fa3c000 database: Archive parent and child rows "trees" one at a time
f6620d48c8 testing: Fix and robustify archive_deleted_rows test
a1568e483d db: Store unmasked password
3fab43786b cpu: fix the privsep issue when offlining the cpu
56d320a203 Fix failed count for anti-affinity check
25be0306d7 Add online migration for Instance.compute_id
84e7bed27e Online migrate missing Instance.compute_id fields
625fb569a7 Add compute_id to Instance object
70516d4ff9 Add dest_compute_id to Migration object
a47fdef1bf Add compute_id columns to instances, migrations
afad847e4d Populate ComputeNode.service_id
aeddcd61fd Add integrated job to test the Nova RBAC old defaults
6f79d6321e Enforce quota usage from placement when unshelving
427b2cb4d6 Reproducer for bug 2003991 unshelving offloaded instance
e2264d7657 Fixes a typo in availability-zone doc
e0fbb6fc06 Add debug logging when Instance raises OrphanedObjectError
32f191c359 [alembic] Alembic operations require keywords only arguments
c095cfe04e tests: Use GreenThreadPoolExecutor.shutdown(wait=True)
fe125da63b CI: fix backport validator for new branch naming
6ff3237149 Bump nova-ceph-multstore timeout
41c64b94b0 Enable use of service user token with admin context
db455548a1 Use force=True for os-brick disconnect during delete
973ff4fc1a Have host look for CPU controller of cgroupsv2 location.
6d7bd6a034 Fix get_segments_id with subnets without segment_id
6833695e70 Revert "Debug Nova APIs call failures"
b50bcdf2b2 Add nova-tox-functional-py310 to gate jobs
04ebae9dc0 Save cell socket correctly when updating host NUMA topology
63d6ecd99b Reproduce bug 1995153
82deb0ce4b Stop ignoring missing compute nodes in claims
fbf2515b4c Remove silent failure to find a node on rebuild
2f86a8a088 Remove focal job for 2023.2
e38d6a356b add hypervisor version weigher
de683a2ed0 db: Avoid relying on autobegin
9b47bcca9d tests: Add missing args to sqlalchemy.Table
fd742c176b tests: Pass parameters to sqlalchemy.text() as bindparams
b2520d6728 db: Remove unnecessary 'insert()' argument
1f30b5a4e2 db: Don't rely on branched connections
5c4452739b doc: Update version info
89b3b7795c Allow running functional-py311
45b9e966dd Update to the PTL guide
dacae335e4 Process unlimited exceptions raised by unplug_vifs
bc3cf01ff0 Verify a move operation for cross_az_attach=False
390d647d22 Fix a typo in this URL: https://docs.openstack.org/nova/latest/admin/availability-zones.html
29de62bf3b mypy: Fix implicit optional usage
402b155043 Add grenade-skip-level-always to nova
d37cca361a Make scheduler lazy-load the placement client
23c345d61d Update serial console example client for py3
4df62f7015 Imported Translations from Zanata
55a3f17e0e Update min support for Bobcat
e0fc974b97 Update master for stable/2023.1
59c85b6a28 Make nova-next reduce mysql memory
d533727904 testing: Reset affinity support global variables
37fa501cac fup for power management series
2454843b8f db: Remove the legacy 'migration_version' table
fd39e4b4be db: Remove legacy migrations
cffe3971ce Handle zero pinned CPU in a cell with mixed policy
182c5be122 Reproduce asym NUMA mixed CPU policy bug
4eef0fe635 Unbind port when offloading a shelved instance
713ef78396 vmwareapi: Mark driver as experimental
9baade7ea1 hyperv: Mark driver as experimental
f996674c36 Fix exception catch when volume mount fails


Diffstat (except docs and test files)
-------------------------------------

.zuul.yaml                                         |   77 +-
api-ref/source/servers-admin-action.inc            |    5 +-
bindep.txt                                         |    9 +-
.../admin/configuration/cross-cell-resize.rst      |    2 +-
.../admin/configuration/hypervisor-ironic.rst      |   21 +-
.../admin/configuration/service-user-token.rst     |   59 +
.../admin/migrate-instance-with-snapshot.rst       |    2 +-
nova/api/openstack/compute/evacuate.py             |    8 +-
nova/api/openstack/compute/migrate_server.py       |    9 +-
nova/api/openstack/compute/migrations.py           |    1 +
.../openstack/compute/rest_api_version_history.rst |    4 +-
nova/api/openstack/compute/servers.py              |   14 +-
nova/api/openstack/compute/shelve.py               |    4 +-
nova/api/openstack/wsgi.py                         |    6 -
nova/cmd/manage.py                                 |  236 ++-
nova/cmd/status.py                                 |   36 +
nova/compute/api.py                                |   46 +
nova/compute/build_results.py                      |    8 +
nova/compute/manager.py                            |  146 +-
nova/compute/resource_tracker.py                   |  139 +-
nova/compute/rpcapi.py                             |    1 +
nova/conductor/manager.py                          |   84 +-
nova/conf/base.py                                  |    8 +
nova/conf/ironic.py                                |   14 +-
nova/conf/keystone.py                              |    2 +-
nova/conf/libvirt.py                               |   16 +
nova/conf/quota.py                                 |   21 +-
nova/conf/scheduler.py                             |  126 +-
nova/db/api/legacy_migrations/README               |    4 -
nova/db/api/legacy_migrations/__init__.py          |    0
nova/db/api/legacy_migrations/manage.py            |   20 -
nova/db/api/legacy_migrations/migrate.cfg          |   20 -
.../db/api/legacy_migrations/versions/067_train.py |  602 --------
.../legacy_migrations/versions/068_placeholder.py  |   22 -
.../legacy_migrations/versions/069_placeholder.py  |   22 -
.../legacy_migrations/versions/070_placeholder.py  |   22 -
.../legacy_migrations/versions/071_placeholder.py  |   22 -
.../legacy_migrations/versions/072_placeholder.py  |   22 -
.../legacy_migrations/versions/073_placeholder.py  |   22 -
.../legacy_migrations/versions/074_placeholder.py  |   22 -
.../legacy_migrations/versions/075_placeholder.py  |   22 -
.../legacy_migrations/versions/076_placeholder.py  |   22 -
.../legacy_migrations/versions/077_placeholder.py  |   22 -
.../legacy_migrations/versions/078_placeholder.py  |   22 -
.../legacy_migrations/versions/079_placeholder.py  |   22 -
.../legacy_migrations/versions/080_placeholder.py  |   22 -
.../legacy_migrations/versions/081_placeholder.py  |   22 -
.../legacy_migrations/versions/082_placeholder.py  |   22 -
.../legacy_migrations/versions/083_placeholder.py  |   22 -
.../legacy_migrations/versions/084_placeholder.py  |   22 -
.../legacy_migrations/versions/085_placeholder.py  |   22 -
.../legacy_migrations/versions/086_placeholder.py  |   22 -
.../legacy_migrations/versions/087_placeholder.py  |   22 -
nova/db/api/legacy_migrations/versions/__init__.py |    0
nova/db/api/migrations/env.py                      |   18 +-
...eec0c85668_drop_legacy_migrate_version_table.py |   36 +
nova/db/main/api.py                                |  168 +-
nova/db/main/legacy_migrations/README              |    4 -
nova/db/main/legacy_migrations/__init__.py         |    0
nova/db/main/legacy_migrations/manage.py           |   20 -
nova/db/main/legacy_migrations/migrate.cfg         |   20 -
.../main/legacy_migrations/versions/402_train.py   | 1619 --------------------
.../legacy_migrations/versions/403_placeholder.py  |   22 -
.../legacy_migrations/versions/404_placeholder.py  |   22 -
.../legacy_migrations/versions/405_placeholder.py  |   22 -
.../legacy_migrations/versions/406_placeholder.py  |   22 -
.../legacy_migrations/versions/407_placeholder.py  |   22 -
.../legacy_migrations/versions/408_placeholder.py  |   22 -
.../legacy_migrations/versions/409_placeholder.py  |   22 -
.../legacy_migrations/versions/410_placeholder.py  |   22 -
.../legacy_migrations/versions/411_placeholder.py  |   22 -
.../legacy_migrations/versions/412_placeholder.py  |   22 -
.../legacy_migrations/versions/413_placeholder.py  |   22 -
.../legacy_migrations/versions/414_placeholder.py  |   22 -
.../legacy_migrations/versions/415_placeholder.py  |   22 -
.../legacy_migrations/versions/416_placeholder.py  |   22 -
.../legacy_migrations/versions/417_placeholder.py  |   22 -
.../legacy_migrations/versions/418_placeholder.py  |   22 -
.../legacy_migrations/versions/419_placeholder.py  |   22 -
.../legacy_migrations/versions/420_placeholder.py  |   22 -
.../legacy_migrations/versions/421_placeholder.py  |   22 -
.../legacy_migrations/versions/422_placeholder.py  |   22 -
.../db/main/legacy_migrations/versions/__init__.py |    0
nova/db/main/migrations/env.py                     |   18 +-
.../16f1fbcab42b_resolve_shadow_table_diffs.py     |    6 +-
.../1acf2c98e646_add_compute_id_to_instance.py     |   49 +
...91788ec3a6_drop_legacy_migrate_version_table.py |   36 +
nova/db/main/models.py                             |   10 +
nova/db/migration.py                               |   77 +-
nova/exception.py                                  |    9 +
nova/limit/placement.py                            |    8 +-
nova/locale/cs/LC_MESSAGES/nova.po                 |    8 +-
nova/locale/de/LC_MESSAGES/nova.po                 |    8 +-
nova/locale/es/LC_MESSAGES/nova.po                 |    8 +-
nova/locale/fr/LC_MESSAGES/nova.po                 |    8 +-
nova/locale/it/LC_MESSAGES/nova.po                 |    8 +-
nova/locale/ja/LC_MESSAGES/nova.po                 |    8 +-
nova/locale/ko_KR/LC_MESSAGES/nova.po              |  126 +-
nova/locale/pt_BR/LC_MESSAGES/nova.po              |    8 +-
nova/locale/ru/LC_MESSAGES/nova.po                 |    8 +-
nova/locale/tr_TR/LC_MESSAGES/nova.po              |    8 +-
nova/locale/zh_CN/LC_MESSAGES/nova.po              |    8 +-
nova/locale/zh_TW/LC_MESSAGES/nova.po              |    8 +-
nova/manager.py                                    |    4 +-
nova/network/neutron.py                            |   31 +-
nova/objects/aggregate.py                          |    2 +-
nova/objects/base.py                               |   38 +
nova/objects/block_device.py                       |    5 +-
nova/objects/build_request.py                      |    1 +
nova/objects/flavor.py                             |    7 +-
nova/objects/host_mapping.py                       |    1 +
nova/objects/instance.py                           |   84 +-
nova/objects/instance_group.py                     |    1 +
nova/objects/instance_mapping.py                   |    1 +
nova/objects/migration.py                          |   44 +-
nova/objects/pci_device.py                         |    5 +-
nova/objects/quotas.py                             |   14 +-
nova/objects/request_spec.py                       |    1 +
nova/objects/selection.py                          |    1 -
nova/objects/service.py                            |    4 +-
nova/pci/request.py                                |    4 +-
nova/pci/stats.py                                  |    2 +-
nova/pci/whitelist.py                              |    2 +-
nova/policies/migrate_server.py                    |   13 +-
nova/scheduler/client/report.py                    |    2 +-
nova/scheduler/filters/availability_zone_filter.py |   78 -
nova/scheduler/manager.py                          |   35 +-
nova/scheduler/request_filter.py                   |    2 -
nova/scheduler/utils.py                            |   11 +
nova/scheduler/weights/hypervisor_version.py       |   39 +
nova/scheduler/weights/num_instances.py            |   41 +
nova/service.py                                    |    5 +-
nova/service_auth.py                               |    6 +-
nova/test.py                                       |   15 +
.../functional/compute/test_attached_volumes.py    |  152 ++
.../functional/libvirt/test_pci_sriov_servers.py   |   52 +-
.../functional/regressions/test_bug_1595962.py     |    1 +
.../functional/regressions/test_bug_1835822.py     |    1 +
.../functional/regressions/test_bug_1899835.py     |    2 +-
.../functional/regressions/test_bug_1937084.py     |    2 +-
.../functional/regressions/test_bug_1995153.py     |  107 ++
.../test_legacy_v2_compatible_wrapper.py           |    1 +
.../unit/api/openstack/compute/test_migrations.py  |    4 +
.../api/openstack/compute/test_server_actions.py   |    8 +-
.../api/openstack/compute/test_server_groups.py    |    1 +
.../openstack/compute/test_server_migrations.py    |    2 +
.../unit/api/openstack/compute/test_servers.py     |    9 +-
.../filters/test_availability_zone_filters.py      |   50 -
.../weights/test_weights_hypervisor_version.py     |   97 ++
.../weights/test_weights_num_instances.py          |   71 +
.../unit/virt/libvirt/test_machine_type_utils.py   |    1 +
.../unit/virt/libvirt/volume/test_fibrechannel.py  |   20 +
.../unit/virt/libvirt/volume/test_storpool.py      |   16 +-
.../unit/virt/libvirt/volume/test_vzstorage.py     |    8 +-
nova/utils.py                                      |   19 +-
nova/virt/driver.py                                |    6 +
nova/virt/fake.py                                  |    2 +
nova/virt/hardware.py                              |   11 +-
nova/virt/hyperv/driver.py                         |   10 +
nova/virt/hyperv/vmops.py                          |    2 +-
nova/virt/hyperv/volumeops.py                      |   12 +-
nova/virt/ironic/driver.py                         |   33 +-
nova/virt/libvirt/config.py                        |   15 +
nova/virt/libvirt/cpu/__init__.py                  |   22 -
nova/virt/libvirt/cpu/core.py                      |    1 +
nova/virt/libvirt/driver.py                        |   97 +-
nova/virt/libvirt/event.py                         |    7 +-
nova/virt/libvirt/host.py                          |   37 +-
nova/virt/libvirt/utils.py                         |    6 +-
nova/virt/libvirt/volume/fibrechannel.py           |    7 +-
nova/virt/libvirt/volume/fs.py                     |    2 +-
nova/virt/libvirt/volume/iscsi.py                  |    7 +-
nova/virt/libvirt/volume/lightos.py                |    7 +-
nova/virt/libvirt/volume/mount.py                  |    2 +-
nova/virt/libvirt/volume/nvme.py                   |    6 +-
nova/virt/libvirt/volume/quobyte.py                |    2 +-
nova/virt/libvirt/volume/scaleio.py                |    7 +-
nova/virt/libvirt/volume/smbfs.py                  |    2 +-
nova/virt/libvirt/volume/storpool.py               |    5 +-
nova/virt/libvirt/volume/volume.py                 |    2 +-
nova/virt/libvirt/volume/vzstorage.py              |    5 +-
nova/virt/vmwareapi/driver.py                      |   10 +
nova/virt/zvm/driver.py                            |    2 +
nova/volume/cinder.py                              |   41 +-
.../notes/az-filter-removal-587f7337040b6216.yaml  |   11 +
...libvirt-QEMU-version-bump-720b2528d521dfb1.yaml |   11 +
.../notes/bobcat-prelude-1bd68dd5133fe4dd.yaml     |   55 +
...ld-migrate-to-host-policy-a28b648dc16d2e3b.yaml |    6 +
.../bp-num_instances_weigher-bba342c82aac5509.yaml |   13 +
.../notes/bug-2022955-eac8b0c8e42e3696.yaml        |    7 +
.../notes/compute-object-ids-e6dee31eb7f1ce34.yaml |    8 +
...e-performance-degradation-3fdabc43398149b1.yaml |   21 +
.../delete-dangling-volumes-2615100187fe29fb.yaml  |   24 +
...eprecate-ironic-peer-list-ff8a502935faa045.yaml |   16 +
...ecate-legacy-quota-driver-56906ca0e2842839.yaml |    5 +
...erv-experimental-antelope-372e18a05cafc295.yaml |    6 +
...ypervisor-version-weigher-d0bba77e720edafe.yaml |   20 +
.../libvirt-tb-cache-size-c0d0d672c0950393.yaml    |   12 +
...ova-manage-limits-migrate-d1de95d20991674c.yaml |    7 +
...removed-shelved-offloaded-f1772a64be007b24.yaml |    6 +
.../quota-unshelve-offloaded-e4ea2d6a1449f549.yaml |    8 +
...remove-sqlalchemy-migrate-907c200314884d81.yaml |    5 +
.../notes/service-user-token-421d067c16257782.yaml |   11 +
...are-experimental-antelope-16a1342dd5e6ba09.yaml |    6 +
releasenotes/source/2023.1.rst                     |    6 +
releasenotes/source/index.rst                      |    1 +
.../locale/en_GB/LC_MESSAGES/releasenotes.po       |  694 ---------
.../source/locale/fr/LC_MESSAGES/releasenotes.po   |  126 --
requirements.txt                                   |    3 +-
.../files/setup_evacuate_resources.sh              |    7 +-
roles/run-evacuate-hook/files/test_evacuate.sh     |   21 +-
.../files/test_negative_evacuate.sh                |    7 +-
tools/check-cherry-picks.sh                        |    2 +-
tox.ini                                            |   26 +-
309 files changed, 6482 insertions(+), 5764 deletions(-)


Requirements updates
--------------------

diff --git a/requirements.txt b/requirements.txt
index 9954d06bc9..9be319ab76 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -19 +18,0 @@ PrettyTable>=0.7.1 # BSD
-sqlalchemy-migrate>=0.13.0 # Apache-2.0
@@ -56 +55 @@ os-resource-classes>=1.1.0 # Apache-2.0
-os-traits>=2.9.0 # Apache-2.0
+os-traits>=2.10.0 # Apache-2.0






More information about the Release-announce mailing list