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
participants (1)
-
no-reply@openstack.org