We are chuffed to announce the release of: neutron-lib 1.19.0: Neutron shared routines and utilities This release is part of the stein release series. The source is available from: https://git.openstack.org/cgit/openstack/neutron-lib Download the package from: https://pypi.org/project/neutron-lib Please report issues through launchpad: https://bugs.launchpad.net/neutron For more details, please see below. 1.19.0 ^^^^^^ New Features ************ * The "project-default-networks" extension is now available and adds a new attribute "project_default" into the "network" resource. This attribute will be used to indicate if a network is a project default network. * Add new extension *qos-gateway-ip* which extends the *router_gw_info* with new attribute *qos_policy_id*. * Introduced "neutron_lib.utils.net.random_mac_generator(basemac)". It allows you to get a mac address string Python generator from the same kind of basemac that "neutron_lib.utils.net.get_random_mac(basemac)" expects. If there are a lot of macs to get, this will speed the process up significantly over generating single macs and testing for collisions. * New methods available in Placement client: "update_resource_provider" and "ensure_resource_provider". * New constants module for Placement: "neutron_lib.placement.constants". * neutron-lib now has a new module: "neutron_lib.placement.utils". This module contains logic that is to be shared between in-tree Neutron components and possibly out-of-tree Neutron agents that want to support features involving the Placement service (for example guaranteed minimum bandwidth). * policy-in-code support in neutron-lib is added. The default policies for 'context_is_admin' and 'context_is_advsvc' are now implemented as embeded policies. (Note that the main policy-in-code support will be implemented in the main neutron codebase.) * The new extension "port-resource-request" adds the "resource_request" attribute to port responses. This attribute enables Neutron to communicate to Nova resources needed by the port, such as physnet, VNIC type and bandwidth. If the port requested by Nova boot has the "resource_request" attribute, then the Nova Scheduler will try to allocate the VM in a host that can satisfy those requirements. * New extension "qos-bw-minimum-ingress" for extending "qos_minimum_bandwidth_rule" with ingress direction for placement based enforcement. * New MechanismDriver API class property: "resource_provider_uuid5_namespace". Mechanism drivers wanting to support resource provider information reporting to Placement (eg. reporting resource providers to guarantee some minimum bandwidth allocated on them later) must set this class property to a UUID object unique to that mechanism driver. It will be used as a UUID v5 namespace in generating UUIDs for resource providers. The default implementation sets it to "None", meaning that the mechanism driver does not support resource provider information reporting to Placement. Unaffected drivers need not be changed. * New MechanismDriver API method: "responsible_for_ports_allocation". Mechanism drivers wanting to support resource allocations for ports in Placement (eg. wanting to guarantee some minimum bandwidth allocated on the resource provider in the port's "binding:profile.allocation") must implement this method. The default implementation reports not being responsible for any resource providers, therefore unaffected drivers need not be changed. Bug Fixes ********* * Increase the DB retry interval and max retry times for the "retry_db_errors" decorator in "neutron_lib.db.api" to 0.5 seconds and 20 times, respectively. For those actions which have a higher chance for DBDeadlock, users should have a higher success rate due to the larger random range and retry times. For more information see bug 1777968 (https://bugs.launchpad.net/neutron/+bug/1777968) Other Notes *********** * Add two fields "columns" and "value" to exception "NeutronDbObjectDuplicateEntry". These two fields are populated from the corresponding db exception. * Bump "PlacementAPIClient's" max supported microversion to "1.20", as from that microversion placement API returns json body for POST /resource_providers. * The "PlacementAPIClient" class is moved from "neutron_lib.clients.placement" to "neutron_lib.placement.client" in order to consolidate all Placement related logic under sub-package "neutron_lib.placement". * The "resource_provider_generation" parameters of the following methods of "PlacementAPIClient" are now optional: "update_resource_provider_inventories", "update_resource_provider_inventory" and "update_resource_provider_traits". You may call the methods without this parameter or pass "None" with the meaning to ignore resource provider generations. That is the client will (in quick succession) get the object and update it supplying the same generation. * The "create_resource_provider" and "associate_aggregates" methods of "PlacementAPIClient" now return the parsed body of the respective responses. Since these methods returned "None" previously this is unlikely to break anything. On the other hand callers of these methods now have a chance to simplify their code. * This release removes the "description" from the segment extension's attribute map as well as adds the "standard-attr- description" as required dependency and "standard-attr-segment" as an optional dependency. Changes in neutron-lib 1.18.0..1.19.0 ------------------------------------- 157c507 Fix port_range_max attribute definition bede782 policy-in-code support in neutron-lib c436b10 Switch to oslo_messaging.ConfFixture.transport_url f65cabd Use templates for cover and lower-constraints 0555ffe Fix placement_client max microversion 9d20ecd Show is_default as a valid parameter for subnet pool creation 2c98c01 Fix the mistake of lbaas api-ref 3a2fc5b add lib-forward-testing-python3 test job 89d569f add python 3.6 unit test job 60716a2 switch documentation job to new PTI b06d4cb import zuul job settings from project-config 9f32a2d api-ref: Add port-resource-request extension 10eaab3 Add is_filter to network_ip_availability 061a77b Introduce Port resource request extension c2e205b Mechanism driver API: resource_provider_uuid5_namespace 579e0cc Placement: utils b271a33 Placement: constants d32e570 Placement client: move to neutron_lib.placement 74c62da Placement client: optional RP generations 203f4f0 Placement client: ensure_resource_provider 5aa2847 Placement client: always return body ebbad5b Update list of skipped bandit plugins 7fa92e3 Add 'project_default' attribute to Network e3d90fe Update the segment api extension ed62a06 Make the DB retry mechanism more robust 34af1e3 api-ref, fwaas-v2: Remove 'status' from request. 7124d76 Adds qos-gateway-ip extension api definition 6e4abc9 Add 'is_filter' and 'is_sort_key' to fip pf attributes 4732804 api-ref for floating IPs port forwardings 2847043 Add keyword 'is_filter' to binding extended bd90417 Update reno for stable/rocky baf4789 Mac learning extension description d161ea6 Add is_filter to port_mac_address_regenerate b8677ba net_utils: Add a random mac generator e77c9be Ingress direction for min bandwidth rule 679481f Mechanism driver API: responsible_for_rsc_provider d475493 Add two fields to NeutronDbObjectDuplicateEntry 29609c6 api-ref: add availability_zone extension Diffstat (except docs and test files) ------------------------------------- .zuul.yaml | 17 +- api-ref/source/v2/agents.inc | 11 + api-ref/source/v2/availability_zones.inc | 43 ++ api-ref/source/v2/fip-port-forwarding.inc | 228 ++++++++ api-ref/source/v2/fwaas-v2.inc | 2 - api-ref/source/v2/index.rst | 2 + api-ref/source/v2/lbaas-v2.inc | 49 +- api-ref/source/v2/network-ip-availability.inc | 8 + api-ref/source/v2/parameters.yaml | 246 ++++++++- api-ref/source/v2/ports.inc | 26 + .../availability-zones/azs-list-response.json | 14 + .../lbaas/healthmonitor-create-request.json | 2 +- .../lbaas/healthmonitor-create-response.json | 1 + .../samples/lbaas/healthmonitor-show-response.json | 5 +- .../lbaas/healthmonitor-update-request.json | 3 +- .../lbaas/healthmonitor-update-response.json | 5 +- .../lbaas/healthmonitors-list-response.json | 5 +- .../v2/samples/lbaas/listener-create-request.json | 2 +- .../v2/samples/lbaas/pool-create-request.json | 5 +- .../v2/samples/lbaas/pool-create-response.json | 19 +- .../v2/samples/lbaas/pool-show-response.json | 27 +- .../v2/samples/lbaas/pool-update-response.json | 27 +- .../v2/samples/lbaas/pools-list-response.json | 25 +- .../v2/samples/lbaas/pools-list-response2.json | 4 + .../port-fowarding-create-request.json | 9 + .../port-fowarding-create-response.json | 10 + .../port-fowarding-list-response.json | 20 + .../port-fowarding-show-response.json | 10 + .../port-fowarding-update-request.json | 8 + .../port-fowarding-update-response.json | 10 + .../samples/ports/port-bind-create-response.json | 6 +- .../v2/samples/ports/port-bind-show-response.json | 7 +- .../samples/ports/port-bind-update-response.json | 6 +- .../v2/samples/ports/ports-bind-list-response.json | 4 + api-ref/source/v2/subnetpools.inc | 2 + lower-constraints.txt | 1 + neutron_lib/_policy.py | 42 ++ neutron_lib/api/definitions/__init__.py | 8 + neutron_lib/api/definitions/base.py | 5 + .../api/definitions/floating_ip_port_forwarding.py | 16 +- .../api/definitions/network_ip_availability.py | 18 +- .../api/definitions/port_mac_address_regenerate.py | 2 + .../api/definitions/port_resource_request.py | 42 ++ .../api/definitions/portbindings_extended.py | 8 +- .../api/definitions/project_default_networks.py | 79 +++ .../api/definitions/qos_bw_minimum_ingress.py | 47 ++ neutron_lib/api/definitions/qos_gateway_ip.py | 61 +++ neutron_lib/api/definitions/segment.py | 18 +- neutron_lib/clients/__init__.py | 0 neutron_lib/clients/placement.py | 521 ------------------- neutron_lib/db/api.py | 4 +- neutron_lib/exceptions/placement.py | 5 + neutron_lib/fixture.py | 2 +- neutron_lib/objects/exceptions.py | 14 + neutron_lib/placement/__init__.py | 0 neutron_lib/placement/client.py | 576 +++++++++++++++++++++ neutron_lib/placement/constants.py | 33 ++ neutron_lib/placement/utils.py | 243 +++++++++ neutron_lib/plugins/ml2/api.py | 34 ++ .../api/definitions/test_port_resource_request.py | 21 + .../definitions/test_project_default_networks.py | 21 + .../api/definitions/test_qos_bw_minimum_ingress.py | 24 + .../unit/api/definitions/test_qos_gateway_ip.py | 21 + neutron_lib/utils/net.py | 30 ++ ...add-is-default-to-network-d16a2e6bcfae943a.yaml | 7 + ...uplicated-entry-exception-75b0e07c6e1cc6ae.yaml | 6 + .../notes/gateway-ip-qos-ext-d3ffb5f517c9f713.yaml | 5 + .../notes/mac-generator-f927df2fe57300c0.yaml | 8 + ...supported-version-to-1-20-fe96751dab42399b.yaml | 6 + .../placement-client-move-9f292ae2067c119c.yaml | 7 + ...t-optional-rp-generations-44d1f1055d5496be.yaml | 12 + .../placement-client-return-f4f22d244e7b174a.yaml | 8 + ...t-client-update-ensure-rp-9e5c3cf34d49b212.yaml | 5 + .../placement-constants-f2629b98f6fe148f.yaml | 4 + .../notes/placement-utils-a66e6b302d2bc8f0.yaml | 8 + .../notes/policy-in-code-1e73cabebd41d66e.yaml | 8 + .../port-resource-request-cb520720cd19523b.yaml | 8 + .../qos-bw-minimum-ingress-cff397e598b6fa3a.yaml | 5 + .../reset-db-retry-settings-49e51cef4c842f69.yaml | 10 + ...-provider-uuid5-namespace-f7276ba1945ce82f.yaml | 13 + ...ible_for_ports_allocation-5599dc59b3c98db2.yaml | 10 + ...te-segment-api-definition-d7297e73e76a754c.yaml | 7 + releasenotes/source/index.rst | 1 + releasenotes/source/rocky.rst | 6 + requirements.txt | 1 + setup.cfg | 6 + tox.ini | 3 +- 96 files changed, 2959 insertions(+), 1033 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 00dab6f..730fdaa 100644 --- a/requirements.txt +++ b/requirements.txt @@ -26,0 +27 @@ weakrefmethod>=1.0.2;python_version=='2.7' # PSF +os-traits>=0.9.0 # Apache-2.0
participants (1)
-
no-reply@openstack.org