[release-announce] neutron-lib 1.14.0 (rocky)

no-reply at openstack.org no-reply at openstack.org
Thu Apr 26 19:52:36 UTC 2018


We are jazzed to announce the release of:

neutron-lib 1.14.0: Neutron shared routines and utilities

This release is part of the rocky 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.14.0
^^^^^^


Prelude
*******

Change create_inventory in placement client to
update_resource_provider_inventories and update_inventory to
update_resource_provider_inventory


New Features
************

* Add a new keyword "is_filter" to attribute maps. This keyword
  indicates that the attribute can be used for filtering result on
  list requests.

* Add a new keyword "is_sort_key" to attribute maps. This keyword
  indicates that the attribute can be used as a sort key for sorting
  list result.

* The "neutron_lib.utils.runtime.NamespacedPlugins" class is now
  available and wraps a stevedore namespace of plugins.

* The "neutron_lib.objects.registry" module is now available for
  loading neutron versioned object classes registered as entry points
  with the "NEUTRON_OBJECT_NAMESPACE" namespace therein. This global
  registry can be used by consumers to access references to neutron
  versioned object classes and instances so there's no need to import
  "neutron.objects".

* Add "fip-port-details" API extension. This extension add
  "port_details" attribute to the Floating IP resource.

* Introduced priority to callback subscription. An integer value can
  be associated with each callback so that callbacks can be executed
  in specified order for same resources and events. Every callback
  will have priority value by default. To execute callbacks in
  specified order, priorities should be defined explicitly, lower
  priority value would be executed first.

* A new flag can be used in API definition:
  "default_overrides_none". When enabled, the default value for the
  attribute will be used, including if the attribute was explicitly
  defined as "null".

* Added "list_resource_providers" function to the Placement API
  client, which allows to retrieve a list of Resource Providers
  filtering by UUID or parent UUID. It requires at least version "1.3"
  of placement API for listing resource providers that are members of
  any of the list of aggregates provided. It requires at least version
  "1.14" of placement API for listing nested resource providers.

* Added "get_resource_provider" function to the Placement API
  client, which allows to retrieve an specific Resource Provider by
  its UUID.

* Added "PlacementAPIVersionIncorrect" exception class which can be
  raised when requested placement API version is incorect and doesn't
  support requested API feature.

* A new "dict_populate_defaults" flag can be used in API definition
  for a dictionary attribute, which will results in default values for
  the keys to be filled in. This can also be used on values of a
  dictionary attribute if they are dictionaries as well.

* The public APIs from "neutron.db.api" are now available in the
  "neutron_lib.db.api" module.

* The "CONTEXT_READER" and "CONTEXT_WRITER" global database contexts
  are available in "neutron_lib.db.api" for convenient access as
  decorators.

* The "DBRetryErrorsFixture" and "DBAPIContextManagerFixture" test
  fixtures are now available in "neutron_lib.fixture" allowing
  consumers to patch out retry error values and the gobal context
  manager.

* The public functions of "neutron.db._model_query" are now
  available in "neutron_lib.db.model_query" with the same name. While
  these modules can be used, forward looking projects should start
  moving to versioned objects and after which point we can remove this
  module.

* A new fixture named "DBQueryHooksFixture" is provided for testing
  purposes allowing consumers to patch-out the model_query filter
  hooks.

* The "make_weak_ref" and "resolve_ref" functions from neutron are
  now available in "neutron_lib.utils.helpers".

* The "TenantIdProjectIdFilterConflict" exception is now available
  in "neutron_lib.exceptions".

* The "neutron.objects.utils" module is now available in
  "neutron_lib.objects.utils".

* The database utility functions "get_marker_obj",
  "filter_non_model_columns", "model_query_scope_is_project" and
  "resource_fields" are now available in "neutron_lib.db.utils".

* The "dhcp_agent_scheduler" extension's API defintion is now
  available in "neutron_lib.api.definitions.dhcpagentscheduler" and
  the corresponding exceptions in
  "neutron_lib.exceptions.dhcpagentscheduler".

* The "neutron.plugins.common.utils.get_deployment_physnet_mtu"
  function is now available in "neutron_lib.plugins.utils" with the
  same name.

* The "create_network", "create_subnet" and "create_port" functions
  from "neutron.plugins.common.utils" are now available in
  "neutron_lib.plugins.utils".

* The "qos-bw-limit-direction" extension's API definition is now
  available in "neutron_lib.api.definitions.qos_bw_limit_direction".

* The "unstable_test" decorator from "neutron.tests.base" is now
  available in neutron-lib in "neutron_lib.utils.test".

* Make "segment_id" of subnet resource writable. Enables the
  possibility to migrate a non-routed network to a routed network.

* Adds "neutron-vpnaas" API definitions to neutron-lib, including
  "vpnaas", "vpn-endpoint-groups" and "vpn-flavors".

* Migrate user facing exceptions into neutron-lib along with the API
  definitions.

* A new validator for type "type:list_of_subnets_or_none" to
  validate data is a list of subnet dicts or "None" is added too.


Known Issues
************

* Placement API has no POST method for creating resource provider
  inventories but instead has PUT to update the inventories of a
  resource provider.

* Placement API has method to update the inventory for a given
  resource_provider.


Upgrade Notes
*************

* Consumers using the global "context_manager" from "neutron.db.api"
  should now use the "get_context_manager()" function in the
  "neutron_lib.db.api" module or the global "CONTEXT_READER" and
  "CONTEXT_WRITER" if needed.

* The deprecated "neutron_libutils.file.ensure_dir" function is
  removed. Consumers can use "ensure_tree(path, 0o755)" from
  "oslo_utils.fileutils" instead.

* The "neutron_lib.api.utils" module has been removed. The single
  "populate_project_info" function therein is available in
  "neutron_lib.api.attributes" and has been marked as a moved function
  in the "utils" module for some time now.


Bug Fixes
*********

* Change the method name create_inventory in clients/placement.py to
  update_resource_provider_inventories as that represents what is on
  the placement side.

* Change the POST call to /resource_providers/{uuid}/inventories to
  PUT.

* Change the method name update_inventory in clients/placement.py to
  update_resource_provider_inventory as that represents that the
  method updates the inventory of a resource_provider.


Other Notes
***********

* The "LABEL" variable, which was uselessly duplicating "ALIAS", has
  been removed from API definition modules.

Changes in neutron-lib 1.13.0..1.14.0
-------------------------------------

6b0a599 Document L3 HA extension
492e5cc api-ref: document the address scope extension
2dc98bf fix docs/links for 1.14.0 release
59797ca fix vpnaas subnet_list_or_none type
e9578d9 api-ref: document sorting for qos resources
61f812b api-ref: document sorting for log management
f9badcd api-ref: document sorting parameters for l2
f03d049 Fix requirements for api-ref
24a0877 Add API extension fip-port-details
108a598 rehome model_query and its dependencies
15947c0 api-ref: several fixups on the rbac policies
48af67b api-ref: some fixes on metering labels and rules
43405bf api-ref: document sorting parameters for security
d144e01 Document QoS bandwidth limit direction extension
f0a9959 Fix placement calls in placement client
1653bb8 api-ref: add the missing samples in floatingips
c8e1389 API attribute processing: allow to populate dict attribute default values
478c4d8 API attribute processing: add 'default_overrides_none'
31f65b8 Rehome unstable_test decorator
edab0eb rehome db api
4d29122 remove debtcollector from requirements
93fb088 rehome get_deployment_physnet_mtu into plugin utils
dbaeaef fix tox release note generation
7524faa Documenting l3_flavors extn in api-ref
75d9d80 api-ref: document sorting parameters for l3
6f94faf versioned object plugin registry
98d2614 Fix pep8 errors
032f3a4 Documenting subnet_allocation extension
b03226d Annotate network parameters for sort_key
0abe67c Annotate all the filter parameters for networks
4cdf339 Documenting Router service type ID
61ebbb7 Remove the ensure_dir
fa32a3f remove the unused neutron_lib.api.utils module
2dc9675 rehome qos bw limit direction api def
36bb16b ut updates for extending sub-resources
e851803 api-ref: document sorting parameters for networks
162ba23 fix lower constraints to match requirements
590664c Remove LABEL from API definitions
fc45558 Add the missing response parameters to network
2042d18 rehome used db utils
bc16522 Follow the new PTI for document build
1aa8176 Updated from global requirements
c759140 fix typos in parameters.yaml
0cd466d add lower-constraints job
217efe0 callback: priority to specify calling order
ebf776a rehome create functions from plugin utils
6f68070 api-ref: add filter parameters to trunk
98042e7 api-ref: add filter parameters to qos
92b3861 api-ref: add filter parameters to segment
c002951 api-ref: add filter parameters to SG and rules
e668472 api-ref: add filter parameters to log
d5b3f2d Updated from global requirements
04f8502 api-ref: correct the list of taggable resources
e5e6324 Fix binding:profile parameter type in API reference
9059d0d Subnet segment_id writable extension
48e2c05 Updated from global requirements
ce10b9d Add prefixlen to subnet api-ref for create actions
ec9e38d Updated from global requirements
e8f2616 Remove tools/tox_install.sh
eaf4d07 Reorder and capitalize the list of extensions in ports, networks and routers
492e510 Fix the description of some parameters
dde0dd7 api-ref, bgpvpn API extension: update status
337be43 Imported Translations from Zanata
874cf4f Add new Resource Provider functions to placement client
9acdd4d api-ref: add filter parameters to router
5bf37ca api-ref: add filter parameters to floatingip
2dde8d2 api-ref: add filter parameters to subnetpool
8d4ccee api-ref: add filter parameters to subnet resource
a4e14a6 api-ref: add filter parameters to port resource
e8b36f3 api-ref: add filter parameters to networks
d364ca1 Updated from global requirements
842460a Remove repeated parameter from floatingip
082c269 Documenting L2 adjacency extension
5c4b6cb Update url links in README.rst
6800320 Document the error code on conditional update/delete
b3cf222 Documenting QoS default policy extension
712a357 Change name of test file
b293995 Change some parameters in path to be required
adec7b0 Documenting ip_allocation extension in api-ref
66c9990 Mark neutron-lbaas as deprecated
615e88c Document extra_dhcp_opt extension in api-ref
9068055 Adding DVR extension docs in routers api-ref
a325d63 Documenting network_availability_zone extension
2982196 Document subnet_service_types extension in api-ref
adefc64 [Api-ref] Cleanup parameters.yaml
053eae0 Migrate neutron-vpnaas API definitions to neutron-lib
ac46cf4 Imported Translations from Zanata
577744a Update status of VPNaaS in neutron
670fc10 Update reno for stable/queens
0996962 Updated from global requirements
170e176 Don't override oslo.db tweaks for connection pool in tests
e2bf979 add api ref for auto allocated topology
23f6f8c rehome dhcpagentscheduler api def


Diffstat (except docs and test files)
-------------------------------------

.zuul.yaml                                         |    7 +
README.rst                                         |    4 +-
api-ref/source/conf.py                             |    3 +-
api-ref/source/v2/address-scopes.inc               |  218 ++
api-ref/source/v2/auto-topology.inc                |   73 +
api-ref/source/v2/bgpvpn-bgpvpns.inc               |    2 +-
api-ref/source/v2/bgpvpn-overview.inc              |    8 +-
api-ref/source/v2/bgpvpn-port_associations.inc     |    2 -
api-ref/source/v2/floatingips.inc                  |   45 +-
api-ref/source/v2/index.rst                        |   11 +-
api-ref/source/v2/intro.inc                        |   17 +-
api-ref/source/v2/lbaas-v2.inc                     |   11 +-
api-ref/source/v2/logging.inc                      |   17 +-
api-ref/source/v2/metering.inc                     |   18 +-
api-ref/source/v2/networks.inc                     |  189 +-
api-ref/source/v2/parameters.yaml                  | 2825 +++++++-------------
api-ref/source/v2/ports.inc                        |   94 +-
api-ref/source/v2/qos.inc                          |   54 +-
api-ref/source/v2/rbac-policy.inc                  |   10 +-
api-ref/source/v2/routers.inc                      |   64 +-
.../address-scope-create-request.json              |    9 +
.../address-scope-create-response.json             |   10 +
.../address-scope-show-response.json               |   10 +
.../address-scope-update-request.json              |    6 +
.../address-scope-update-response.json             |   10 +
.../address-scopes-list-response.json              |   20 +
.../samples/auto-topology/topo-show-response.json  |    4 +
.../floatingips/floating-ips-list-response.json    |   16 +-
.../floatingips/floatingip-create-response.json    |   11 +-
.../floatingip-disassociate-response.json          |    3 +-
.../floatingips/floatingip-show-response.json      |   11 +-
.../floatingips/floatingip-update-response.json    |   13 +-
.../samples/networks/network-create-response.json  |    6 +-
.../networks/network-multi-create-response.json    |   12 +-
.../networks/network-multi-show-response.json      |    6 +-
.../networks/network-provider-create-response.json |   11 +-
.../networks/network-provider-show-response.json   |    6 +-
.../v2/samples/networks/network-show-response.json |    6 +-
.../samples/networks/network-update-response.json  |    6 +-
.../networks/networks-bulk-create-response.json    |   12 +-
.../samples/networks/networks-list-response.json   |   13 +-
.../networks/networks-provider-list-response.json  |   13 +-
.../samples/ports/port-bind-create-response.json   |    8 +
.../v2/samples/ports/port-bind-show-response.json  |    9 +-
.../samples/ports/port-bind-update-response.json   |    9 +-
.../v2/samples/ports/port-create-response.json     |    9 +-
.../v2/samples/ports/port-show-response.json       |    9 +-
.../v2/samples/ports/port-update-response.json     |    9 +-
.../v2/samples/ports/ports-bind-list-response.json |    2 +
.../samples/ports/ports-bulk-create-response.json  |   16 +
.../v2/samples/ports/ports-list-response.json      |   18 +-
.../v2/samples/qos/policies-list-response.json     |    1 +
.../v2/samples/qos/policy-create-response.json     |    1 +
.../v2/samples/qos/policy-show-response.json       |    1 +
.../v2/samples/qos/policy-update-response.json     |    1 +
.../v2/samples/routers/router-create-response.json |    4 +-
.../v2/samples/routers/router-show-response.json   |    4 +-
.../v2/samples/routers/router-update-request.json  |    1 +
.../v2/samples/routers/router-update-response.json |    4 +-
.../v2/samples/routers/routers-list-response.json  |    8 +-
.../v2/samples/subnets/subnet-update-response.json |    1 +
.../v2/samples/vpn/vpnservice-create-request.json  |    3 +-
.../v2/samples/vpn/vpnservice-create-response.json |    3 +-
.../v2/samples/vpn/vpnservice-show-response.json   |    3 +-
.../v2/samples/vpn/vpnservice-update-response.json |    3 +-
.../v2/samples/vpn/vpnservices-list-response.json  |    3 +-
api-ref/source/v2/security-group-rules.inc         |   16 +-
api-ref/source/v2/security-groups.inc              |   16 +-
api-ref/source/v2/segments.inc                     |   14 +-
api-ref/source/v2/subnetpools.inc                  |   31 +-
api-ref/source/v2/subnets.inc                      |   47 +-
api-ref/source/v2/tags.inc                         |    5 +-
api-ref/source/v2/trunk.inc                        |   25 +-
api-ref/source/v2/vpnaas.inc                       |  207 +-
lower-constraints.txt                              |  102 +
neutron_lib/api/attributes.py                      |   92 +-
neutron_lib/api/definitions/__init__.py            |   16 +-
neutron_lib/api/definitions/_dummy.py              |    9 +-
neutron_lib/api/definitions/address_scope.py       |    1 -
neutron_lib/api/definitions/agent.py               |    1 -
neutron_lib/api/definitions/allowedaddresspairs.py |    1 -
.../api/definitions/auto_allocated_topology.py     |    2 +-
neutron_lib/api/definitions/base.py                |   12 +
neutron_lib/api/definitions/bgpvpn.py              |    1 -
.../api/definitions/bgpvpn_routes_control.py       |    4 -
neutron_lib/api/definitions/bgpvpn_vni.py          |    4 -
neutron_lib/api/definitions/dhcpagentscheduler.py  |   64 +
neutron_lib/api/definitions/dvr.py                 |    1 -
neutron_lib/api/definitions/external_net.py        |    1 +
neutron_lib/api/definitions/extra_dhcp_opt.py      |    4 -
neutron_lib/api/definitions/fip_port_details.py    |   38 +
neutron_lib/api/definitions/l3.py                  |    4 -
neutron_lib/api/definitions/network.py             |   12 +-
.../api/definitions/network_availability_zone.py   |    1 +
neutron_lib/api/definitions/network_mtu.py         |    6 +-
.../api/definitions/network_mtu_writable.py        |    4 -
neutron_lib/api/definitions/port_security.py       |    4 -
neutron_lib/api/definitions/portbindings.py        |    4 -
neutron_lib/api/definitions/provider_net.py        |    3 +
.../api/definitions/qos_bw_limit_direction.py      |   52 +
.../api/definitions/subnet_segmentid_writable.py   |   76 +
neutron_lib/api/definitions/vlantransparent.py     |    3 +-
neutron_lib/api/definitions/vpn.py                 |  407 +++
neutron_lib/api/definitions/vpn_endpoint_groups.py |   69 +
neutron_lib/api/definitions/vpn_flavors.py         |   41 +
neutron_lib/api/utils.py                           |   23 -
neutron_lib/api/validators/__init__.py             |   71 +-
neutron_lib/callbacks/manager.py                   |   54 +-
neutron_lib/callbacks/priority_group.py            |   34 +
neutron_lib/callbacks/registry.py                  |   14 +-
neutron_lib/clients/placement.py                   |  155 +-
neutron_lib/constants.py                           |    2 +
neutron_lib/db/api.py                              |  294 ++
neutron_lib/db/model_query.py                      |  320 +++
neutron_lib/db/utils.py                            |   71 +-
neutron_lib/exceptions/__init__.py                 |    4 +
neutron_lib/exceptions/dhcpagentscheduler.py       |   32 +
neutron_lib/exceptions/placement.py                |   15 +
neutron_lib/exceptions/vpn.py                      |  187 ++
neutron_lib/fixture.py                             |   46 +
.../locale/zh_CN/LC_MESSAGES/neutron_lib.po        |    6 +-
neutron_lib/objects/registry.py                    |   52 +
neutron_lib/objects/utils.py                       |   60 +
neutron_lib/plugins/utils.py                       |   62 +
.../api/definitions/test_dhcpagentscheduler.py     |   23 +
.../unit/api/definitions/test_fip_port_details.py  |   21 +
.../api/definitions/test_ip_substring_filtering.py |   18 -
.../test_ip_substring_port_filtering.py            |   18 +
.../api/definitions/test_qos_bw_limit_direction.py |   24 +
.../definitions/test_subnet_segmentid_writable.py  |   20 +
.../api/definitions/test_vpn_endpoint_groups.py    |   20 +
neutron_lib/utils/file.py                          |   23 -
neutron_lib/utils/helpers.py                       |   30 +
neutron_lib/utils/runtime.py                       |   70 +-
neutron_lib/utils/test.py                          |   34 +
...keyword-to-attribute-maps-3fa31e91c353d033.yaml |    5 +
...-keyword-to-attribute-map-75342446d99f4490.yaml |    5 +
.../notes/add-ovo-registry-27cb7d4ac76d4dc8.yaml   |    9 +
...ort_details-to-floatingip-a2a3c95cc54737ac.yaml |    5 +
.../notes/callback_priority-2ded960e17bd5db9.yaml  |    8 +
...ement_client_method_names_b26bb71425f42db3.yaml |   19 +
.../default_overrides_none-ecc8dcf2c9c37e5d.yaml   |    7 +
...source-provider-functions-17ec45f714ea2b23.yaml |   13 +
.../populate-dict-defaults-3f205c414f21bf54.yaml   |    7 +
.../notes/rehome-db-api-63300ddab6a41e28.yaml      |   15 +
.../rehome-db-model-query-234b1559f3728a5e.yaml    |   14 +
.../notes/rehome-db-utils-3076bf724caa31ef.yaml    |    5 +
...dhcpagentscheduler-apidef-1f7729fb5834dcd2.yaml |    5 +
...home-getphysmtu-plugin-fn-5875e352e3a14af3.yaml |    4 +
...e-plugin-utils-create-fns-9b8591f5222bff66.yaml |    5 +
.../rehome-qosbwldir-apidef-f0e3f778f2f980c0.yaml  |    4 +
...e-unstable-test-decorator-a062301ac7d7a082.yaml |    4 +
.../notes/remove-ensure_dir-aed59b616e02a2bb.yaml  |    5 +
.../notes/remove_label-801d7a1b13f179fa.yaml       |    5 +
.../notes/rm-apiutils-fa30241be7ca5162.yaml        |    6 +
...subnet_segmentid_writable-e28a85033272f05d.yaml |    5 +
.../notes/vpn-api-def-52970461fac0f7d2.yaml        |    8 +
releasenotes/source/index.rst                      |    1 +
.../source/locale/fr/LC_MESSAGES/releasenotes.po   |   24 +
releasenotes/source/queens.rst                     |    6 +
requirements.txt                                   |   13 +-
setup.cfg                                          |   19 -
test-requirements.txt                              |    5 +-
tools/tox_install.sh                               |   50 -
tox.ini                                            |   30 +-
187 files changed, 5900 insertions(+), 2513 deletions(-)


Requirements updates
--------------------

diff --git a/requirements.txt b/requirements.txt
index bc59536..00dab6f 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -8,2 +8,3 @@ SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8,>=1.0.10 # MIT
-debtcollector>=1.2.0 # Apache-2.0
-keystoneauth1>=3.3.0 # Apache-2.0
+pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0 # BSD
+keystoneauth1>=3.4.0 # Apache-2.0
+six>=1.10.0 # MIT
@@ -11,2 +12,2 @@ stevedore>=1.20.0 # Apache-2.0
-oslo.concurrency>=3.25.0 # Apache-2.0
-oslo.config>=5.1.0 # Apache-2.0
+oslo.concurrency>=3.26.0 # Apache-2.0
+oslo.config>=5.2.0 # Apache-2.0
@@ -21,0 +23,2 @@ oslo.utils>=3.33.0 # Apache-2.0
+oslo.versionedobjects>=1.31.2 # Apache-2.0
+osprofiler>=1.4.0 # Apache-2.0
@@ -22,0 +26,2 @@ WebOb>=1.7.1 # MIT
+weakrefmethod>=1.0.2;python_version=='2.7'  # PSF
+
diff --git a/test-requirements.txt b/test-requirements.txt
index 8de2f0d..f54decc 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -11,2 +10,0 @@ python-subunit>=1.0.0 # Apache-2.0/BSD
-sphinx!=1.6.6,>=1.6.2 # BSD
-openstackdocstheme>=1.17.0 # Apache-2.0
@@ -14 +11,0 @@ oslotest>=3.2.0 # Apache-2.0
-os-api-ref>=1.4.0 # Apache-2.0
@@ -16 +13 @@ os-testr>=1.0.0 # Apache-2.0
-reno>=2.5.0 # Apache-2.0
+reno>=2.5.0  # Apache-2.0






More information about the Release-announce mailing list