Release-announce
Threads by month
- ----- 2025 -----
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- 1 participants
- 16682 discussions
We are chuffed to announce the release of:
nova 30.0.0
This release is part of the dalmatian 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 29.0.1..30.0.0
------------------------------
035b8404fc Fix regression with live migration on shared storage
2a870323c3 allow upgrade of pre-victoria InstanceNUMACells
1eb45e768a Add Dalmatian prelude section
521db4a435 repoduce post liberty pre vicoria instance numa db issue
8de15e9a27 only safety check bootable files created from glance
e310049eab Add functional repoducer for ephemeral disks
f8b2988f67 docs: update libvirt support matrix for C and D
2a1fad4145 nova-manage: modify image properties in request_spec
0d542f464b Add service version for Dalmatian
6535386dfa Update compute rpc alias for dalmatian
31accd37c8 doc: mark the maximum microversion for 2024.2 Dalmatian
0809f75d79 Skip snapshot test when missing qemu-img
329ff5e1a8 [ironic] Followup fixes around flavor ids
305a71e5f9 Ignore support-matrix.css
93b90d2b6a [ironic] Factor out metadata and send to ironic
aca63b66e5 Test live migration between hosts with differnet cpu_shared_sets
804bc98759 update nova-next to use ubuntu 24.04
5fa069c29a Delete ./doc/source/_static/support-matrix.css file
8464abe56c add pyproject.toml to support pip 23.1
d854e7cc16 Use format_inspector from oslo
e06890d101 libvirt: Add config option to require secure SPICE.
cd05be9738 Reproducer test for image property hw_architecture
3169e7cebd libvirt: Launch instances with stateless firmware
065bf99fc7 Fix deepcopy usage for BlockDeviceMapping in get_root_info
5890c257be Add hw_firmware_stateless image property
b475f0f99b Report availability of stateless firmware support
87ee88f10a [libvirt]log XML if nova fails to parse it
79d1f06094 libvirt: call get_capabilities() with all CPUs online
f8b98390dc Fix PCI passthrough cleanup on reschedule
c69a9eb87f Skip new image format tests
4678bcbb06 hardware: Correct log
068dbe0779 Deprecate AMI image formats
a2d77845ab Functional test test_boot_reschedule_with_proper_pci_device_count
c8674a88b6 libvirt: Report available TPM models
751c2e8b8b Fix s/addtional/additional/ typo
f63029b461 libvirt: Remove node device XML validate flags
c79a73bd42 Remove default override for RBAC config options
510cc2404e libvirt: Detect vtpm support by libvirt
9a11bb2523 libvirt: Ensure swtpm_ioctl is available for vTPM support
d5a631ba77 Remove AMI snapshot format special case
8b4c522f66 Change force_format strategy to catch mismatches
a3202f7bf9 Fix test_vmdk_bad_descriptor_mem_limit and test_vmdk_bad_descriptor_mem_limit_stream_optimized
2db06b58b1 api: Fix typo
f57176dd29 Correct info about volume-backed server rebuild
9a04ed79a3 conf: Clarify '[api] response_validation help' text
757c333c0e cpu: Only check governor type on online cores
e2697de8e4 [tools] Backport validator: handle unmaintained
b8f3975d36 [tools] Ignore bot generated patches
c6d8c6972d Stabilize iso format unit tests
ee3ec9b8f2 [ironic] Ensure we test iterators when needed
cc2514d02e fix qemu-img version dependent tests
b1cc39848e Add iso file format inspector
b5a1d3b4b2 Reproduce iso regression with deep format inspection
8558f59630 Fix port group network metadata generation
838daa3cad port format inspector tests from glance
f254729a56 scheduler: fix _get_sharing_providers to support unlimited aggr
08be7b2a0d Fix vmdk_allowed_types checking
b1b88bf001 Additional qemu safety checking on base images
9cdce71594 Check images with format_inspector for safety
ec9c55cbbc Reject qcow files with data-file attributes
c0ff2386ed Fix disk_formats in ceph job tempest config
64ac67fd19 api: Correct bug in flavors schema
438c405394 pre-commit: Bump autopep8 version and update repo
be029783dd api: Add response body validation helper
1a93703623 conf: Add '[api] response_validation' option
0021b840a2 tests: Ensure all APIs have a request query schema
41b436bff7 api: Add remaining missing query parameter schema
ff040ada4f api: Don't do version check if nothing required
b1824c5c97 api: Add 'removed' decorator
9b77bae8a3 [CI] Replace deprecated regex
7491417323 api: Migrate to JSON Schema Draft 2020-12
c382f036c3 tests: Ensure API schemas are valid
7e78623ac5 api: Fix bugs in schemas
917c4f0721 tests: Ensure all APIs have a request body schema
f86cd38dfe api: Add remaining missing request body schemas
847608e75a api: Add request body schemas for SG APIs
88b661b078 Handle neutron-client conflict
44c1b48b31 retry write_sys call on device busy
3811c7f648 tweak emulation job to avoid OOM errors
c7e49dfa16 docs: Follow up for persistent mdevs
ac8729ac87 [doc] Improve description for nova-manage db purge
ee581a5c9d add functional repoducer for bug 2065927
7ff24958ee fix py312 tox definitions
eed3e2b47f Stop using split UEC image (mostly)
84b0a481fe Enable OCaaS for several nova jobs
d45379c6b4 docs: Add more information about unified limits
bfd3525863 Fix formatting issues in extra-specs docs
50b180023f Make python 3.12 unit and functional voting
3f0879ccc3 Fix hacking test with syntax error
6ee938fd22 Fix notification object hashes for python 3.12
acbe3e28e5 do not use str(url) to stringify a URL for subsequent use
a4e72f71fc Upload glance image with --file in ceph job
3c0eadae0b Reject AZ changes during aggregate add / remove host
32546d9c1b Enable virtio-scsi in nova-next
2f0c340d39 Fix device_type=lun with boot_index
575ff86a4f Avoid setting serial on raw LUN devices
0e766885f6 [ironic] Fix rebooting instance
b4ff81c329 Remove old excludes
fa678870b2 reno: Update master for unmaintained/zed
25c13220c6 Note the deleyad address view
3cd26b0a08 scheduler: AggregateMultitenancyIsolation to support unlimited tenant
198805c7c5 Do not close returned image-chunk iterator & get_verifier early
43dadaeb90 Fix: migration configuration with cpu_shared_set (libvirt part)
2c3f4f2da5 Fix: migration configuration with cpu_shared_set (object part)
f3eb76e57b Validate flavor image min ram when resize volume-backed instance
b434b42761 Regression test for bug 2007968
dcc32981dd ignore sphinx-lint series in git blame
33a56781f4 fix sphinx-lint errors in docs and add ci
8b70e29487 Remove SQLAlchemy tips jobs
233fe1865f api: Keep track of action controllers
e504b76508 api: Remove FlavorManageController
cabb6999a3 api: Add missing Controller inheritance
33ba0f2935 Update contributor guide for 2024.2 Dalmatian
74befb68a7 libvirt: Create persistent mdevs
2a83043bcb Update min support for Dalmatian
f14c16af82 Make overcommit check for pinned instance pagesize aware
8f219fce3f Update master for stable/2024.1
1c02c0da17 Fix nova-manage image_property show unexpected keyword
37b5ed6450 reno: Update master for unmaintained/xena
e0107e286c reno: Update master for unmaintained/wallaby
fda1715744 reno: Update master for unmaintained/victoria
0246a5d66a Add a functest for verifying multiple VGPU allocations
a1a07e0d2d Refactor vf profile for PCI device
714894a7ff Server Rescue leads to Server ERROR state if original image is deleted
5b505dede9 libvirt: Ensure both swtpm and swtpm_setup exist for vTPM support
aa3e8fef7b Correctly reset instance task state in rebooting hard
131c6e0d20 tox: Drop envdir
5da11e4231 Fix tipo
e6f8bf5ff5 hardware: Fix image_meta.id within get_mem_encryption_constraint
406d590a36 Always delete NVRAM files when deleting instances
1c20647a14 doc: Fix markup syntax and typo
1a520f8e5d Fix wrong nova-manage command in upgrade check
a4a2b11fd1 Cleanup setup.py
18163761d0 Fix guard for NVMeOF volumes
489297d742 Add new nova.wsgi module
4e182a664e Remove nova.wsgi module
22631727b9 Update [scheduler] limit_tenants_to_placement_aggregate config help
Diffstat (except docs and test files)
-------------------------------------
.git-blame-ignore-revs | 6 +-
.gitignore | 1 +
.pre-commit-config.yaml | 11 +-
.zuul.yaml | 289 ++++--------
api-ref/source/os-aggregates.inc | 6 +
api-ref/source/parameters.yaml | 2 +
bindep.txt | 2 +
devstack/lib/mdev_samples | 6 +-
.../common_payloads/ImageMetaPropsPayload.json | 2 +-
.../instance-create-error.json | 4 +-
.../admin/configuration/hypervisor-vmware.rst | 2 +-
.../reference/libvirt-distro-support-matrix.rst | 12 +
nova/api/openstack/api_version_request.py | 4 +-
nova/api/openstack/common.py | 2 +-
nova/api/openstack/compute/admin_actions.py | 13 +-
nova/api/openstack/compute/agents.py | 15 +
nova/api/openstack/compute/aggregates.py | 6 +-
nova/api/openstack/compute/attach_interfaces.py | 2 +
nova/api/openstack/compute/availability_zone.py | 4 +
nova/api/openstack/compute/baremetal_nodes.py | 9 +-
nova/api/openstack/compute/cells.py | 26 ++
nova/api/openstack/compute/certificates.py | 13 +
nova/api/openstack/compute/cloudpipe.py | 19 +-
nova/api/openstack/compute/console_auth_tokens.py | 4 +
nova/api/openstack/compute/consoles.py | 15 +
nova/api/openstack/compute/deferred_delete.py | 4 +
nova/api/openstack/compute/extension_info.py | 6 +-
nova/api/openstack/compute/fixed_ips.py | 15 +
nova/api/openstack/compute/flavor_access.py | 8 +-
nova/api/openstack/compute/flavor_manage.py | 127 -----
nova/api/openstack/compute/flavors.py | 97 ++++
nova/api/openstack/compute/flavors_extraspecs.py | 8 +-
nova/api/openstack/compute/floating_ip_dns.py | 23 +-
nova/api/openstack/compute/floating_ip_pools.py | 3 +
nova/api/openstack/compute/floating_ips.py | 9 +-
nova/api/openstack/compute/floating_ips_bulk.py | 17 +
nova/api/openstack/compute/fping.py | 13 +
nova/api/openstack/compute/hosts.py | 4 +
nova/api/openstack/compute/hypervisors.py | 23 +-
nova/api/openstack/compute/image_metadata.py | 2 +
nova/api/openstack/compute/images.py | 5 +
nova/api/openstack/compute/instance_actions.py | 6 +-
.../openstack/compute/instance_usage_audit_log.py | 5 +-
nova/api/openstack/compute/ips.py | 4 +
nova/api/openstack/compute/keypairs.py | 2 +-
nova/api/openstack/compute/lock_server.py | 6 +-
nova/api/openstack/compute/networks.py | 20 +
nova/api/openstack/compute/networks_associate.py | 16 +
nova/api/openstack/compute/pause_server.py | 4 +
nova/api/openstack/compute/quota_classes.py | 3 +
nova/api/openstack/compute/quota_sets.py | 37 +-
nova/api/openstack/compute/remote_consoles.py | 7 +
nova/api/openstack/compute/rescue.py | 1 +
.../openstack/compute/rest_api_version_history.rst | 4 +-
nova/api/openstack/compute/routes.py | 9 +-
nova/api/openstack/compute/schemas/addresses.py | 25 +
.../{reset_server_state.py => admin_actions.py} | 14 +
nova/api/openstack/compute/schemas/agents.py | 19 +
nova/api/openstack/compute/schemas/aggregates.py | 19 +-
.../openstack/compute/schemas/attach_interfaces.py | 14 +
.../openstack/compute/schemas/availability_zone.py | 22 +
.../openstack/compute/schemas/baremetal_nodes.py | 21 +
nova/api/openstack/compute/schemas/cells.py | 24 +
nova/api/openstack/compute/schemas/certificates.py | 18 +
nova/api/openstack/compute/schemas/cloudpipe.py | 19 +
.../compute/schemas/console_auth_tokens.py | 18 +
nova/api/openstack/compute/schemas/consoles.py | 19 +
.../openstack/compute/schemas/deferred_delete.py | 31 ++
.../openstack/compute/schemas/extension_info.py | 25 +
nova/api/openstack/compute/schemas/fixed_ips.py | 19 +
.../api/openstack/compute/schemas/flavor_access.py | 7 +
.../api/openstack/compute/schemas/flavor_manage.py | 102 ----
nova/api/openstack/compute/schemas/flavors.py | 96 ++++
.../compute/schemas/flavors_extraspecs.py | 14 +
.../openstack/compute/schemas/floating_ip_dns.py | 19 +
.../openstack/compute/schemas/floating_ip_pools.py | 18 +
nova/api/openstack/compute/schemas/floating_ips.py | 13 +
.../openstack/compute/schemas/floating_ips_bulk.py | 20 +
nova/api/openstack/compute/schemas/fping.py | 17 +
nova/api/openstack/compute/schemas/hosts.py | 17 +-
nova/api/openstack/compute/schemas/hypervisors.py | 25 +-
.../openstack/compute/schemas/image_metadata.py | 6 +
nova/api/openstack/compute/schemas/images.py | 52 +++
.../openstack/compute/schemas/instance_actions.py | 18 +-
.../compute/schemas/instance_usage_audit_log.py | 23 +
nova/api/openstack/compute/schemas/ips.py | 17 +
nova/api/openstack/compute/schemas/lock_server.py | 21 +-
nova/api/openstack/compute/schemas/networks.py | 21 +
.../compute/schemas/networks_associate.py | 18 +
nova/api/openstack/compute/schemas/pause_server.py | 31 ++
.../api/openstack/compute/schemas/quota_classes.py | 9 +-
nova/api/openstack/compute/schemas/quota_sets.py | 15 +-
.../openstack/compute/schemas/remote_consoles.py | 4 +
nova/api/openstack/compute/schemas/rescue.py | 10 +
.../schemas/security_group_default_rules.py | 19 +
.../openstack/compute/schemas/security_groups.py | 101 ++++
.../compute/schemas/server_diagnostics.py | 18 +
.../api/openstack/compute/schemas/server_groups.py | 18 +-
.../openstack/compute/schemas/server_metadata.py | 14 +
.../openstack/compute/schemas/server_migrations.py | 15 +-
.../openstack/compute/schemas/server_password.py | 18 +
nova/api/openstack/compute/schemas/server_tags.py | 16 +-
.../openstack/compute/schemas/server_topology.py | 18 +
nova/api/openstack/compute/schemas/servers.py | 59 ++-
nova/api/openstack/compute/schemas/shelve.py | 29 ++
.../openstack/compute/schemas/suspend_server.py | 31 ++
.../openstack/compute/schemas/tenant_networks.py | 19 +
nova/api/openstack/compute/schemas/versions.py | 25 +
.../compute/schemas/virtual_interfaces.py | 16 +
.../openstack/compute/schemas/volume_attachment.py | 18 +
nova/api/openstack/compute/schemas/volumes.py | 14 +
.../compute/security_group_default_rules.py | 16 +
nova/api/openstack/compute/security_groups.py | 53 +--
nova/api/openstack/compute/server_diagnostics.py | 3 +
nova/api/openstack/compute/server_groups.py | 5 +-
nova/api/openstack/compute/server_metadata.py | 2 +
nova/api/openstack/compute/server_migrations.py | 2 +
nova/api/openstack/compute/server_password.py | 3 +
nova/api/openstack/compute/server_tags.py | 2 +
nova/api/openstack/compute/server_topology.py | 3 +
nova/api/openstack/compute/servers.py | 15 +-
nova/api/openstack/compute/shelve.py | 13 +-
nova/api/openstack/compute/suspend_server.py | 4 +
nova/api/openstack/compute/tenant_networks.py | 16 +-
nova/api/openstack/compute/versions.py | 5 +
nova/api/openstack/compute/versionsV21.py | 4 +
nova/api/openstack/compute/virtual_interfaces.py | 11 +
nova/api/openstack/compute/volumes.py | 12 +-
nova/api/openstack/wsgi.py | 22 +-
nova/api/validation/__init__.py | 111 ++++-
nova/api/validation/extra_specs/hw.py | 8 +-
nova/api/validation/extra_specs/quota.py | 4 +-
nova/api/validation/validators.py | 4 +-
nova/cmd/manage.py | 18 +-
nova/cmd/status.py | 4 +-
nova/compute/api.py | 104 +++++
nova/compute/claims.py | 3 +-
nova/compute/manager.py | 15 +-
nova/compute/rpcapi.py | 1 +
nova/conf/api.py | 35 +-
nova/conf/compute.py | 14 +
nova/conf/scheduler.py | 12 +-
nova/conf/spice.py | 17 +
nova/conf/workarounds.py | 10 +
nova/db/migration.py | 2 +-
nova/exception.py | 10 +
nova/filesystem.py | 55 ++-
nova/image/glance.py | 81 ++--
nova/network/neutron.py | 13 +-
nova/network/security_group_api.py | 15 +-
nova/notifications/objects/image.py | 3 +-
nova/objects/image_meta.py | 8 +-
nova/objects/instance_numa.py | 21 +-
nova/objects/migrate_data.py | 6 +-
nova/objects/service.py | 3 +-
nova/pci/manager.py | 4 +-
nova/policy.py | 8 +-
nova/scheduler/client/report.py | 52 ++-
.../filters/aggregate_multitenancy_isolation.py | 18 +-
nova/scheduler/utils.py | 27 +-
nova/service.py | 213 ++++++++-
.../functional/libvirt/test_live_migration.py | 17 +-
.../functional/libvirt/test_pci_sriov_servers.py | 62 +++
.../functional/libvirt/test_rescue_deleted_base.py | 182 ++++++++
.../functional/libvirt/test_stateless_firmware.py | 298 ++++++++++++
.../functional/regressions/test_bug_1951656.py | 26 +-
.../functional/regressions/test_bug_2007968.py | 67 +++
.../functional/regressions/test_bug_2062425.py | 52 +++
.../functional/regressions/test_bug_2079850.py | 95 ++++
.../openstack/compute/admin_only_action_common.py | 3 +-
.../api/openstack/compute/test_admin_actions.py | 11 +-
.../api/openstack/compute/test_baremetal_nodes.py | 6 +-
.../api/openstack/compute/test_certificates.py | 4 +-
.../api/openstack/compute/test_deferred_delete.py | 121 ++---
.../api/openstack/compute/test_flavor_access.py | 27 +-
.../api/openstack/compute/test_flavor_manage.py | 40 +-
.../unit/api/openstack/compute/test_lock_server.py | 4 +-
.../api/openstack/compute/test_pause_server.py | 31 +-
.../unit/api/openstack/compute/test_schemas.py | 146 ++++++
.../api/openstack/compute/test_security_groups.py | 299 ++++++------
.../api/openstack/compute/test_server_actions.py | 4 +-
.../openstack/compute/test_server_start_stop.py | 40 +-
.../unit/api/openstack/compute/test_servers.py | 40 +-
.../unit/api/openstack/compute/test_shelve.py | 8 +-
.../api/openstack/compute/test_suspend_server.py | 31 +-
.../notifications/objects/test_notification.py | 80 ++--
...est_aggregate_multitenancy_isolation_filters.py | 27 ++
nova/virt/block_device.py | 15 +-
nova/virt/driver.py | 105 ++++-
nova/virt/fake.py | 1 +
nova/virt/hardware.py | 92 +++-
nova/virt/images.py | 88 +++-
nova/virt/ironic/driver.py | 31 +-
nova/virt/ironic/patcher.py | 18 +-
nova/virt/libvirt/blockinfo.py | 11 +-
nova/virt/libvirt/config.py | 87 +++-
nova/virt/libvirt/cpu/api.py | 18 +-
nova/virt/libvirt/cpu/core.py | 12 +-
nova/virt/libvirt/driver.py | 401 +++++++++++-----
nova/virt/libvirt/guest.py | 5 +-
nova/virt/libvirt/host.py | 106 ++++-
nova/virt/libvirt/imagebackend.py | 52 ++-
nova/virt/libvirt/migration.py | 47 ++
nova/virt/libvirt/utils.py | 40 +-
nova/virt/vmwareapi/driver.py | 1 +
nova/virt/zvm/driver.py | 1 +
nova/wsgi.py | 225 ---------
nova/wsgi/__init__.py | 0
nova/wsgi/metadata.py | 24 +
nova/wsgi/osapi_compute.py | 24 +
playbooks/ceph/glance-setup.yaml | 2 +-
playbooks/nova-next/pre.yaml | 18 +
pyproject.toml | 3 +
.../add-nova-wsgi-module-3cc250a78fef7365.yaml | 22 +
.../notes/api-validation-8ad561407b52175f.yaml | 6 +
.../notes/bug-2052761-02a1f203c67f7124.yaml | 6 +
.../notes/bug-2080436-568b03b5b5ba5760.yaml | 8 +
.../notes/dalmatian-prelude-35a774ecc9e56004.yaml | 42 ++
.../deprecate-ami-images-feb10b7d0503fed5.yaml | 8 +
...tance-numa-object-upgrade-afa5bb96149ca2f5.yaml | 16 +
...ibvirt-stateless-firmware-1f1758c4df7c2d12.yaml | 8 +
...mage-property-bug-2078999-c493fc259d316c24.yaml | 8 +
.../notes/nvmeof-guard-0f99effdd03983b6.yaml | 6 +
.../notes/persistent-mdevs-2a69e44baae9d5ca.yaml | 12 +
...e-during-aggregate-update-64d319d0717ed704.yaml | 12 +
...lter-tenant-id-limitation-7aae698b02ec3bc2.yaml | 12 +
...e-with-deleted-base-image-5143f1c1c914b8fe.yaml | 10 +
...ers-max-uuids-per-request-f05da20c697e0922.yaml | 7 +
.../spice-direct-consoles-4bee40633633c971.yaml | 8 +
releasenotes/source/2024.1.rst | 6 +
releasenotes/source/index.rst | 1 +
releasenotes/source/victoria.rst | 2 +-
releasenotes/source/wallaby.rst | 2 +-
releasenotes/source/xena.rst | 2 +-
releasenotes/source/zed.rst | 2 +-
requirements.txt | 10 +-
setup.py | 9 -
test-requirements.txt | 2 +-
tools/check-cherry-picks.sh | 11 +-
tox.ini | 25 +-
338 files changed, 8593 insertions(+), 2709 deletions(-)
Requirements updates
--------------------
diff --git a/requirements.txt b/requirements.txt
index 93c845533c..ba5c4dca53 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -25 +25 @@ jsonschema>=4.0.0 # MIT
-python-cinderclient!=4.0.0,>=3.3.0 # Apache-2.0
+python-cinderclient>=4.0.1 # Apache-2.0
@@ -41 +41 @@ oslo.upgradecheck>=1.3.0
-oslo.utils>=4.12.1 # Apache-2.0
+oslo.utils>=7.3.0 # Apache-2.0
@@ -45 +45 @@ oslo.messaging>=14.1.0 # Apache-2.0
-oslo.policy>=3.11.0 # Apache-2.0
+oslo.policy>=4.4.0 # Apache-2.0
@@ -55 +55 @@ os-resource-classes>=1.1.0 # Apache-2.0
-os-traits>=3.0.0 # Apache-2.0
+os-traits>=3.1.0 # Apache-2.0
@@ -61 +61 @@ cursive>=0.2.1 # Apache-2.0
-retrying>=1.3.3,!=1.3.0 # Apache-2.0
+retrying>=1.3.3 # Apache-2.0
diff --git a/test-requirements.txt b/test-requirements.txt
index 04dcc056ee..ae5d8c8a45 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -2 +2 @@ hacking==6.1.0 # Apache-2.0
-coverage!=4.4,>=4.0 # Apache-2.0
+coverage>=4.4.1 # Apache-2.0
1
0
We are glad to announce the release of:
keystone 26.0.0
This release is part of the dalmatian release series.
The source is available from:
https://opendev.org/openstack/keystone
Download the package from:
https://tarballs.openstack.org/keystone/
Please report issues through:
https://bugs.launchpad.net/keystone/+bugs
For more details, please see below.
Changes in keystone 25.0.0..26.0.0
----------------------------------
170d9f480 Remove logic to support pysaml2<3.0.0
637fb7534 Remove support-matrix.css
69d1897d0 Implement the Domain Manager Persona for Keystone
8c3113b51 Update hacking to latest version
0d293d5c7 Enable hacking check in pre-commit
112331d9e Fix role statement in admin doc
4dbcce303 Replace deprecated in py312 datetime usages
e9513f8e4 Add keystone-manage reset_last_active command
d01cde5a1 Correct format for token expiration time
7ac0c3cd3 Update OIDC Apache config to avoid masking Keystone API endpoint
80db93089 Enable mypy
aa95af38e Enable non-voting OpenAPI build job
8416b72bf Re-join the strings after re-formatting
204ea4223 Move bandit to pre-commit
aaf0cc8fa Enable pyupgrade
55e8c1e60 Enable black in pre-commit
5f66f8d4a Add blackify commit to blame ignore
d4695b318 Only log a small debug message for NotFound
a00839ca0 Blackify the keystone code base
09c57923f Add a release note to cover fix of implied role for application credentials
c3c6d9854 Fix implied roles in the application credentials
24113bb18 Fix bindep for py312 job
430bebe37 Add pre-commit
53d547fcb Replace use of testtools.testcase.TestSkipped
bc57ccbc8 Remove dependency on pytz
41ab96ba8 Improve configuration of out-of-tree identity drivers
7f0adbb01 do not use str(url) to stringify a URL for subsequent use
0e0082176 Remove reference to devstack-gate
44e76c620 reno: Update master for unmaintained/zed
af53770e6 Make protection job voting again
5ead95ffc Allow domain users to manage credentials
522627de3 Allow domain admin to view roles
7a6e1a0bd Enable protection jobs
fe8b89a79 Remove SQLAlchemy tips jobs
b31007e1b Allow admin to access tokens and credentials
a05012938 Run Secure RBAC tests as project-admin
9a11c0c46 reno: Update master for unmaintained/xena
8762253c5 reno: Update master for unmaintained/wallaby
7af1d49c2 reno: Update master for unmaintained/victoria
88fcb38ca Update master for stable/2024.1
bd70653a2 Add test with noauth for s3tokens and ec2tokens
90dcff07c sql: Fixup for invalid unique constraint on external_id in access_rule table
27bf2482c tox: Drop envdir
a989cd7f0 Replace CRLF by LF
Diffstat (except docs and test files)
-------------------------------------
.git-blame-ignore-revs | 4 +
.gitignore | 2 +
.pre-commit-config.yaml | 60 +
.zuul.yaml | 27 +-
api-ref/source/conf.py | 2 +-
.../samples/OS-OAUTH2/token-create-response.json | 8 +-
bindep.txt | 3 +-
devstack/lib/scope.sh | 2 -
devstack/tools/oidc/setup_keycloak_client.py | 11 +-
keystone/api/_shared/EC2_S3_Resource.py | 45 +-
keystone/api/_shared/authentication.py | 119 +-
keystone/api/_shared/implied_roles.py | 19 +-
keystone/api/_shared/json_home_relations.py | 72 +-
keystone/api/_shared/saml.py | 25 +-
keystone/api/auth.py | 191 +-
keystone/api/credentials.py | 73 +-
keystone/api/discovery.py | 49 +-
keystone/api/domains.py | 215 +-
keystone/api/ec2tokens.py | 13 +-
keystone/api/endpoints.py | 51 +-
keystone/api/groups.py | 78 +-
keystone/api/limits.py | 42 +-
keystone/api/os_ep_filter.py | 167 +-
keystone/api/os_federation.py | 151 +-
keystone/api/os_inherit.py | 359 +-
keystone/api/os_oauth1.py | 137 +-
keystone/api/os_oauth2.py | 309 +-
keystone/api/os_revoke.py | 23 +-
keystone/api/os_simple_cert.py | 21 +-
keystone/api/policy.py | 47 +-
keystone/api/projects.py | 226 +-
keystone/api/regions.py | 32 +-
keystone/api/registered_limits.py | 46 +-
keystone/api/role_assignments.py | 173 +-
keystone/api/role_inferences.py | 27 +-
keystone/api/roles.py | 120 +-
keystone/api/s3tokens.py | 26 +-
keystone/api/services.py | 15 +-
keystone/api/system.py | 90 +-
keystone/api/trusts.py | 153 +-
keystone/api/users.py | 374 ++-
keystone/application_credential/backends/base.py | 7 +-
keystone/application_credential/backends/sql.py | 130 +-
keystone/application_credential/core.py | 115 +-
keystone/application_credential/schema.py | 26 +-
keystone/assignment/backends/base.py | 68 +-
keystone/assignment/backends/sql.py | 223 +-
keystone/assignment/core.py | 637 ++--
keystone/assignment/role_backends/base.py | 3 +-
.../assignment/role_backends/resource_options.py | 1 -
keystone/assignment/role_backends/sql.py | 48 +-
keystone/assignment/role_backends/sql_model.py | 30 +-
keystone/assignment/schema.py | 6 +-
keystone/auth/core.py | 228 +-
keystone/auth/plugins/application_credential.py | 14 +-
keystone/auth/plugins/base.py | 7 +-
keystone/auth/plugins/core.py | 77 +-
keystone/auth/plugins/external.py | 15 +-
keystone/auth/plugins/mapped.py | 228 +-
keystone/auth/plugins/oauth1.py | 17 +-
keystone/auth/plugins/password.py | 10 +-
keystone/auth/plugins/token.py | 31 +-
keystone/auth/plugins/totp.py | 35 +-
keystone/auth/schema.py | 91 +-
keystone/catalog/backends/base.py | 12 +-
keystone/catalog/backends/sql.py | 198 +-
keystone/catalog/backends/templated.py | 66 +-
keystone/catalog/core.py | 73 +-
keystone/catalog/schema.py | 57 +-
keystone/cmd/bootstrap.py | 157 +-
keystone/cmd/cli.py | 956 ++++--
keystone/cmd/doctor/__init__.py | 13 +-
keystone/cmd/doctor/caching.py | 6 +-
keystone/cmd/doctor/credential.py | 19 +-
keystone/cmd/doctor/database.py | 4 +-
keystone/cmd/doctor/debug.py | 1 -
keystone/cmd/doctor/federation.py | 1 -
keystone/cmd/doctor/ldap.py | 43 +-
keystone/cmd/doctor/security_compliance.py | 7 +-
keystone/cmd/doctor/tokens.py | 3 +-
keystone/cmd/doctor/tokens_fernet.py | 15 +-
keystone/cmd/idutils.py | 33 +-
keystone/cmd/manage.py | 12 +-
keystone/cmd/status.py | 38 +-
keystone/common/cache/_context_cache.py | 11 +-
keystone/common/cache/core.py | 26 +-
keystone/common/context.py | 10 +-
keystone/common/driver_hints.py | 29 +-
keystone/common/fernet_utils.py | 100 +-
keystone/common/json_home.py | 51 +-
keystone/common/jwt_utils.py | 4 +-
keystone/common/manager.py | 73 +-
keystone/common/password_hashing.py | 42 +-
keystone/common/policies/access_rule.py | 28 +-
keystone/common/policies/access_token.py | 70 +-
keystone/common/policies/application_credential.py | 44 +-
keystone/common/policies/auth.py | 60 +-
keystone/common/policies/base.py | 71 +-
keystone/common/policies/consumer.py | 52 +-
keystone/common/policies/credential.py | 53 +-
keystone/common/policies/domain.py | 40 +-
keystone/common/policies/domain_config.py | 141 +-
keystone/common/policies/ec2_credential.py | 55 +-
keystone/common/policies/endpoint.py | 59 +-
keystone/common/policies/endpoint_group.py | 198 +-
keystone/common/policies/grant.py | 179 +-
keystone/common/policies/group.py | 163 +-
keystone/common/policies/identity_provider.py | 59 +-
keystone/common/policies/implied_role.py | 106 +-
keystone/common/policies/limit.py | 39 +-
keystone/common/policies/mapping.py | 67 +-
keystone/common/policies/policy.py | 40 +-
keystone/common/policies/policy_association.py | 238 +-
keystone/common/policies/project.py | 166 +-
keystone/common/policies/project_endpoint.py | 96 +-
keystone/common/policies/protocol.py | 85 +-
keystone/common/policies/region.py | 47 +-
keystone/common/policies/registered_limit.py | 46 +-
keystone/common/policies/revoke_event.py | 4 +-
keystone/common/policies/role.py | 121 +-
keystone/common/policies/role_assignment.py | 36 +-
keystone/common/policies/service.py | 40 +-
keystone/common/policies/service_provider.py | 87 +-
keystone/common/policies/token.py | 40 +-
keystone/common/policies/token_revocation.py | 7 +-
keystone/common/policies/trust.py | 137 +-
keystone/common/policies/user.py | 94 +-
keystone/common/profiler.py | 25 +-
keystone/common/provider_api.py | 35 +-
keystone/common/rbac_enforcer/enforcer.py | 211 +-
keystone/common/rbac_enforcer/policy.py | 1 -
keystone/common/render_token.py | 48 +-
keystone/common/resource_options/core.py | 80 +-
.../common/resource_options/options/immutable.py | 35 +-
keystone/common/sql/core.py | 104 +-
keystone/common/sql/migrations/env.py | 6 +-
..._federation_attribute_mapping_schema_version.py | 10 +-
.../versions/27e647c0fad4_initial_version.py | 28 +-
.../c88cdce8f248_remove_duplicate_constraints.py | 1 -
keystone/common/sql/upgrades.py | 21 +-
keystone/common/tokenless_auth.py | 75 +-
keystone/common/utils.py | 99 +-
keystone/common/validation/parameter_types.py | 33 +-
keystone/common/validation/validators.py | 31 +-
keystone/conf/__init__.py | 46 +-
keystone/conf/application_credential.py | 29 +-
keystone/conf/assignment.py | 20 +-
keystone/conf/auth.py | 52 +-
keystone/conf/catalog.py | 36 +-
keystone/conf/constants.py | 10 +-
keystone/conf/credential.py | 50 +-
keystone/conf/default.py | 81 +-
keystone/conf/domain_config.py | 46 +-
keystone/conf/endpoint_filter.py | 15 +-
keystone/conf/endpoint_policy.py | 8 +-
keystone/conf/federation.py | 70 +-
keystone/conf/fernet_receipts.py | 15 +-
keystone/conf/fernet_tokens.py | 15 +-
keystone/conf/identity.py | 99 +-
keystone/conf/identity_mapping.py | 22 +-
keystone/conf/jwt_tokens.py | 20 +-
keystone/conf/ldap.py | 372 ++-
keystone/conf/oauth1.py | 22 +-
keystone/conf/oauth2.py | 19 +-
keystone/conf/opts.py | 7 +-
keystone/conf/policy.py | 15 +-
keystone/conf/receipt.py | 36 +-
keystone/conf/resource.py | 57 +-
keystone/conf/revoke.py | 32 +-
keystone/conf/role.py | 29 +-
keystone/conf/saml.py | 127 +-
keystone/conf/security_compliance.py | 66 +-
keystone/conf/shadow_users.py | 8 +-
keystone/conf/token.py | 62 +-
keystone/conf/tokenless_auth.py | 22 +-
keystone/conf/totp.py | 7 +-
keystone/conf/trust.py | 22 +-
keystone/conf/unified_limit.py | 36 +-
keystone/conf/wsgi.py | 8 +-
keystone/credential/backends/base.py | 8 +-
keystone/credential/backends/sql.py | 17 +-
keystone/credential/core.py | 96 +-
keystone/credential/provider.py | 3 +-
keystone/credential/providers/core.py | 2 +-
keystone/credential/providers/fernet/core.py | 26 +-
keystone/credential/schema.py | 36 +-
keystone/endpoint_policy/backends/base.py | 22 +-
keystone/endpoint_policy/backends/sql.py | 60 +-
keystone/endpoint_policy/core.py | 192 +-
keystone/exception.py | 439 ++-
keystone/federation/backends/base.py | 2 +-
keystone/federation/backends/sql.py | 71 +-
keystone/federation/core.py | 36 +-
keystone/federation/idp.py | 264 +-
keystone/federation/schema.py | 55 +-
keystone/federation/utils.py | 414 +--
keystone/i18n.py | 1 -
keystone/identity/backends/base.py | 37 +-
keystone/identity/backends/ldap/common.py | 1120 ++++---
keystone/identity/backends/ldap/core.py | 142 +-
keystone/identity/backends/ldap/models.py | 9 +-
keystone/identity/backends/resource_options.py | 116 +-
keystone/identity/backends/sql.py | 150 +-
keystone/identity/backends/sql_model.py | 228 +-
keystone/identity/core.py | 746 +++--
keystone/identity/generator.py | 5 +-
keystone/identity/id_generators/sha256.py | 1 +
keystone/identity/mapping_backends/base.py | 3 +-
keystone/identity/mapping_backends/mapping.py | 2 +-
keystone/identity/mapping_backends/sql.py | 23 +-
keystone/identity/schema.py | 83 +-
keystone/identity/shadow_backends/base.py | 19 +-
keystone/identity/shadow_backends/sql.py | 111 +-
keystone/limit/backends/base.py | 3 +-
keystone/limit/backends/sql.py | 103 +-
keystone/limit/core.py | 44 +-
keystone/limit/models/base.py | 18 +-
keystone/limit/models/strict_two_level.py | 114 +-
keystone/limit/schema.py | 90 +-
keystone/models/receipt_model.py | 12 +-
keystone/models/revoke_model.py | 109 +-
keystone/models/token_model.py | 122 +-
keystone/notifications.py | 426 ++-
keystone/oauth1/backends/base.py | 8 +-
keystone/oauth1/backends/sql.py | 69 +-
keystone/oauth1/core.py | 64 +-
keystone/oauth1/schema.py | 12 +-
keystone/oauth1/validator.py | 63 +-
keystone/oauth2/handlers.py | 19 +-
keystone/policy/backends/base.py | 3 +-
keystone/policy/backends/rules.py | 5 +-
keystone/policy/core.py | 3 +-
keystone/policy/schema.py | 13 +-
keystone/receipt/__init__.py | 5 +-
keystone/receipt/handlers.py | 23 +-
keystone/receipt/provider.py | 44 +-
keystone/receipt/providers/base.py | 2 +-
keystone/receipt/providers/fernet/__init__.py | 5 +-
keystone/receipt/providers/fernet/core.py | 20 +-
keystone/receipt/receipt_formatters.py | 37 +-
keystone/resource/backends/base.py | 3 +-
keystone/resource/backends/resource_options.py | 1 -
keystone/resource/backends/sql.py | 113 +-
keystone/resource/backends/sql_model.py | 52 +-
keystone/resource/config_backends/base.py | 7 +-
keystone/resource/config_backends/sql.py | 58 +-
keystone/resource/core.py | 749 +++--
keystone/resource/schema.py | 18 +-
keystone/revoke/backends/base.py | 6 +-
keystone/revoke/backends/sql.py | 47 +-
keystone/revoke/core.py | 83 +-
keystone/server/__init__.py | 20 +-
keystone/server/backends.py | 33 +-
keystone/server/flask/__init__.py | 14 +-
keystone/server/flask/application.py | 33 +-
keystone/server/flask/common.py | 339 +-
keystone/server/flask/core.py | 86 +-
.../server/flask/request_processing/json_body.py | 22 +-
.../request_processing/middleware/auth_context.py | 190 +-
.../request_processing/middleware/url_normalize.py | 2 +-
.../server/flask/request_processing/req_logging.py | 1 -
keystone/server/wsgi.py | 3 +-
.../protection/v3/test_application_credential.py | 373 ++-
.../application_credential/backends/test_sql.py | 54 +-
.../unit/application_credential/test_backends.py | 388 ++-
.../unit/assignment/role_backends/test_sql.py | 73 +-
.../unit/common/test_resource_options_common.py | 55 +-
.../unit/endpoint_policy/backends/test_base.py | 123 +-
.../unit/endpoint_policy/backends/test_sql.py | 14 +-
.../unit/identity/backends/test_ldap_common.py | 350 +-
.../unit/identity/shadow_users/test_backend.py | 100 +-
.../unit/receipt/test_receipt_serialization.py | 12 +-
.../unit/resource/config_backends/test_sql.py | 34 +-
.../test_associate_project_endpoint_extension.py | 1095 +++---
keystone/token/provider.py | 118 +-
keystone/token/providers/base.py | 2 +-
keystone/token/providers/fernet/core.py | 19 +-
keystone/token/providers/jws/core.py | 102 +-
keystone/token/token_formatters.py | 659 +++-
keystone/trust/backends/base.py | 13 +-
keystone/trust/backends/sql.py | 112 +-
keystone/trust/core.py | 107 +-
keystone/trust/schema.py | 28 +-
.../notes/bug-1794376-53ce14528f00f01d.yaml | 2 +-
.../notes/bug-2074018-28f7bbe8f28f5efe.yaml | 29 +
.../domain-manager-persona-7921587ce2fab4fd.yaml | 12 +
...credentials_implied_roles-b445fa56cb335a4d.yaml | 5 +
...rove-driver-donfiguration-ecedaf6ad0c3f9d2.yaml | 8 +
releasenotes/source/2024.1.rst | 6 +
releasenotes/source/conf.py | 32 +-
releasenotes/source/index.rst | 1 +
releasenotes/source/victoria.rst | 2 +-
releasenotes/source/wallaby.rst | 2 +-
releasenotes/source/xena.rst | 2 +-
releasenotes/source/zed.rst | 2 +-
requirements.txt | 1 -
setup.py | 4 +-
test-requirements.txt | 1 -
tox.ini | 33 +-
459 files changed, 47426 insertions(+), 32405 deletions(-)
Requirements updates
--------------------
diff --git a/requirements.txt b/requirements.txt
index 0c68696cb..d67878709 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -41 +40,0 @@ osprofiler>=1.4.0 # Apache-2.0
-pytz>=2013.6 # MIT
diff --git a/test-requirements.txt b/test-requirements.txt
index dd1d531f6..896593f17 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -6 +5,0 @@ freezegun>=0.3.6 # Apache-2.0
-pytz>=2013.6 # MIT
1
0
We are chuffed to announce the release of:
designate-dashboard 19.0.0
This release is part of the dalmatian release series.
The source is available from:
https://opendev.org/openstack/designate-dashboard
Download the package from:
https://tarballs.openstack.org/designate-dashboard/
Please report issues through:
https://bugs.launchpad.net/designate-dashboard/+bugs
For more details, please see below.
Changes in designate-dashboard 18.0.0..19.0.0
---------------------------------------------
db8894f reno: Update master for unmaintained/zed
18d8802 Imported Translations from Zanata
844e8bd Imported Translations from Zanata
fd20a6f Update master for stable/2024.1
Diffstat (except docs and test files)
-------------------------------------
releasenotes/source/2024.1.rst | 6 ++++++
releasenotes/source/index.rst | 1 +
.../source/locale/en_GB/LC_MESSAGES/releasenotes.po | 17 +++++++++++++++--
releasenotes/source/zed.rst | 2 +-
4 files changed, 23 insertions(+), 3 deletions(-)
1
0
We high-spiritedly announce the release of:
neutron-vpnaas-dashboard 11.0.0
This release is part of the dalmatian release series.
The source is available from:
https://opendev.org/openstack/neutron-vpnaas-dashboard
Download the package from:
https://tarballs.openstack.org/neutron-vpnaas-dashboard/
Please report issues through:
https://bugs.launchpad.net/neutron-vpnaas-dashboard/+bugs
For more details, please see below.
Changes in neutron-vpnaas-dashboard 10.0.0.0rc1..11.0.0
-------------------------------------------------------
6eac211 Explicitly convert ``assertQuerysetEqual`` input parameters
cca8eea Update master for stable/2024.1
e419adc reno: Update master for unmaintained/xena
9934b32 reno: Update master for unmaintained/wallaby
96aedd1 reno: Update master for unmaintained/victoria
Diffstat (except docs and test files)
-------------------------------------
releasenotes/source/2024.1.rst | 6 ++++++
releasenotes/source/index.rst | 1 +
releasenotes/source/victoria.rst | 2 +-
releasenotes/source/wallaby.rst | 2 +-
releasenotes/source/xena.rst | 2 +-
requirements.txt | 2 +-
7 files changed, 21 insertions(+), 9 deletions(-)
Requirements updates
--------------------
diff --git a/requirements.txt b/requirements.txt
index 529224e..d15169c 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -10 +10 @@ pbr!=2.1.0,>=2.0.0 # Apache-2.0
-horizon>=18.3.1 # Apache-2.0
+horizon>=23.4.0 # Apache-2.0
1
0
We are overjoyed to announce the release of:
watcher-dashboard 12.0.0
This release is part of the dalmatian release series.
The source is available from:
https://opendev.org/openstack/watcher-dashboard
Download the package from:
https://tarballs.openstack.org/watcher-dashboard/
Please report issues through:
https://bugs.launchpad.net/watcher-dashboard/+bugs
For more details, please see below.
Changes in watcher-dashboard 11.0.0..12.0.0
-------------------------------------------
0451ec9 Update master for stable/2024.1
Diffstat (except docs and test files)
-------------------------------------
releasenotes/source/2024.1.rst | 6 ++++++
releasenotes/source/index.rst | 1 +
2 files changed, 7 insertions(+)
1
0
We joyfully announce the release of:
vitrage-dashboard 7.0.0
This release is part of the dalmatian release series.
The source is available from:
https://opendev.org/openstack/vitrage-dashboard
Download the package from:
https://tarballs.openstack.org/vitrage-dashboard/
Please report issues through:
https://storyboard.openstack.org/#!/project/openstack/vitrage-
dashboard
For more details, please see below.
Changes in vitrage-dashboard 6.0.0..7.0.0
-----------------------------------------
9f8491d Update master for stable/2024.1
Diffstat (except docs and test files)
-------------------------------------
releasenotes/source/2024.1.rst | 6 ++++++
releasenotes/source/index.rst | 1 +
2 files changed, 7 insertions(+)
1
0
We are chuffed to announce the release of:
octavia 15.0.0
This release is part of the dalmatian release series.
The source is available from:
https://opendev.org/openstack/octavia
Download the package from:
https://pypi.org/project/octavia
Please report issues through:
https://storyboard.openstack.org/#!/project/908
For more details, please see below.
Changes in octavia 14.0.0..15.0.0
---------------------------------
835d5bfb Imported Translations from Zanata
8b8d969d Fix SR-IOV when VIP interface is used for members
ec9a5059 Fix loadbalancer stuck in cascade delete
659500bc Remove use of sphinxcontrib-*diag packages
e103dd58 Imported Translations from Zanata
fa004b66 Cleanup py27 support
a4317a80 Fix failover when using SRIOV VIP
0aaec145 Fix test_update_load_balancer_status
0aef474c Add spec for rate limiting
1b09ba8f Add spec for custom SGs on VIP ports
240347fc Fix tests for oslo.policy new defaults enable by default
c9b15db3 Fix IPv6 tempest job
f5b73d8e Stop using DHCP for o-hm0 interface in devstack
1c027c84 Do not install qemu in the Octavia devstack plugin
06fccc6d Update the Grafana dashboard for HAProxy 2.4+
29855ddc Add specs to resize a load balancer
7376a4ad Fix functional-py31{1,2} tests
991e0da0 Remove sysvinit/upstart support
83013480 Update cryptography requirement
85c12eb7 Remove deprecated [haproxy_amphora] use_upstart
fc7c6199 Remove deprecated [amphora_agent] agent_server_network_file
e8fd3b78 Don't install firewalld in the amphora
310cf313 Replace use of deprecated cert.not_valid_after
5c0b011e curl-minimal conflicts with already installed curl
0cea8d67 Drop usage of subtransactions=True
b1650fcd String conversion to f-strings
42bfac51 Use built-in json module
70f15c54 Fix listener update when using SRIOV VIP
bc259c0b Fix new pylint errors
800b4518 Remove SQLAlchemy tips jobs
29df1786 Ignore temp file created by coverage
874ec069 Remove deprecated [health_manager] health_update_driver
cdbcc3fd Fix incorrect filtering when using bool attrs
08fca664 Fix test_prometheus_proxy.test_main
cee4514e reno: Update master for unmaintained/zed
f5349aca Check haproxy status on reload
176fc1c4 Updates for new Python runtimes in 2024.2
4e6121d9 Fix migration scripts with SQLAlchemy 2.0
d0c29009 SQLAlchemy 2.0: Drop use of removed autoload
85cfb6c2 Fix negative or 0 limit parameter in pagination
824b51a1 Handle empty delay on update healthmonitor
c19c69e6 Add pyupgrade hook to pre-commit config
6bbdd488 pyupgrade changes for Python3.8+ (7)
ba3bbfa8 pyupgrade changes for Python3.8+ (6)
a0360f97 pyupgrade changes for Python3.8+ (5)
0009c7cd pyupgrade changes for Python3.8+ (4)
3d336095 pyupgrade changes for Python3.8+ (3)
9b1b8a3b pyupgrade changes for Python3.8+ (2)
69552a20 pyupgrade changes for Python3.8+ (1)
e4d71867 Update master for stable/2024.1
5d9b23c6 Fix fully-populated API with allowed_cidrs
37b944d8 jobboard: Support authentication and SSL for Redis Sentinel
0bfccba1 Fix port abandonment on failover flow revert
1d0e514c Drop redundant envdir
1740e335 devstack: Drop removed services
911faf26 Fixed VRRP nopreempt option
d7b09070 Add check for duplicate members in batch update
845a30db Remove executable flag from some files
Diffstat (except docs and test files)
-------------------------------------
.gitignore | 1 +
.pre-commit-config.yaml | 5 +
devstack/contrib/new-octavia-devstack.sh | 4 +-
devstack/plugin.sh | 62 +-
devstack/samples/multinode/Vagrantfile | 0
devstack/samples/multinode/local.conf | 1 -
devstack/samples/singlenode/Vagrantfile | 0
devstack/samples/singlenode/local.conf | 1 -
devstack/settings | 4 -
.../75-amphora-agent-install | 8 -
elements/amphora-agent/package-installs.yaml | 4 +
elements/amphora-agent/pkg-map | 1 -
.../static/usr/local/bin/lvs-masquerade.sh | 62 +-
elements/certs-ramfs/init-scripts/sysv/certs-ramfs | 39 -
.../init-scripts/upstart/certs-ramfs.conf | 14 -
.../post-install.d/30-enable-certs-ramfs-service | 4 -
etc/dhcp/dhclient.conf | 2 -
etc/grafana/OctaviaAmphoraDashboard.json | 15821 ++++++++++---------
octavia/amphorae/backends/agent/agent_jinja_cfg.py | 5 +-
.../backends/agent/api_server/amphora_info.py | 10 +-
.../backends/agent/api_server/keepalived.py | 79 +-
.../backends/agent/api_server/keepalivedlvs.py | 127 +-
.../backends/agent/api_server/loadbalancer.py | 206 +-
.../backends/agent/api_server/lvs_listener_base.py | 2 +-
.../amphorae/backends/agent/api_server/osutils.py | 19 +-
octavia/amphorae/backends/agent/api_server/plug.py | 25 +-
.../amphorae/backends/agent/api_server/server.py | 7 +-
.../api_server/templates/keepalived.sysvinit.j2 | 87 -
.../api_server/templates/keepalived.upstart.j2 | 29 -
.../templates/keepalived_lvs_check_script.sh.j2 | 4 -
.../agent/api_server/templates/sysvinit.conf.j2 | 232 -
.../agent/api_server/templates/upstart.conf.j2 | 71 -
octavia/amphorae/backends/agent/api_server/util.py | 91 +-
.../agent/templates/amphora_agent_conf.template | 3 -
.../backends/health_daemon/health_daemon.py | 13 +-
.../backends/health_daemon/health_sender.py | 4 +-
octavia/amphorae/backends/utils/haproxy_query.py | 9 +-
octavia/amphorae/backends/utils/interface.py | 61 +-
octavia/amphorae/backends/utils/interface_file.py | 45 +-
.../amphorae/backends/utils/ip_advertisement.py | 2 +-
.../amphorae/backends/utils/keepalivedlvs_query.py | 15 +-
.../amphorae/backends/utils/network_namespace.py | 6 +-
octavia/amphorae/backends/utils/nftable_utils.py | 44 +-
octavia/amphorae/drivers/driver_base.py | 4 +-
.../amphorae/drivers/haproxy/rest_api_driver.py | 64 +-
octavia/amphorae/drivers/health/heartbeat_udp.py | 2 +-
.../amphorae/drivers/keepalived/jinja/jinja_cfg.py | 3 +-
.../jinja/templates/keepalived_base.template | 1 -
octavia/amphorae/drivers/noop_driver/driver.py | 2 +-
octavia/api/app.py | 3 +-
octavia/api/common/pagination.py | 38 +-
octavia/api/common/types.py | 2 +-
octavia/api/drivers/amphora_driver/v2/driver.py | 12 +-
.../api/drivers/driver_agent/driver_listener.py | 6 +-
octavia/api/drivers/driver_agent/driver_updater.py | 2 +-
octavia/api/drivers/noop_driver/driver.py | 2 +-
octavia/api/root_controller.py | 4 +-
octavia/api/v2/controllers/base.py | 6 +-
octavia/api/v2/controllers/health_monitor.py | 8 +-
octavia/api/v2/controllers/listener.py | 4 +-
octavia/api/v2/controllers/load_balancer.py | 7 +
octavia/api/v2/controllers/member.py | 14 +-
octavia/api/v2/types/amphora.py | 2 +-
octavia/api/v2/types/availability_zone_profile.py | 3 +-
octavia/api/v2/types/availability_zones.py | 3 +-
octavia/api/v2/types/flavor_profile.py | 2 +-
octavia/api/v2/types/flavors.py | 2 +-
octavia/api/v2/types/health_monitor.py | 2 +-
octavia/api/v2/types/l7policy.py | 2 +-
octavia/api/v2/types/l7rule.py | 2 +-
octavia/api/v2/types/listener.py | 6 +-
octavia/api/v2/types/load_balancer.py | 6 +-
octavia/api/v2/types/member.py | 4 +-
octavia/api/v2/types/pool.py | 4 +-
octavia/api/v2/types/quotas.py | 4 +-
octavia/certificates/common/barbican.py | 2 +-
octavia/certificates/common/cert.py | 2 +-
octavia/certificates/generator/cert_gen.py | 2 +-
octavia/certificates/generator/local.py | 10 +-
octavia/certificates/manager/cert_mgr.py | 2 +-
octavia/certificates/manager/local.py | 40 +-
octavia/cmd/agent.py | 6 +-
octavia/cmd/driver_agent.py | 5 +-
octavia/cmd/health_checker.py | 8 +-
octavia/cmd/interface.py | 8 +-
octavia/cmd/prometheus_proxy.py | 24 +-
octavia/common/base_taskflow.py | 6 +-
octavia/common/clients.py | 8 +-
octavia/common/config.py | 42 +-
octavia/common/constants.py | 63 +-
octavia/common/data_models.py | 4 +-
.../jinja/haproxy/combined_listeners/jinja_cfg.py | 10 +-
octavia/common/jinja/logging/logging_jinja_cfg.py | 2 +-
octavia/common/jinja/lvs/jinja_cfg.py | 2 +-
octavia/common/jinja/user_data_jinja_cfg.py | 2 +-
octavia/common/keystone.py | 2 +-
octavia/common/policy.py | 5 +-
octavia/common/stats.py | 2 +-
octavia/common/tls_utils/cert_parser.py | 3 +-
octavia/common/utils.py | 6 +-
octavia/common/validate.py | 22 +-
octavia/compute/compute_base.py | 2 +-
octavia/compute/drivers/noop_driver/driver.py | 2 +-
octavia/compute/drivers/nova_driver.py | 2 +-
octavia/controller/healthmanager/health_manager.py | 2 +-
octavia/controller/housekeeping/house_keeping.py | 4 +-
octavia/controller/queue/v2/consumer.py | 3 +-
octavia/controller/queue/v2/endpoints.py | 2 +-
octavia/controller/worker/amphora_rate_limit.py | 12 +-
octavia/controller/worker/task_utils.py | 2 +-
octavia/controller/worker/v2/controller_worker.py | 6 +-
.../controller/worker/v2/flows/amphora_flows.py | 19 +-
octavia/controller/worker/v2/flows/flow_utils.py | 11 +-
.../worker/v2/flows/health_monitor_flows.py | 2 +-
.../controller/worker/v2/flows/l7policy_flows.py | 2 +-
octavia/controller/worker/v2/flows/l7rule_flows.py | 2 +-
.../controller/worker/v2/flows/listener_flows.py | 24 +-
.../worker/v2/flows/load_balancer_flows.py | 2 +-
octavia/controller/worker/v2/flows/member_flows.py | 31 +-
octavia/controller/worker/v2/flows/pool_flows.py | 2 +-
.../worker/v2/taskflow_jobboard_driver.py | 20 +-
.../controller/worker/v2/tasks/compute_tasks.py | 4 +-
.../controller/worker/v2/tasks/network_tasks.py | 7 +-
octavia/db/base_models.py | 30 +-
.../versions/034756a182a2_amphora_add_image_id.py | 4 +-
.../034b2dc2f3e0_modernize_l7policy_fields.py | 62 +-
.../versions/0f242cf02c74_add_provider_column.py | 4 +-
.../10d38216ad34_add_timestamps_to_amphora.py | 8 +-
.../versions/11e4bb2bb8ef_fix_ipv6_vip.py | 2 +-
.../13500e2e978d_update_url_and_name_size.py | 12 +-
.../versions/14892634e228_update_vip.py | 10 +-
...09101b9b_add_server_group_id_to_loadbalancer.py | 4 +-
.../1afc932f1ca2_l7rule_support_client_cert.py | 6 +-
...c1d83044c_keepalived_configuration_datamodel.py | 52 +-
...16465_adding_terminate_https_tls_ref_support.py | 8 +-
.../256852d5ff7c_add_lb_network_ip_to_amphora.py | 4 +-
...0c3cd_add_monitor_address_and_port_to_member.py | 8 +-
...40a7_add_amphora_vrrp_port_id_and_ha_port_id.py | 8 +-
.../versions/29ff921a6eb_shared_pools.py | 6 +-
...353f_add_listener_client_ca_tls_certificate_.py | 4 +-
...53ded67_allow_multiple_vips_per_loadbalancer.py | 20 +-
.../32e5c35b26a8_add_l7policy_and_l7rule_quota.py | 8 +-
...a6d5ac_update_lb_and_amphora_data_model_for_.py | 40 +-
.../versions/35dee79d5865_initial_create.py | 370 +-
.../versions/36b94648fef8_add_timestamp.py | 4 +-
.../392fb85b4419_add_primary_key_to_spares_pool.py | 2 +-
.../3a1e1cdb7b27_rename_amphora_host_id.py | 2 +-
...c848b96_create_no_monitor_operational_status.py | 2 +-
...e5b37a0bdb9_add_vrrp_ip_and_ha_ip_to_amphora.py | 8 +-
.../versions/3f8ff3be828e_create_quotas_table.py | 24 +-
.../43287cd10fef_make_pool_lb_algorithm_larger.py | 12 +-
.../versions/443fe6676637_add_network_id_to_vip.py | 4 +-
...683_adding_name_column_to_member_and_health_.py | 2 +-
.../versions/458c9ee2a011_l7_policies_and_rules.py | 114 +-
.../46d914b2a5e5_seed_the_spares_pool_table.py | 4 +-
.../48660b6643f0_add_new_states_for_amphora.py | 6 +-
.../4aeb9e23ad43_add_draining_operating_status.py | 2 +-
.../4c094013699a_update_load_balancer_amphora.py | 18 +-
.../versions/4f65b4f91c39_amphora_add_flavor_id.py | 4 +-
.../4faaa983e7a9_update_member_address_column.py | 2 +-
.../4fe8240425b4_update_vip_add_subnet_id.py | 4 +-
...52377704420e_add_timestamps_to_healthmonitor.py | 18 +-
.../5309960964f8_add_proxy_protocol_for_pool.py | 6 +-
...56_add_a_column_busy_in_table_amphora_health.py | 4 +-
...4a4ceed6_add_l7policy_action_redirect_prefix.py | 10 +-
..._add_cert_expiration__infor_in_amphora_table.py | 8 +-
.../62816c232310_fix_migration_for_mysql_5_7.py | 2 +-
...6742ca1b27c2_add_l7policy_redirect_http_code.py | 4 +-
...ac558d7fc21_add_prometheus_listener_protocol.py | 6 +-
.../versions/6ffc710674ef_spares_pool_table.py | 4 +-
..._http_host_head_inject_for_http_health_check.py | 8 +-
...ae261694c_extend_pool_for_backend_ca_and_crl.py | 8 +-
.../76aacf2e176c_extend_support_udp_protocol.py | 6 +-
.../versions/80dba23a159f_tags_support.py | 6 +-
.../82b9402e71fd_update_vip_address_size.py | 2 +-
.../8ac4ed24df3a_add_availability_zone_to_lb.py | 8 +-
.../versions/8b47b2546312_sctp_support.py | 4 +-
...df6c3_change_tls_container_id_length_in_sni_.py | 2 +-
.../92fe9857279_create_healthmanager_table.py | 6 +-
...473976d6d_add_provisioning_status_to_objects.py | 20 +-
...extend_pool_for_support_backend_reencryption.py | 4 +-
...cd221f_add_tls_boolean_type_for_reencryption.py | 4 +-
...03669314_add_flavor_and_flavor_profile_table.py | 36 +-
.../ba35e0fb88e1_add_backup_field_to_member.py | 4 +-
.../bf171d0d91c3_amphora_add_cached_zone.py | 4 +-
.../c761c8a71579_add_availability_zone_table.py | 30 +-
.../versions/d85ca7258d21_modernize_l7rule.py | 26 +-
.../da371b422669_allowed_cidr_for_listeners.py | 14 +-
...dcf88e59aae4_add_lb_algorithm_source_ip_port.py | 6 +-
.../e37941b010db_add_lb_flavor_constraint.py | 22 +-
...2bda93bf_add_ping_and_tlshello_monitor_types.py | 6 +-
.../e6ee84f0abf3_add_proxy_v2_pool_protocol.py | 6 +-
...72b4e5e_add_octavia_owned_vip_column_to_vip_.py | 4 +-
.../f21ae3f21adc_add_client_auth_option.py | 12 +-
...a7d8a_create_amphora_build_rate_limit_tables.py | 22 +-
...d172e98c1_add_certificate_revoke_list_option.py | 4 +-
octavia/db/models.py | 2 +-
octavia/db/repositories.py | 6 +-
octavia/distributor/drivers/driver_base.py | 2 +-
octavia/distributor/drivers/noop_driver/driver.py | 2 +-
octavia/hacking/checks.py | 8 +-
octavia/image/drivers/noop_driver/driver.py | 2 +-
octavia/image/image_base.py | 2 +-
octavia/network/base.py | 2 +-
.../drivers/neutron/allowed_address_pairs.py | 20 +-
octavia/network/drivers/neutron/base.py | 6 +-
octavia/network/drivers/noop_driver/driver.py | 2 +-
octavia/policies/amphora.py | 18 +-
octavia/policies/availability_zone.py | 15 +-
octavia/policies/availability_zone_profile.py | 20 +-
octavia/policies/base.py | 21 +-
octavia/policies/flavor.py | 15 +-
octavia/policies/flavor_profile.py | 15 +-
octavia/policies/healthmonitor.py | 18 +-
octavia/policies/l7policy.py | 18 +-
octavia/policies/l7rule.py | 15 +-
octavia/policies/listener.py | 21 +-
octavia/policies/loadbalancer.py | 27 +-
octavia/policies/member.py | 15 +-
octavia/policies/pool.py | 18 +-
octavia/policies/provider.py | 3 +-
octavia/policies/provider_availability_zone.py | 4 +-
octavia/policies/provider_flavor.py | 3 +-
octavia/policies/quota.py | 18 +-
octavia/statistics/stats_base.py | 2 +-
.../backend/agent/api_server/test_keepalivedlvs.py | 98 +-
.../backend/agent/api_server/test_server.py | 431 +-
.../api/drivers/driver_agent/test_driver_agent.py | 21 +-
.../api/v2/test_availability_zone_profiles.py | 27 +-
.../functional/api/v2/test_availability_zones.py | 38 +-
.../functional/api/v2/test_flavor_profiles.py | 39 +-
.../backends/agent/api_server/test_amphora_info.py | 121 +-
.../backends/agent/api_server/test_keepalived.py | 6 +-
.../agent/api_server/test_keepalivedlvs.py | 20 +-
.../backends/agent/api_server/test_loadbalancer.py | 128 +-
.../backends/agent/api_server/test_osutils.py | 40 +-
.../backends/agent/api_server/test_plug.py | 20 +-
.../backends/agent/api_server/test_util.py | 36 +-
.../backends/agent/test_agent_jinja_cfg.py | 13 -
.../backends/health_daemon/test_health_daemon.py | 20 +-
.../amphorae/backends/utils/test_haproxy_query.py | 2 +-
.../unit/amphorae/backends/utils/test_interface.py | 127 +-
.../amphorae/backends/utils/test_interface_file.py | 64 +-
.../backends/utils/test_network_namespace.py | 10 +-
.../amphorae/backends/utils/test_nftable_utils.py | 50 +-
.../drivers/haproxy/test_rest_api_driver_1_0.py | 195 +-
.../amphorae/drivers/health/test_heartbeat_udp.py | 16 +-
.../drivers/keepalived/jinja/test_jinja_cfg.py | 4 -
.../api/v2/types/test_availability_zone_profile.py | 2 +-
.../unit/api/v2/types/test_availability_zones.py | 2 +-
.../unit/certificates/generator/test_local.py | 10 +-
.../unit/certificates/manager/test_barbican.py | 5 +-
.../certificates/manager/test_barbican_legacy.py | 2 +-
.../haproxy/combined_listeners/test_jinja_cfg.py | 387 +-
.../common/jinja/logging/test_logging_jinja_cfg.py | 2 +-
.../sample_configs/sample_configs_combined.py | 3 +-
.../unit/common/tls_utils/test_cert_parser.py | 5 +-
.../worker/v2/flows/test_listener_flows.py | 25 +-
.../worker/v2/flows/test_load_balancer_flows.py | 10 +-
.../worker/v2/tasks/test_network_tasks.py | 8 +-
.../controller/worker/v2/tasks/test_retry_tasks.py | 2 +-
.../controller/worker/v2/test_controller_worker.py | 57 +-
.../worker/v2/test_taskflow_jobboard_driver.py | 348 +
.../unit/image/drivers/noop_driver/test_driver.py | 2 +-
.../unit/network/drivers/neutron/test_base.py | 2 +-
.../unit/statistics/drivers/test_update_db.py | 2 +-
octavia/volume/drivers/noop_driver/driver.py | 2 +-
octavia/volume/volume_base.py | 2 +-
...ner-Update-for-SRIOV-VIPs-8348b7fe0c02b9c4.yaml | 4 +
...rface-is-used-for-members-adb150ece454ecff.yaml | 5 +
...itor-update-without-delay-c56240e59e15483f.yaml | 4 +
...x-failover-for-SRIOV-VIPs-e2ab193c0de5eb1d.yaml | 4 +
...failover-revert-port-leak-d9879523506c6ff3.yaml | 7 +
...nation-less-or-equal-zero-93a33f1318ea34e5.yaml | 6 +
...e-members-in-batch-update-610ffbbf949927d0.yaml | 10 +
...g-with-boolean-attributes-15df51820753a900.yaml | 5 +
...ulated-with-allowed-cidrs-ad04ccf02bf9cbbc.yaml | 7 +
...dbalancer-stuck-on-delete-da5950cf87fc8507.yaml | 5 +
...dis-sentinel-auth-and-ssl-be1888903d68922d.yaml | 13 +
...agent_server_network_file-1c9ab712d6b05016.yaml | 5 +
...ault-role-from-keepalived-c879bad3a42a6b4a.yaml | 8 +
...move-health_update_driver-56c99ec977bca245.yaml | 9 +
...move-sysvinit-and-upstart-f1655e9d0c53e5cc.yaml | 13 +
.../notes/remove-use_upstart-448eaf86a7a46c54.yaml | 4 +
...r-haproxy-crash-on-reload-813859171a6ac023.yaml | 7 +
releasenotes/source/2024.1.rst | 6 +
releasenotes/source/conf.py | 1 -
releasenotes/source/index.rst | 1 +
.../locale/en_GB/LC_MESSAGES/releasenotes.po | 121 +-
releasenotes/source/zed.rst | 2 +-
requirements.txt | 3 +-
setup.cfg | 3 +-
setup.py | 1 -
specs/template.rst | 71 -
specs/version0.5/amphora-driver-interface.rst | 2 -
specs/version0.5/amphora-manager-interface.rst | 0
.../version0.5/housekeeping-manager-interface.rst | 0
.../custom-security-groups-for-VIP-ports.rst | 203 +
specs/version15.0/rate_limiting.rst | 244 +
specs/version15.0/resize.rst | 149 +
tools/create_flow_docs.py | 2 +-
tools/pkcs7_to_pem.py | 2 +-
tox.ini | 7 +-
zuul.d/jobs.yaml | 41 +-
zuul.d/projects.yaml | 28 +-
346 files changed, 12312 insertions(+), 11210 deletions(-)
Requirements updates
--------------------
diff --git a/requirements.txt b/requirements.txt
index d3acbd82..05a07261 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -49 +48,0 @@ octavia-lib>=3.3.0 # Apache-2.0
-simplejson>=3.13.2 # MIT
@@ -55 +54 @@ Flask!=0.11,>=0.10 # BSD
-cryptography>=3.0 # BSD/Apache-2.0
+cryptography>=42.0.0 # BSD/Apache-2.0
1
0
We are excited to announce the release of:
skyline-apiserver 5.0.0
This release is part of the dalmatian release series.
The source is available from:
https://opendev.org/openstack/skyline-apiserver
Download the package from:
https://tarballs.openstack.org/skyline-apiserver/
Please report issues through:
https://bugs.launchpad.net/skyline-apiserver/+bugs
For more details, please see below.
Changes in skyline-apiserver 4.0.1..5.0.0
-----------------------------------------
4e06ed4 feat: region field change to optional in login API
2a3a08e Change to use shell cat to fetch commit_id
d3c48c1 fix: Use update instead of insert
ce7d977 fix: Update databases package version
075d572 reno: Update master for unmaintained/zed
eea81ce Fix skyline-apiserver on python3.11
ef9de18 zuul: Use default python3 job template
948228e Update master for stable/2024.1
Diffstat (except docs and test files)
-------------------------------------
.zuul.yaml | 39 +-----------------------
Makefile | 4 +--
releasenotes/source/2024.1.rst | 6 ++++
releasenotes/source/index.rst | 1 +
releasenotes/source/zed.rst | 2 +-
requirements.txt | 6 ++--
setup.cfg | 2 ++
skyline_apiserver/api/v1/extension.py | 6 ++--
skyline_apiserver/api/v1/login.py | 13 ++++----
skyline_apiserver/api/v1/policy.py | 6 ++--
skyline_apiserver/db/api.py | 20 ++++++------
skyline_apiserver/schemas/login.py | 2 +-
swagger.json | 3 +-
tox.ini | 23 +++++++-------
15 files changed, 53 insertions(+), 82 deletions(-)
Requirements updates
--------------------
diff --git a/requirements.txt b/requirements.txt
index af7c09a..0fa3b41 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -3 +3 @@ fastapi<=0.58.1 # MIT
-pydantic<=1.8.2 # MIT
+pydantic<=1.10.0 # MIT
@@ -7,2 +7,2 @@ python-jose<=3.3.0 # MIT
-databases<=0.8.0 # BSD License (3 clause)
-aiomysql<=0.1.1 # MIT
+databases>=0.9.0 # BSD License (3 clause)
+aiomysql>=0.2.0 # MIT
1
0
We contentedly announce the release of:
mistral-dashboard 19.0.0
This release is part of the dalmatian release series.
The source is available from:
https://opendev.org/openstack/mistral-dashboard
Download the package from:
https://pypi.org/project/mistral-dashboard
Please report issues through:
https://bugs.launchpad.net/mistral/+bugs
For more details, please see below.
Changes in mistral-dashboard 18.0.0..19.0.0
-------------------------------------------
63daad4 Update master for stable/2024.1
Diffstat (except docs and test files)
-------------------------------------
releasenotes/source/2024.1.rst | 6 ++++++
releasenotes/source/index.rst | 1 +
2 files changed, 7 insertions(+)
1
0
We are pleased to announce the release of:
neutron 25.0.0
This release is part of the dalmatian release series.
The source is available from:
https://opendev.org/openstack/neutron
Download the package from:
https://tarballs.openstack.org/neutron/
Please report issues through:
https://bugs.launchpad.net/neutron/+bugs
For more details, please see below.
25.0.0
^^^^^^
Bug Fixes
* Fixes an issue when associating floating IPs to OVN load
balancers. See LP#2068644 for more details.
Changes in neutron 24.0.0.0rc1..25.0.0
--------------------------------------
2b42242a69 Correct logic error when associating FIP with OVN LB
962d956269 Handle EndpointNotFound in nova notifier
d2ef2ea1c0 Change the load method of SG rule "default_security_group"
c518b23aa6 Update TOX_CONSTRAINTS_FILE for stable/2024.2
74c155b2cd Update .gitreview for stable/2024.2
642b291032 Enable iptables debugging in the L3 agent functional tests
5a558b7d13 Add new "tagging" API method: create (POST)
9fd1f58394 [OVN] Set reside-on-chassis-redirect also for FLAT networks
104cbf9e60 Add trusted vif api extension for the port
9ed046a849 refactor: minor ternary `if x then true else false` squash
35bd9e5af0 docs: The job is not in experimental but in periodic queue
88abf33cd4 nit: Fix variable name used in a comment
c7d07b7421 Protect the "standardattr" retrieval from a concurrent deletion
8211c29158 [SR-IOV] The port status=DOWN has precedence in the VF link status
0058f76514 Remove default override for RBAC config options
44cbbba369 User defined router flavor driver with no LSP
7de94f5fb7 docs: fix neutron-ovn-tempest-with-neutron-lib-master description
ed8fb1b4a2 Introduce ovs-lts jobs that run against the latest ovn LTS branch
fbb7c9ae3d Fix port_hardware_offload_type ML2 extension
dbf53b7bbf Support nested SNAT for ml2/ovn
342ebc6bc3 Use ovs from main for -ovs-master jobs
76f343c586 Monkey patch the system libraries before calling them
d16d791f44 Add ovs-master job with neutron-plugin enabled
0798f33c01 Use oslo netutils for get_noscope_ipv6 function
ae90e2ccbf Make RPC event cast synchronous with the event
2ca075f152 Remove remnants of NSX
78efdb97b1 Remove remnants of Open Daylight
70be32d417 docs: ovs-master jobs do NOT run plugin scenarios
bd7245e51d Remove dependencies for windows support
6e30a825a3 docs: Clarify fullstack local run procedure
89835e43e8 [ML2/OVN] Add external_ids.neutron:is_static_route key for Static Routes
a35c2f8c38 Revert "Temporary mark ovs-rally job as non-voting"
b9ca288a5d Log a warning if pid file could not be read in l3-agent
1dda852c6a Ensure latest revision number after commit port binding
6168db6058 Service workers stop re-writing the process name
b6b2154faf [OVN][FT] Ensure the non OVN agent is correctly created
1ed8609a68 Get ips from system dns resolver without scope
f7000f3d57 Fix support of IPv6 only networks in OVN metadata agent
d0bcaf3f07 Bump ``oslo.serialization`` to version 5.5.0
f17cc24e8a Adopt to StandardAttribute load method change to "selectin"
ffaf021810 Temporary mark ovs-rally job as non-voting
b63442e046 Add tap_mirror to extension to OVN supported extensions
5e583d3240 Skip abandoning of the old patches in unmaintained branches
04c217bcd0 Lower spacing time of the OVN maintenance tasks which should be run once
4b1bfb93e3 Fix setting correct 'reside-on-chassis-redirect' in the maintenance task
c1b88fc5f5 Only query for port do not get directly
2a6bc5db23 Use has_lock_periodic decorator for the tasks which require ovn db lock
f22f7ae012 Use the RBAC actions field for "network" and "subnet"
498d7d5f87 Start using constants from neutron-lib
f63e7999e2 [OVN][CI] Update OVS_BRANCH to be compatible with ovn main
a1d39a2132 Increase code coverage for OVN metadata agent
92d0cc2919 Fix typos in the S-RBAC document
aa5b2808a8 [Docs] Add document with description of the RBAC roles
bfd32488a6 Remove the tenant_id/project_id parameter from QoS rule commands
b4c8cc600a Actualy set global "removal limit" options
776178e907 Initialize the policy enforcer for the "tagging" service plugin
23b9077df5 Reduce to 1 thread the processing of ``IpConntrackManager`` events
baa57ab38d Do not release the executor inside ``_check_child_processes``
ec5248dc2e Add ML2/OVN security group logging documentation
41dcac598b Use convert_version_to_tuple() instead of pkg_resources
836fd55073 [OVN] Remove maintenance method "remove_duplicated_chassis_registers"
88e83dc7f0 [DHCP] Inform about the number of pending events to be processed
46daad6f57 Remove Open vSwitch plugin mentioned in allowed address pairs note
ca92fbe7eb Log the number of RPC workers created
413793fa08 Add "subnet-external-network" extension to "subnet" resource
a45883ca19 [DHCP] Lock the execution of ``_dhcp_ready_ports_loop``
7173bd4e98 [DHCP] Do not force the DHCP disable call in a network creation
ed303c464e [FT] Make LR name random
eb09fe5c92 Revert "[DHCP] Lock the execution of ``_dhcp_ready_ports_loop``"
8ab385f97d Don't print traceback if standard attr is missing on update
f651b28c42 [OVN] Add support for broadcast_arps_to_all_routers
d0d24f0aff [OVN] Update Baremetal provisioning documentation
6be68a4158 Add dynamic lookup for tcpdump binary
7e73d41e9e Change to new syntax of calling super() in policies unit tests modules
7c7dc26a01 Adding manager role support
a266965f53 [OVN] Iterate through table rows using ``row.items()``
19208ebdae [WSGI] Move all OVS jobs to use WSGI API module
60d097f435 [DHCP] Skip metadata proxy timeout in unit testing
6a2bb6ce3e [FT] Check if the OVN row item is stored as a list
6d480cbaf5 [DHCP] Reduce to one single thread the event processing
928f41f1fe [DHCP] Lock the execution of ``_dhcp_ready_ports_loop``
cc45ca0378 Release note for ``neutron-periodic-workers`` process
a311606fcd Checking pci_slot to avoid changing staus to BUILD forever
b40c728cbb [FT] Add a timeout for the NB/SB connection stop method
fd774f3af0 Don't send project_id as QoS rule attribute in the tests
2354c2a0d2 Adjust flavor extension unit test to case when tenant_id is not there
8460c3b964 Use parent's project id in the quota enforcement for some resources
d2e53f83f7 Limit the worker type in neutron-periodic-workers service
308db2e048 [OVN] Release note for ``neutron-ovn-maintenance-worker`` process
e5a8829c56 Return empty BpInfo if missing binding:profile
1858923d5c Change the "get_metadata_port" name and input variable
cfab008eef [OVN] Enable the WSGI module for the OVN mechanism driver
ae587c34ab Always get local vlan from port other_config
9a27e4e4bb Refactor external-network update to router gateway cascading effect
20dbc47fc6 Check subnet service_type for subnet_create
729920da5e Reorder subnet RBAC policy check strings
b0081ac6c0 Add the port "fixed_ips" information in the DHCP RPC
46edf255bd Change to use selectin for RBACs in SubnetPool DB load strategy
1c888c94a3 Improve Process fixture service restart handling
b39b5fc215 Remove maintenance task "update_port_virtual_type"
5d316e8a87 Remove the Windows libraries
980f9bdab2 [OVN] Add a new process to spawn ML2/OVN maintenance worker
811f74d943 Add a new process to spawn the plugin services in the Neutron server
bf82263df0 [FT] Run test_periodic_sync_routers_task tests serially
f9a54350e6 Add L3 HA fullstack failover tests
ceee380a18 [OVN] Sanitize the classless-static-route DHCP option
cabe18dd79 Set the Neutron server workers name
b352917461 Add wsgi tempest job for OVS and OVN
79b2d709c8 tests: fix IP address not accepted by latest netaddr
dbca7e1f8c Improve ACL comparison efficiency
adb39e2d1c Add new neutron.wsgi module
34fafa2d8c Remove neutron.wsgi module
05fcfef6ce Change to use selectin for DB load strategy
e1cf0f2d59 [CI] Enable OVN grenade job in the check and gate queue
bf123dfb38 Revert "Use HasStandardAttributes as parent class for Tags DB model"
f210a90479 [OVN] Bump revision number after update_virtual_port_host
06bc855dcf dhcp: fix dhcp cleaning stale devices process when enable action
170d99f2d5 [OVN] Fix virtual parent match for PortBindingUpdateVirtualPortsEvent
9e7cc782e6 [eventlet] Bump eventlet version to 0.36.1
a8b6080cdf Bump neutron-lib to 3.13.0
6af25b2588 Add policy for create_agent api call
784e737295 Fix trunk test_subport_delete functional test
11027e3e1e Fix regex lines in zuul.d/* files
eaca8a360f Add some swap to tox-cover job
4a02848228 Use transient systemd units in Process fixture
768d20f285 Bump oslo.service to 3.5.0
260c968118 Use RE2 compatible regex for irrelevant-files
a508ce3913 reno: ml2/ovn allows to create/delete trunks for bound ports
ac15191f88 Revert "[OVN] Prevent Trunk creation/deletion with parent port bound"
fe7276ecd8 tests: Don't except error 400 from allocation_pools=None
fd7ebe2960 Make openstack-tox-py311-with-sqlalchemy-master non-voting
5a1e9826c2 Temporarily add '--concurrency 4' to coverage job
dfc01beab2 Return both project_id when validating auto allocate network
60167cbb6e tests: Use `del_fake_chassis` when deleting a chassis
7967627035 Do not fail on missing logical router ports
5cbba634ca Remove old excludes
20b9893e34 [functional tests] compatibility with ovsdbapp>=2.7.0
2beb20f92b Update grenade_from_branch for skip level jobs
33d3d9d936 Bump neutron-lib to 3.12.0
639a8bae85 Rename delete_flow_for_ip -> delete_flow_for_ip_and_mac
80577381d9 Bump port revision if binding_levels changed
d040a38f49 Rename create_flows_for_ip_address to reflect it accepts (ip, mac)
11255ede97 Fix the broken neutron gate
305153883b Optimize deletion of static routes
466b0f4978 Fix ML2/OVN OVSDB handling of gateway ports
d6f56c5f96 Add a default goto table=94 for openvswitch fw
5b62e27154 Put monitors dictionary back in MetadataDriverBase class
a3d0fb6673 tests: Don't use neutron object where db model is expected
5795c192b8 Don't update revision number if object was not modified
cdb644574a Remove info about QoS and L3 meetings from the contributing guide
af7c98a908 Add pre-commit configuration
aeae6780a0 Fix trailing whitespaces and replace tabs with 4 spaces
ffcaeda32a Start trunk plugin RPC via service framework
a35858b053 reno: Update master for unmaintained/zed
a5ee7497b0 Add tox.ini testenv descriptions
5cee4b34fa Remove and modify outdated options in DHCP HA documentation
a69bd0dd60 Make it explicit ovs_firewall operates with ip, mac pairs
ae704369b5 tests: fix invalid `addr` mock values in ovs firewall suite
85808693ec Bandit: Remove bandit B604 from skip list
45b39b84e5 Switch to cirros uec image in singlenode jobs
1bc945f0d5 dhcp: fix auto_scheduler_network understanding dhcp_agents_per_network
3bbf259a4e Ensure [designate] url is a valid URI
9148c20b66 Replace bare Opt by PortOpt
7b4e9f8c26 Make common Metadata Proxy classes
6170309157 Start logging plugin RPC via service framework
4d405ca675 Mark L3HA dvr tests unstable
5fe5188ce5 Change exception messages to error log messages for DNS integration.
d782a868d7 Bandit: Remove bandit B324 from skip list
0914e6db3c Fix global-variable-not-assigned warnings
1ee6d94f89 Fix consider-using-min-builtin warnings
bac1b1f721 More precise flow table cleaning
8396d0bb6d [OVN] Add release note for OVN router tunnelled networks ext GW
c2f34e136d [OVN] Optimize ``HAChassisGroupRouterEvent`` code
bd31c23380 [OVN] Provide HA functionality to "Logical_Router" chassis pinning
25a1809964 [OVN] "Logical_Router" pinned to chassis, OVN L3 scheduler
a6e57754e0 Use native IntOpt for overlay_ip_version
ca3c57308f Increase code coverage for floating_mangle_rules()
7049ccbad7 Increase code coverage for safe_configure_dhcp_for_network()
06f9baec2b Increase code coverage for OVN SG update
db0818d5d2 Increase code coverage for plugin _get_network_mtu()
546b796f43 Increase code coverage for ip_lib sysctl()
714865a7f4 Increase code coverage for cidr_broadcast_address_alternative()
00b64d289b [OVN] Create an OVN DB transaction context decorator
3c557b29f8 Bandit: Remove bandit B311, B303 from skip list
5f0a9a10f6 Remove the Windows OS libraries
8ff8203fd7 Enable HA for OVN router flavors
6395b4fe8e Fixing the 500 HTTP code in the metadata service if Nova is down
9d729bda20 Check unspecified flavor in user defined driver
056baab66e Update Neutron Liuetenants
5453c92a2e dhcp: ensure that cleaning DHCP process with one segment happens first
418d87b276 Refactor some docstrings
882885b806 Update jobs based on testing runtime for 2024.2
70ddf4eef5 Add "socket" NUMA affinity policy
5e1188ef38 Enhance IptablesFirewallDriver with remote address groups
8830fed191 Open the 2024.2 (Dalmatian) DB branch
26ff51bf05 Fix making all user defined flavor routers HA
46245c0154 Add note on iptables cleanup after OVS firewall migration
446a7acf2c Add metadata options to generated ovn_agent.ini
eebfe79f5e Disable skip-level jobs in check queue
6330543517 Update master for stable/2024.1
27b2f22df1 Don't delete already deleted extra router routes
f82c650c8c [OVN] Add the network type to the ``Logical_Switch`` register
0199a8457b Add documentation for aa-l3-gw-multihoming
d3a8c9ca0f Clean up state VRRP PID file
0fd654f592 [OVN] Use the LSP update event to update the LRP
8fa3a14a95 Update the OVN manual install doc
a4e49b6b8f Use oslo_service's SignalHandler for signals
4275aebe68 [OVN] Add documentation about the OVN agent
16474fcf24 Fix used-before-assignment warnings
bcf33e202f Fix keyword-arg-before-vararg warnings
ceba528e29 Fix disallowed-name warnings
9065cdf78e Register root_helper config for state change
1e1cd593a4 Remove string support in install_instructions
bb8e74b1a0 Fix assignment-from-no-return error
850a213366 Remove the restriction on empty cidr's update events
e4323e1f20 Fix KeyError failure in _sync_subnet_dhcp_options()
Diffstat (except docs and test files)
-------------------------------------
.gitreview | 1 +
.pre-commit-config.yaml | 69 +++
.pylintrc | 2 +-
devstack/lib/port_trusted_vif | 3 +
devstack/plugin.sh | 15 +-
.../contributor/internals/openvswitch_firewall.rst | 21 +
.../contributor/testing/ci_scenario_jobs.rst | 50 +-
.../general_feature_support_matrix.ini | 18 -
.../provider_network_support_matrix.ini | 8 -
.../install/common/get-started-networking.rst | 5 +-
neutron/agent/common/ip_lib.py | 22 +-
neutron/agent/common/ovs_lib.py | 11 +-
neutron/agent/common/resource_processing_queue.py | 5 +
neutron/agent/common/utils.py | 8 +-
neutron/agent/dhcp/agent.py | 52 +-
neutron/agent/l2/extensions/dhcp/base.py | 2 +-
neutron/agent/l3/ha_router.py | 16 +-
neutron/agent/l3/keepalived_state_change.py | 2 +
neutron/agent/linux/dhcp.py | 3 +
neutron/agent/linux/external_process.py | 1 -
neutron/agent/linux/ip_conntrack.py | 11 +-
neutron/agent/linux/iptables_firewall.py | 12 +-
neutron/agent/linux/iptables_manager.py | 3 +-
neutron/agent/linux/keepalived.py | 7 +-
.../agent/linux/openvswitch_firewall/firewall.py | 109 ++--
neutron/agent/linux/openvswitch_firewall/rules.py | 11 +-
neutron/agent/linux/tc_lib.py | 1 -
neutron/agent/linux/utils.py | 3 +-
neutron/agent/metadata/agent.py | 219 ++------
neutron/agent/metadata/driver_base.py | 6 +
neutron/agent/metadata/proxy_base.py | 224 ++++++++
neutron/agent/ovn/metadata/agent.py | 51 +-
neutron/agent/ovn/metadata/server.py | 158 +-----
neutron/agent/rpc.py | 4 +-
neutron/agent/windows/ip_lib.py | 88 ----
neutron/agent/windows/utils.py | 173 ------
neutron/api/api_common.py | 2 +-
neutron/api/extensions.py | 7 +-
.../api/rpc/agentnotifiers/dhcp_rpc_agent_api.py | 5 +-
neutron/api/v2/resource.py | 3 +-
neutron/{ => api}/wsgi.py | 0
neutron/cmd/eventlet/server/__init__.py | 10 +
neutron/cmd/sanity/checks.py | 2 +-
neutron/common/_constants.py | 4 -
neutron/common/ovn/constants.py | 16 +-
neutron/common/ovn/extensions.py | 10 +
neutron/common/ovn/utils.py | 236 ++++++---
neutron/common/utils.py | 36 +-
neutron/conf/agent/ovn/ovn_neutron_agent/config.py | 6 +
neutron/conf/plugins/ml2/config.py | 16 +-
neutron/conf/plugins/ml2/drivers/ovn/ovn_conf.py | 26 +
neutron/conf/plugins/ml2/drivers/ovs_conf.py | 6 +-
neutron/conf/policies/agent.py | 12 +
neutron/conf/policies/base.py | 9 +
neutron/conf/policies/floatingip.py | 12 +-
neutron/conf/policies/logging.py | 10 +-
neutron/conf/policies/metering.py | 8 +-
neutron/conf/policies/network.py | 10 +
neutron/conf/policies/network_segment_range.py | 10 +
neutron/conf/policies/port.py | 72 ++-
neutron/conf/policies/qos.py | 48 +-
neutron/conf/policies/quotas.py | 2 +-
neutron/conf/policies/router.py | 10 +
neutron/conf/policies/security_group.py | 10 +
neutron/conf/policies/segment.py | 10 +
neutron/conf/policies/subnet.py | 48 +-
neutron/conf/policies/subnetpool.py | 10 +
neutron/conf/policies/trunk.py | 10 +
neutron/conf/services/extdns_designate_driver.py | 3 +-
neutron/db/agentschedulers_db.py | 4 +-
neutron/db/db_base_plugin_common.py | 9 +-
neutron/db/db_base_plugin_v2.py | 52 +-
neutron/db/dns_db.py | 41 +-
neutron/db/external_net_db.py | 44 +-
neutron/db/extra_dhcp_opt/models.py | 2 +-
neutron/db/extraroute_db.py | 4 +-
neutron/db/l3_db.py | 53 +-
neutron/db/l3_dvr_db.py | 15 +-
neutron/db/l3_hamode_db.py | 4 +-
neutron/db/migration/__init__.py | 1 +
...791_add_port_hardware_offload_extension_type.py | 5 +
.../expand/175fa80908e1_add_numa_policy_socket.py | 39 ++
.../5bcb7b31ec7d_add_port_trusted_attribute.py | 70 +++
.../alembic_migrations/versions/EXPAND_HEAD | 2 +-
neutron/db/migration/cli.py | 3 +-
neutron/db/models/address_group.py | 2 +-
neutron/db/models/allowed_address_pair.py | 2 +-
neutron/db/models/conntrack_helper.py | 2 +-
neutron/db/models/external_net.py | 5 +
neutron/db/models/flavor.py | 2 +-
neutron/db/models/l3.py | 6 +-
neutron/db/models/metering.py | 4 +-
neutron/db/models/ndp_proxy.py | 2 +-
neutron/db/models/port_forwarding.py | 4 +-
neutron/db/models/port_trusted.py | 37 ++
neutron/db/models/securitygroup.py | 2 +-
neutron/db/models/segment.py | 4 +-
neutron/db/models/subnet_service_type.py | 2 +-
neutron/db/models/tag.py | 2 +-
neutron/db/models_v2.py | 18 +-
neutron/db/network_dhcp_agent_binding/models.py | 2 +-
neutron/db/ovn_l3_hamode_db.py | 4 +
neutron/db/port_hardware_offload_type_db.py | 2 +-
neutron/db/port_trusted_db.py | 66 +++
neutron/db/provisioning_blocks.py | 7 +-
neutron/extensions/agent.py | 4 +-
neutron/extensions/dhcpagentscheduler.py | 2 +-
neutron/extensions/l3agentscheduler.py | 4 +-
.../extensions/port_numa_affinity_policy_socket.py | 20 +
neutron/extensions/port_trusted_vif.py | 77 +++
neutron/extensions/quotasv2.py | 2 +-
neutron/extensions/subnet_external_network.py | 22 +
neutron/extensions/tag_creation.py | 20 +
neutron/extensions/tagging.py | 32 +-
neutron/hacking/checks.py | 17 +
neutron/notifiers/nova.py | 3 +
neutron/objects/port/extensions/port_trusted.py | 36 ++
neutron/objects/ports.py | 11 +-
neutron/objects/router.py | 1 +
neutron/objects/subnet.py | 39 +-
neutron/opts.py | 2 +-
neutron/pecan_wsgi/hooks/quota_enforcement.py | 15 +-
neutron/plugins/ml2/drivers/l2pop/db.py | 4 +-
.../ml2/drivers/mech_sriov/agent/pci_lib.py | 8 +-
.../drivers/mech_sriov/agent/sriov_nic_agent.py | 42 +-
.../agent/extension_drivers/qos_driver.py | 4 +-
.../openvswitch/agent/openflow/native/br_int.py | 2 +-
.../openvswitch/agent/openflow/native/ofswitch.py | 18 +-
.../drivers/openvswitch/agent/ovs_neutron_agent.py | 4 +-
.../ml2/drivers/openvswitch/agent/vlanmanager.py | 6 +-
.../ml2/drivers/ovn/mech_driver/mech_driver.py | 32 +-
.../ml2/drivers/ovn/mech_driver/ovsdb/api.py | 17 +-
.../ml2/drivers/ovn/mech_driver/ovsdb/commands.py | 64 ++-
.../ovn/mech_driver/ovsdb/extensions/placement.py | 8 +-
.../drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py | 35 +-
.../drivers/ovn/mech_driver/ovsdb/maintenance.py | 378 +++++++++-----
.../drivers/ovn/mech_driver/ovsdb/ovn_client.py | 314 ++++++-----
.../drivers/ovn/mech_driver/ovsdb/ovn_db_sync.py | 102 +++-
.../drivers/ovn/mech_driver/ovsdb/ovsdb_monitor.py | 115 +++-
.../ml2/drivers/ovn/mech_driver/ovsdb/worker.py | 6 +-
neutron/plugins/ml2/extensions/dns_integration.py | 38 +-
neutron/plugins/ml2/extensions/port_trusted.py | 46 ++
neutron/plugins/ml2/models.py | 2 +-
neutron/plugins/ml2/ovo_rpc.py | 110 ++--
neutron/plugins/ml2/plugin.py | 66 ++-
neutron/policy.py | 8 +-
neutron/scheduler/dhcp_agent_scheduler.py | 7 +-
neutron/scheduler/l3_agent_scheduler.py | 6 +-
neutron/scheduler/l3_ovn_scheduler.py | 8 +-
neutron/server/api_eventlet.py | 11 +-
neutron/server/ovn_maintenance.py | 42 ++
neutron/server/periodic_eventlet.py | 38 ++
neutron/service.py | 61 ++-
neutron/services/auto_allocate/db.py | 4 +-
neutron/services/logapi/drivers/manager.py | 4 +-
.../logapi/drivers/openvswitch/ovs_firewall_log.py | 3 +-
neutron/services/logapi/drivers/ovn/driver.py | 5 +-
neutron/services/logapi/logging_plugin.py | 3 +
neutron/services/loki/loki_plugin.py | 6 +-
neutron/services/ovn_l3/plugin.py | 14 +-
.../ovn_l3/service_providers/user_defined.py | 91 +++-
neutron/services/revisions/revision_plugin.py | 6 +-
neutron/services/tag/tag_plugin.py | 33 +-
neutron/services/trunk/drivers/base.py | 11 +-
neutron/services/trunk/drivers/ovn/trunk_driver.py | 26 -
neutron/services/trunk/models.py | 2 +-
neutron/services/trunk/plugin.py | 27 +-
neutron/services/trunk/rpc/backend.py | 3 +-
neutron/services/trunk/rpc/server.py | 7 +-
.../l3/extensions/test_ndp_proxy_extension.py | 4 +
.../agent/ovn/metadata/test_metadata_agent.py | 47 ++
.../mech_driver/ovsdb/extensions/test_placement.py | 11 +-
.../drivers/ovn/mech_driver/ovsdb/test_impl_idl.py | 117 ++++-
.../ovn/mech_driver/ovsdb/test_maintenance.py | 293 ++++++++---
.../ovn/mech_driver/ovsdb/test_ovn_client.py | 98 +++-
.../ovn/mech_driver/ovsdb/test_ovn_db_sync.py | 67 ++-
.../ovn/mech_driver/ovsdb/test_ovsdb_monitor.py | 153 +++++-
.../drivers/ovn/mech_driver/test_mech_driver.py | 69 ++-
.../conntrack_helper/test_conntrack_helper.py | 6 +-
.../l3_router/test_l3_dvr_ha_router_plugin.py | 2 +-
.../functional/services/ovn_l3/test_plugin.py | 4 +-
.../trunk/drivers/ovn/test_trunk_driver.py | 47 +-
.../functional/services/trunk/rpc/test_server.py | 4 +-
.../agent/common/test_resource_processing_queue.py | 9 +
.../linux/openvswitch_firewall/test_firewall.py | 85 ++-
.../agent/linux/openvswitch_firewall/test_rules.py | 4 +-
.../unit/agent/linux/test_iptables_firewall.py | 16 +
.../rpc/agentnotifiers/test_dhcp_rpc_agent_api.py | 1 +
.../conf/policies/test_auto_allocated_topology.py | 27 +-
.../unit/conf/policies/test_availability_zone.py | 25 +-
.../policies/test_default_security_group_rules.py | 26 +-
.../unit/conf/policies/test_floatingip_pools.py | 27 +-
.../policies/test_floatingip_port_forwarding.py | 27 +-
.../unit/conf/policies/test_l3_conntrack_helper.py | 27 +-
.../conf/policies/test_local_ip_association.py | 27 +-
.../conf/policies/test_network_ip_availability.py | 27 +-
.../conf/policies/test_network_segment_range.py | 50 +-
.../unit/conf/policies/test_security_group.py | 98 +++-
.../test_port_numa_affinity_policy_socket.py | 69 +++
.../extensions/test_port_numa_affinity_policy.py | 6 +-
.../objects/port/extensions/test_port_trusted.py | 36 ++
.../ml2/drivers/mech_sriov/agent/test_pci_lib.py | 11 +-
.../mech_sriov/agent/test_sriov_nic_agent.py | 30 ++
.../agent/openflow/native/test_br_int.py | 2 +-
.../openvswitch/agent/test_ovs_neutron_agent.py | 10 +-
.../mech_driver/ovsdb/extensions/test_placement.py | 19 +-
.../drivers/ovn/mech_driver/ovsdb/test_commands.py | 54 +-
.../ovn/mech_driver/ovsdb/test_maintenance.py | 278 +++++++---
.../ovn/mech_driver/ovsdb/test_ovn_client.py | 92 +++-
.../ovn/mech_driver/ovsdb/test_ovn_db_sync.py | 43 +-
.../ovn/mech_driver/ovsdb/test_ovsdb_monitor.py | 59 +++
.../drivers/ovn/mech_driver/test_mech_driver.py | 248 +++++++--
.../unit/scheduler/test_dhcp_agent_scheduler.py | 1 +
.../unit/scheduler/test_l3_agent_scheduler.py | 3 +-
.../services/ovn_l3/service_providers/test_ovn.py | 54 ++
.../ovn_l3/service_providers/test_user_defined.py | 150 +++++-
.../services/revisions/test_revision_plugin.py | 13 +-
.../trunk/drivers/ovn/test_trunk_driver.py | 4 -
neutron/worker.py | 6 +-
neutron/{agent/windows => wsgi}/__init__.py | 0
neutron/wsgi/api.py | 31 ++
playbooks/configure_swap.yaml | 3 +
...role-in-the-RBAC-policies-3173cb9bd64836ad.yaml | 7 +
...-extension-for-ml2-plugin-697dc557b0d40b6a.yaml | 17 +
...ids-key-for-static-routes-9d9bc3d7c2c4361f.yaml | 12 +
.../add-neutron-wsgi-module-68e2418a0f9124e5.yaml | 22 +
...ser-defined-router-flavor-cafe0d8deeab47b9.yaml | 8 +
...-create-delete-port-bound-a4126054156ce4c2.yaml | 7 +
...adcast-arp-to-all-routers-a9b1b997549d8b2f.yaml | 12 +
...g-from-exception-to-error-7927d91f915046c3.yaml | 6 +
...ve-duplicated-ovn-chassis-fdac8529e7d07c33.yaml | 7 +
...with-ovn-loadbalancer-fip-4e4bda00cf019f71.yaml | 5 +
...acl-comparison-efficiency-9fc1027c37626419.yaml | 8 +
...ort-remote-address-groups-89da589aad3c01d3.yaml | 8 +
.../l3-agent-extensions-b348ff26aec0fe88.yaml | 6 +-
...xy-enhance-error-handling-3655404d44249097.yaml | 6 +
.../ovn-metadata-workers-fa8a2019f34bd572.yaml | 2 +-
...unnelled-external-network-99cab90643558b74.yaml | 8 +
...n-trunk-check-parent-port-eeca2eceaca9d158.yaml | 6 -
...on-ovn-maintenance-worker-4ba74952d78e4c25.yaml | 7 +
...-neutron-periodic-workers-cbbc99ad1b222d65.yaml | 8 +
...e-suppport-for-windows-os-fd662b7111d3d1b0.yaml | 4 +
...te-disable-has-precedence-2adecdf959dc0f9e.yaml | 7 +
...pport-nested-snat-for-ovn-e4aa3b9af66c905b.yaml | 13 +
.../tag-pluggin-post-method-c0bc38f1a8b93861.yaml | 8 +
releasenotes/source/2024.1.rst | 6 +
releasenotes/source/index.rst | 1 +
releasenotes/source/zed.rst | 2 +-
requirements.txt | 18 +-
setup.cfg | 3 +
test-requirements.txt | 2 +-
tools/abandon_old_reviews.sh | 23 +-
tools/coding-checks.sh | 6 +
tox.ini | 62 ++-
zuul.d/base.yaml | 17 +-
zuul.d/grenade.yaml | 30 +-
zuul.d/job-templates.yaml | 54 +-
zuul.d/project.yaml | 13 +-
zuul.d/rally.yaml | 18 +-
zuul.d/tempest-multinode.yaml | 42 +-
zuul.d/tempest-singlenode.yaml | 111 +++-
381 files changed, 10185 insertions(+), 3896 deletions(-)
Requirements updates
--------------------
diff --git a/requirements.txt b/requirements.txt
index 101d4f3d57..96991315f0 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -11 +11 @@ decorator>=4.1.0 # BSD
-eventlet>=0.26.1 # MIT
+eventlet>=0.36.1 # MIT
@@ -18,2 +18 @@ netaddr>=0.7.18 # BSD
-netifaces>=0.10.4 # MIT
-neutron-lib>=3.9.0 # Apache-2.0
+neutron-lib>=3.15.0 # Apache-2.0
@@ -29 +28 @@ oslo.concurrency>=3.26.0 # Apache-2.0
-oslo.config>=9.0.0 # Apache-2.0
+oslo.config>=9.4.0 # Apache-2.0
@@ -36 +35 @@ oslo.middleware>=3.31.0 # Apache-2.0
-oslo.policy>=3.12.0 # Apache-2.0
+oslo.policy>=4.4.0 # Apache-2.0
@@ -40,2 +39,2 @@ oslo.rootwrap>=5.15.0 # Apache-2.0
-oslo.serialization>=2.25.0 # Apache-2.0
-oslo.service>=2.8.0 # Apache-2.0
+oslo.serialization>=5.5.0 # Apache-2.0
+oslo.service>=3.5.0 # Apache-2.0
@@ -43 +42 @@ oslo.upgradecheck>=1.3.0 # Apache-2.0
-oslo.utils>=7.0.0 # Apache-2.0
+oslo.utils>=7.3.0 # Apache-2.0
@@ -49 +48 @@ ovs>=2.10.0 # Apache-2.0
-ovsdbapp>=2.3.0 # Apache-2.0
+ovsdbapp>=2.7.1 # Apache-2.0
@@ -60 +58,0 @@ tooz>=1.58.0 # Apache-2.0
-wmi>=1.4.9;sys_platform=='win32' # MIT
diff --git a/test-requirements.txt b/test-requirements.txt
index cdf72fd136..94ff22efc4 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -1 +1 @@
-coverage!=4.4,>=4.0 # Apache-2.0
+coverage>=4.4.1 # Apache-2.0
1
0