Pike Series Release Notes


New Features

  • The FAULT_MAP dictionary from neutron.api.v2.base has been rehomed to neutron_lib.api.faults with the same name.


New Features

  • A VIF type for Agilio OVS (VIF_TYPE_AGILIO_OVS) has been added to portbindings. This links the external Neutron plugin to the external OS-VIF plugin in Nova.

  • The VNIC_VIRTIO_FORWARDER VNIC type has been added to portbindings. This VNIC type is intended to request a low-latency virtio port inside the instance, likely backed by hardware acceleration. Currently the Agilio OVS external plugin provides support for this, with support from other vendors following soon.

  • The exception classes have migrated from neutron_fwaas to neutron_lib as mentioned below:

    • neutron_fwaas.extensions.firewall -> neutron_lib.exceptions.firewall_v1

    • neutron_fwaas.extensions.firewallrouterinsertion -> neutron_lib.exceptions.firewall_v1

    • neutron_fwaas.extensions.firewall_v2 -> neutron_lib.exceptions.firewall_v2

  • API definition for the logging extension for security_group resource.

  • The net-mtu extension API definition has been added as neutron_lib.api.definitions.network_mtu.

  • Added validator range_or_none.

  • The neutron address-scope extension’s API definition is now available as neutron_lib.api.definitions.address_scope.

  • The neutron agent extension’s API definition is now available as neutron_lib.api.definitions.agent.

  • The neutron auto-allocated-topology extension’s API definition is now available as neutron_lib.api.definitions.auto_allocated_topology.

  • Contexts may now have transaction constraints set on them to be enforced by the revision plugin in Neutron for generalized compare-and-swap updates. Calling set_transaction_constraint on the context before performing a resource mutation will setup the constraint. This is also exposed to users via the HTTP API with if-match headers and the API layer sets the constraint on the context.

Bug Fixes

  • Update hacking check N536. Current implementation recognizes self.assertEqual((None, None), A) as invalid incorrectly while (None, None) is not None.


New Features

  • A new neutron_lib.validators package is now available where the existing definitions from the validators module are now in neutron_lib.validators.__init__ and subsequent per-component validators can be created in their own validators sub-module.

  • The bgpvpn-routes-control API extension is introduced to enrich the base bgpvpn extension. It allows to control BGPVPN connectivity at the granularity of a port and the advertisement into a BGPVPN of routes corresponding to destination reachable via a given port (static routes, BGPVPN route leaking).

  • The DNS Integration extension API definition has been added as neutron_lib.api.definitions.dns.

  • The validate_dns_name, validate_fip_dns_name, and validate_dns_domain are now available as neutron-lib validators.

  • The dns-domain-ports extension API definition has been added as neutron_lib.api.definitions.dns_domain_ports.

  • API reference for the logging extension for security_group resource.

  • Constants from neutron.common.constants are now available in neutron-lib. Note that consumers using ROUTER_STATUS_ACTIVE or ROUTER_STATUS_ERROR should now just use ACTIVE and ERROR from neutron_lib.constants.

  • The public APIs from neutron.plugins.ml2.driver_api are now in neutron_lib.plugins.ml2.api.

  • The neutron versioned object exceptions from neutron.objects.exceptions are now available in neutron_lib.objects.exceptions.

  • The DriverBase class from neutron.services.qos.drivers.base is now available in the neutron_lib.services.qos.base module.

  • The constants defined in neutron.services.qos.qos_consts are now available in neutron_lib.services.qos.constants.

  • The load_class_by_alias_or_classname function from neutron.common.utils is now available in neutron_lib.utils.runtime.

  • The synchronized decorator from neutron.common.utils is now available in neutron_lib.utils.runtime.

Other Notes

  • The deprecated N523 hacking check that ensures proper oslo namespace imports has been removed.


New Features

  • The constants VALID_BLANK_EXTRA_DHCP_OPTS and DHCP_OPT_VALUE_MAX_LEN are now public in the neutron_lib.api.definitions.extra_dhcp_opt API definition module.


New Features

  • A bulk of the neutron.api.v2.attributes functionality is now available in neutron_lib.api.attributes. A new AttributeInfo class is available in that acts as a wrapper for an API resource’s attribute dict and allows consumers to perform operations with the underlying attribute dict. The populate_project_info function is now available. The global attribute map RESOURCES is now available and will take the place of neutron’s global RESOURCE_ATTRIBUTE_MAP.

  • The neutron_lib.fixture.APIDefinitionFixture has been updated to handle backing-up and restoring the global RESOURCES dict. By default the constructor now also uses all API definitions if none are passed to it’s constructor. This is the default behavior almost all consumers need and is thus a convenience change.


New Features

  • The ACTION_STATUS is added to API definitions for neutron extension has specific action_status.

  • A new converter is added to facilitate converting IPv6 CIDRs to canonical format. This way IPv6 CIDRs can be specified in multiple formats but would be handled in their canonical format.

  • New N537 hacking check is introduced that enforces no logging message translations, in any logging level. The check is enabled by default. Also, the N533 hacking check is now removed because it is covered by N537.

  • The network, port, subnet and subnetpool API definitions are now available in neutron_lib.api.definitions.

  • The extra_dhcp_opt API extension definition from neutron.extensions has been rehomed to neutron_lib.api.definitions with the same name.

  • A new validator validate_any_key_specs_or_none has been added for the corresponding validation type type:list_of_any_key_specs_or_none. This validator can be used to check that a list of dicts match at least 1 key spec allowing consumers the ability to define multiple formats for their validated data.

  • The neutron.common.utils function is_port_trusted is now available in neutron_lib.utils.net.

Upgrade Notes

  • FWaaS has renamed the public attribute to shared to be in-sync with Openstack nomenclature based on the functionality the shared attribute provides.

  • Library consumers may need to adopt their code to new requirements of N537 hacking check, removing translation markers from all logging messages. If for some reason it doesn’t fit the project, consumers can disable the new hacking check using ignore statement in flake8 section of their tox.ini file, or by other means.


New Features

  • A new fixture for testing with neutron-lib API definitions has been added as neutron_lib.fixtures.APIDefinitionFixture. This fixture can be used anytime extension plugins are being tested that modify resource attribute maps and ensures the single global API definition attribute map is copied and restored.

  • The neutron_lib.api.extensions.APIExtensionDescriptor class now defines update_attributes_map that uses the API definitions attribute map if none is given. This is the default behavior in most all extensions today and thus is collapsed into the base class for convenience.

  • Many of the constants from neutron.plugins.common.constants are now available in neutron_lib.plugins.constants and neutron_lib.constants.

  • The NeutronWorker class from the neutron.worker module is now available as BaseWorker in neutron_lib.worker.

Bug Fixes

  • The oslo.db context manager returned by db.api.get_context_manager() will be configured with flush_on_subtransaction=True to more closely match the behavior of the previous session.begin(subtransactions=True) pattern we used everywhere before. See bug 1664643 for more details.


New Features

  • API reference for the networking-bgpvpn extension.

  • The APIExtensionDescriptor was added to neutron_lib.api.extensions and can be used with extensions that have an API definition in neutron-lib to minimize the boilplate code needed in the extension definition class. For more details, see the dev-ref.

  • API definition and reference documentation for the port data plane status extension.

  • The neutron_lib.api.extensions.ExtensionDescriptor class’s get_plugin_interface method now formally only supports neutron_lib.services.base.ServicePluginBase. This change reflects the existing usage by consumers as almost all are returning instances of ServicePluginBase already.

  • The class WorkerBase is now available and provides the same functionality that’s provided by neutron.worker.WorkerSupportServiceMixin.

  • The ML2 MechanismDriver class from neutron.plugins.ml2.driver_api is now available in neutron_lib.plugins.ml2.api.

  • The port security extension API definition has been rehomed from neutron to neutron_lib.api.definitions.port_security. The related exceptions can be found in the neutron_lib.exceptions.port_security module.

Other Notes

  • The hacking check factory function neutron_lib.hacking.checks.incubating_factory has been removed. All consumers should use neutron_lib.hacking.checks.factory as per the usage dev-ref.


New Features

  • A new neutron_lib.exceptions package is now available where the existing definitions from the exceptions module are now in neutron_lib.exceptions.__init__ and subsequent per-component exceptions can be created in their own exceptions sub-module.

  • Rehome the validation for checking if an extension is supported by the plugin. The method is_extension_supported will now be part of neutron_lib.api.extensions.

  • API definition for the networking-bgpvpn extension.

  • Adds new validator validate_list_of_regex_or_none.

  • neutron_lib.db has a public module api that provides accessor functions for transactional context manager services.

  • neutron_lib.fixture has a new SqlFixture available.

  • API reference and definition for networking-midonet’s fip64 extension.

  • Added hacking check N536. This hacking check is added to the incubating checks.

  • The exception classes from neutron.extensions.l3 have been rehomed into neutron_lib.exceptions.l3.

  • API reference and definition for networking-midonet’s logging-resource extension.

  • API reference and definition for networking-midonet’s router-interface-fip extension.