6f94faf64e
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
10 lines
518 B
YAML
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``.
|