neutron-lib/releasenotes/notes/add-ovo-registry-27cb7d4ac76d4dc8.yaml
Boden R 6f94faf64e versioned object plugin registry
This patch implements the plumbing to support dynamically loadable
plugins for neutron versioned objects as per the spec [1]. Specifically
a utility class is introduced as a generic plugin manager for stevedore
based plugins in a given namespace. A global singleton instance of this
plugin manager is then wrapped to provide access to neutron versioned
objects.

Using this implementation:
- Neutron version object classes are registered as entry points. For
example [2].
- Consumers can then use the object registry in neutron_lib to access
them, for example [3].

As-is this change doesn't introduce any breakage risk; it's new
functionality that no one is using.

[1] I079d06502e6e7b1e20aea882979b0ecd9106eaeb
[2] https://review.openstack.org/#/c/553836/
[3] https://review.openstack.org/#/c/553835/

Change-Id: I39d9bab1e24fbcbd5f9b3abf80560da920f1cf26
2018-04-11 22:30:20 +00:00

10 lines
518 B
YAML

---
features:
- 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``.