[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