We are jazzed to announce the release of: neutron-lib 2.16.0: Neutron shared routines and utilities This release is part of the yoga release series. The source is available from: https://opendev.org/openstack/neutron-lib Download the package from: https://pypi.org/project/neutron-lib Please report issues through: https://bugs.launchpad.net/neutron/+bugs For more details, please see below. 2.16.0 ^^^^^^ New Features ************ * Add an API extension "local-ip" that enables users to create Local IP resource which is a shared virtual IP address that could be assigned to multiple ports and is guaranteed to only be reachable within the same physical server/node boundaries. * Add API extension "quota-check-limit". This is a shim extension that indicates if Neutron supports checking the resource usage before applying a new quota limit. A new API parameter "check_limit" is introduced; it can be used in the "quota" update request to enable this check. * Added "QuotaDriverAPI" abstract class. This class is the API to create any Neutron Quota engine driver. Other Notes *********** * The deprecated method neutron_lib.callbacks.registry.notify()`` and "neutron_lib.callbacks.manager.CallbacksManager.notify()" has been removed in favor of their "publish()" counterparts Changes in neutron-lib 2.15.0..2.16.0 ------------------------------------- 2ebb6d4 Rehome ``QuotaDriverAPI`` class e686f3d Add default values in port forwarding port ranges definitions c266a3e Bump requirements and disable f-string check ecb6313 Remove deprecated method registry.notify 06a685d Add Python3 yoga unit tests 0867e90 Update master for stable/xena 14df805 Add API shim extension "quota-check-limit" cb2dd61 Set "cache_ok=True" in all "TypeDecorator" derived classes 64e4dc2 Improve "get_collection_count" method 670f83b Fix some api-ref typos 5e9ced2 Add Local IP constants and exceptions 07e3de1 Add Local IP API def Diffstat (except docs and test files) ------------------------------------- .pylintrc | 1 + .zuul.yaml | 2 +- api-ref/source/v2/bfd_monitors.inc | 5 +- api-ref/source/v2/bgp_peer.inc | 2 +- api-ref/source/v2/bgp_speaker.inc | 2 +- api-ref/source/v2/firewall_log.inc | 4 +- api-ref/source/v2/local-ips.inc | 425 +++++++++++++++++++++ api-ref/source/v2/logging_resource.inc | 4 +- api-ref/source/v2/parameters.yaml | 211 ++++++++++ api-ref/source/v2/qos.inc | 30 +- api-ref/source/v2/quotas.inc | 1 + .../local-ip-list-associations-response.json | 18 + .../samples/local_ips/local-ips-list-response.json | 30 ++ .../samples/local_ips/local_ip-create-request.json | 9 + .../local_ips/local_ip-create-response.json | 15 + .../samples/local_ips/local_ip-show-response.json | 15 + .../samples/local_ips/local_ip-update-request.json | 6 + .../local_ips/local_ip-update-response.json | 15 + .../local_ip_association-create-request.json | 6 + .../local_ip_association-create-response.json | 9 + .../v2/samples/quotas/quotas-update-request.json | 3 +- lower-constraints.txt | 2 +- neutron_lib/api/definitions/__init__.py | 4 + neutron_lib/api/definitions/base.py | 1 + neutron_lib/api/definitions/fip_pf_port_range.py | 12 +- neutron_lib/api/definitions/local_ip.py | 156 ++++++++ neutron_lib/api/definitions/quota_check_limit.py | 27 ++ neutron_lib/callbacks/manager.py | 29 +- neutron_lib/callbacks/registry.py | 6 - neutron_lib/callbacks/resources.py | 1 + neutron_lib/constants.py | 1 + neutron_lib/db/model_query.py | 8 +- neutron_lib/db/quota_api.py | 169 ++++++++ neutron_lib/db/sqlalchemytypes.py | 8 +- neutron_lib/exceptions/local_ip.py | 49 +++ neutron_lib/objects/common_types.py | 65 ++++ .../unit/api/definitions/test_quota_check_limit.py | 20 + neutron_lib/worker.py | 2 +- .../add-local-ip-extension-fb4a18f5a6525f1f.yaml | 7 + ...check-limit-api-extension-8e39299644d41f74.yaml | 7 + ..._QuotaDriverAPI_abc_class-1d02d0823a8886a1.yaml | 5 + .../remove-registry-notify-76a2f6eb6bbf41bf.yaml | 5 + releasenotes/source/index.rst | 1 + releasenotes/source/xena.rst | 6 + 50 files changed, 1437 insertions(+), 121 deletions(-)