[release-announce] neutron-lib 1.19.0 (stein)
no-reply at openstack.org
no-reply at openstack.org
Tue Sep 25 21:27:09 UTC 2018
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
More information about the Release-announce
mailing list