Ocata Series Release Notes

Ocata Series Release Notes


New Features

  • Introduced neutron_lib.plugins.directory.is_loaded(). This can be used in lieu of len(plugins()) or bool(plugins()) or plugins() alone.

  • Neutron agent extension abstract classes are moved from neutron.agent to neutron_lib.agent

  • The constants EXPAND_BRANCH and CONTRACT_BRANCH are now available in neutron_lib.db.constants. They should be used instead of the ones in neutron.db.migration.cli.

  • Introduced neutron_lib.fixture, and added fixture for plugin directory PluginDirectoryFixture. An example below:

    from neutron_lib.plugins import directory
    from neutron_lib import fixture
    def setup_test_directory_instance(self):
        """Give a private copy of the directory to each test."""
        self._plugin_directory = directory._PluginDirectory()
  • Neutron’s callback API found in neutron.callbacks.* is now exposed in neutron_lib.callbacks.*. In addition, a set of event payload objects are now available for use in transporting event payload data in a standardized way.

  • A test fixture is provided for isolating the global callback manager in neutron_lib.callbacks.registry. For more details see the comments in neutron_lib.fixture.CallbackRegistryFixture.

  • Adds neutron-fwaas API definitions to neutron-lib.

  • Added the converter convert_string_to_case_insensitive.

  • Added the converter convert_to_protocol.

  • Added the validator validate_port_range_or_none.

  • A converter convert_ip_to_canonical_format has been added to neutron-lib which allows IPv6 addresses to be stored and displayed in canonical format.

  • The floating_ip and router API definitions from neutron.extensions.l3 have been rehomed to neutron_lib.api.definitions as the module l3.

  • The get_random_mac utility function from neutron.common.utils is now in neutron_lib.utils.net with the same name, get_random_mac.

  • The API definition and associated constants have been rehomed from neutron.extensions.portbindings to neutron_lib.api.definitions.portbindings.

  • The Neutron Provider network extension API definition has been added as neutron_lib.api.definitions.provider_net.

  • The hacking check factory incubating_factory has been added to neutron_lib.hacking.checks allowing adopters to test compliance on incubating hacking checks. See the usage documentation for additional details.

  • The class neutron.services.service_base.ServicePluginBase is now available as neutron_lib.services.base.ServicePluginBase.

  • Added validator validate_ip_or_subnet_or_none

Deprecation Notes

  • The function neutron_lib.api.utils.populate_project_info has moved to neutron_lib.api.attributes.populate_project_info. It will be removed from the old location in the future.

  • The use of neutron_lib.callbacks.registry.notify() and neutron_lib.callbacks.manager.CallbacksManager.notify() is deprecated in favor of their publish() counterparts and will be removed in the “Queens” release time-frame.

  • policy.refresh() and policy.reset() have been removed. The library policy module is not meant for public consumption, and it should be considered in practice a private component of the library. If you use it, you will do so at your own risk, as it has been marked as a private module.

Other Notes

  • OpenStack dev hacking check H904 is now enabled in tox.ini via the enable-extensions configuration property. Neutron-lib adopters should also enable this hacking check in their tox.ini.


New Features

  • The ExtensionDescriptor class moved from neutron.api.extensions to neutron_lib.api.extensions.

  • Introduced neutron_lib.plugins.directory to get references for loaded plugins in a neutron server process. For example:

    from neutron_lib import constants
    from neutron_lib.plugins import directory
    core_plugin = directory.get_plugin()
    l3_plugin = directory.get_plugin(constants.L3)

    For more examples, see: https://review.openstack.org/#/c/386845/

  • API reference for the trunk extension.

Other Notes

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.