Rocky Series Release Notes

1.18.0

New Features

  • Add API extensionsort-key-validation. This extension indicates if theserver supports validation on sorting.

  • Add API extensionfilter-validation. This extension indicates if theserver supports validation on filter parameters of the list requests.

  • Introducedexpose-port-forwarding-in-fip API extension for exposingport_forwardings field inFloatingIP API response. This extensionrequires therouter andport_forwarding service plugins.

  • Theneutron.common.rpc module is now available asneutron_lib.rpc and automatically exposes all exception modules fromneutron_lib.exceptions for RPC usage.

  • Exceptions fromneutron.common.exceptions are now available in theneutron_lib.exceptions package whereupon exceptions are now in their respective module (e.g. L3 exceptions are inneutron_lib.exceptions.l3, etc.).

  • Theneutron.tests.fake_notifier is now available asneutron_lib.tests.unit.fake_notifier.

  • Theneutron_lib.utils.runtime.list_package_modules function is now available for listing all modules in a said package.

  • TheRPCFixture is now available inneutron_lib.fixtures for setting up RPC based unit tests.

  • Theget_port_binding_by_status_and_host function is now available inneutron_lib.plugins.utils.

  • Adds api-extensionsegments-peer-subnet-host-routes. Adds host routesto subnets on a routed network (segments).RFE: 1766380.

Other Notes

  • API extensionsort-key-validation relies on theis_sort_key keywordin theRESOURCE_ATTRIBUTE_MAP to judge if an attribute can be used assort key. Neutron plugins which want to support sort key validationneeds to setis_sort_key toTrue for each attribute in theirresource attribute map.

  • API extensionfilter-validation relies on theis_filter keywordin theRESOURCE_ATTRIBUTE_MAP to judge if an attribute can be used asfilter. Neutron plugins which want to support filter validationneeds to setis_filter toTrue for each attribute in theirresource attribute map.

  • Theconvert_list_to anddefault parameters of external_fixed_ipshave been removed from l3 and l3_ext_gw_mode API definitions.

1.17.0

New Features

  • Addfloatingip-pools API extension. This extension providesAPI endpoint for listing floatingip pools.

  • Adds api extensionport-mac-address-regenerate. Also adds converterconvert_to_mac_if_none used by api extenstionport-mac-address-regenerate. When passing'null' (None) as themac_address on port update the converter will generate a new macaddress that will be assigned to the port.RFE: #1768690.

  • The API defintion for theport-security-groups-filtering extension is now available inneutron_lib.api.definitions.security_groups_port_filtering.

Upgrade Notes

  • TheCORE andL3 service type name constants have been removed fromneutron_lib.constants. These constants are duplicates of those inneutron_lib.plugin.constants and consumers should use the latter.

Other Notes

  • Add a shim extensionavailability_zone_filter to indicateifavailability_zone resource supports filter parameters.

1.16.0

New Features

  • Add an API extensionuplink-status-propagation to indicate if theserver support propagating uplink status. This extension adds an attributepropagate_uplink_status to port. This attribute can be implementedfor VF port. If it is set toTrue, the VF link state can follow thatof PF. The default isFalse which is the current behavior.

Other Notes

  • Add a shim extensionstandard-attr-segment to indicate if segmentresource contains standard attributes.

1.15.0

New Features

  • Addempty-string-filtering API extension. This extension indicatesif the server supports filtering attributes with empty value.

  • NewPORT_BINDING,ACTIVATE andDEACTIVATE definitions have been added toneutron_lib.agent.topics, to enable plug-ins to notify agents when a port binding has been activated or de-activated.

  • Theportforwarding API definition forFloatingIP``isintroduced,whichallowsa``FloatingIP:Port to forward packets back to a VM’sInternalIP:Port .

  • Add the definitions for thesfc andflowclassifier API extensions of the networking-sfc project.

  • Add aconvert_uppercase_ip converter, convenient to easily accept for instanceIpv4,IPv4 andipv4 independently of the case of the first two letters.

  • And add aconvert_prefix_forced_case converter, to allow forcing the case of a string prefix

  • Add auuid_list_non_empty validator, that will validate that the value is a non-empty list of UUIDs

  • Add API extensions to advertise the support of standard attributes withBGPVPN resources:standard-attr-bgpvpn,standard-attr-bgpvpn-network-association,standard-attr-bgpvpn-router-association andstandard-attr-bgpvpn-port-association.

Bug Fixes

  • For Infiniband support, Ironic needs to send theclient-id DHCP optionas a number in order for IP address assignment to work.This is now supported in Neutron, and can be specified as option number61 as defined in RFC 4776. For more information see bug1770932

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 keywordis_filter to attribute maps. This keyword indicatesthat the attribute can be used for filtering result on list requests.

  • Add a new keywordis_sort_key to attribute maps. This keyword indicatesthat the attribute can be used as a sort key for sorting list result.

  • Theneutron_lib.utils.runtime.NamespacedPlugins class is now available and wraps a stevedore namespace of plugins.

  • Theneutron_lib.objects.registry module is now available for loading neutron versioned object classes registered as entry points with theNEUTRON_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 importneutron.objects.

  • Addfip-port-details API extension. This extension addport_detailsattribute to the Floating IP resource.

  • Introduced priority to callback subscription. An integer value can beassociated with each callback so that callbacks can be executed inspecified order for same resources and events. Every callback will havepriority value by default. To execute callbacks in specified order, prioritiesshould 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 willbe used, including if the attribute was explicitly definedasnull.

  • Addedlist_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 version1.3 of placement API for listing resource providers that are members of any of the list of aggregates provided. It requires at least version1.14 of placement API for listing nested resource providers.

  • Addedget_resource_provider function to the Placement API client, which allows to retrieve an specific Resource Provider by its UUID.

  • AddedPlacementAPIVersionIncorrect exception class which can be raised when requested placement API version is incorect and doesn’t support requested API feature.

  • A newdict_populate_defaults flag can be used in API definition fora dictionary attribute, which will results in default values for the keysto be filled in. This can also be used on values of a dictionary attributeif they are dictionaries as well.

  • The public APIs fromneutron.db.api are now available in theneutron_lib.db.api module.

  • TheCONTEXT_READER andCONTEXT_WRITER global database contexts are available inneutron_lib.db.api for convenient access as decorators.

  • TheDBRetryErrorsFixture andDBAPIContextManagerFixture test fixtures are now available inneutron_lib.fixture allowing consumers to patch out retry error values and the gobal context manager.

  • The public functions ofneutron.db._model_query are now available inneutron_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 namedDBQueryHooksFixture is provided for testing purposes allowing consumers to patch-out the model_query filter hooks.

  • Themake_weak_ref andresolve_ref functions from neutron are now available inneutron_lib.utils.helpers.

  • TheTenantIdProjectIdFilterConflict exception is now available inneutron_lib.exceptions.

  • Theneutron.objects.utils module is now available inneutron_lib.objects.utils.

  • The database utility functionsget_marker_obj,filter_non_model_columns,model_query_scope_is_project andresource_fields are now available inneutron_lib.db.utils.

  • Thedhcp_agent_scheduler extension’s API defintion is now available inneutron_lib.api.definitions.dhcpagentscheduler and the corresponding exceptions inneutron_lib.exceptions.dhcpagentscheduler.

  • Theneutron.plugins.common.utils.get_deployment_physnet_mtu function is now available inneutron_lib.plugins.utils with the same name.

  • Thecreate_network,create_subnet andcreate_port functions fromneutron.plugins.common.utils are now available inneutron_lib.plugins.utils.

  • Theqos-bw-limit-direction extension’s API definition is now available inneutron_lib.api.definitions.qos_bw_limit_direction.

  • Theunstable_test decorator fromneutron.tests.base is now available in neutron-lib inneutron_lib.utils.test.

  • Makesegment_id of subnet resource writable. Enables the possibility tomigrate a non-routed network to a routed network.

  • Addsneutron-vpnaas API definitions to neutron-lib, includingvpnaas,vpn-endpoint-groups andvpn-flavors.

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

  • A new validator for typetype:list_of_subnets_or_none to validate data is a list of subnet dicts orNone 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 globalcontext_manager fromneutron.db.api should now use theget_context_manager() function in theneutron_lib.db.api module or the globalCONTEXT_READER andCONTEXT_WRITER if needed.

  • The deprecatedneutron_libutils.file.ensure_dir function is removed. Consumers can useensure_tree(path,0o755) fromoslo_utils.fileutils instead.

  • Theneutron_lib.api.utils module has been removed. The singlepopulate_project_info function therein is available inneutron_lib.api.attributes and has been marked as a moved function in theutils 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

  • TheLABEL variable, which was uselessly duplicatingALIAS, has beenremoved from API definition modules.