- @abc.abstractmethod
- @asyncio.coroutine
- def terminate_vl(self, vlr):
- """Terminate the Virtual Link Record"""
- pass
+class NsmPlugins(object):
+ """ NSM Plugins """
+ def __init__(self):
+ self._plugin_classes = {
+ "openmano": openmano_nsm.OpenmanoNsPlugin,
+ }
+
+ @property
+ def plugins(self):
+ """ Plugin info """
+ return self._plugin_classes
+
+ def __getitem__(self, name):
+ """ Get item """
+ return self._plugin_classes[name]
+
+ def register(self, plugin_name, plugin_class, *args):
+ """ Register a plugin to this Nsm"""
+ self._plugin_classes[plugin_name] = plugin_class
+
+ def deregister(self, plugin_name, plugin_class, *args):
+ """ Deregister a plugin to this Nsm"""
+ if plugin_name in self._plugin_classes:
+ del self._plugin_classes[plugin_name]
+
+ def class_by_plugin_name(self, name):
+ """ Get class by plugin name """
+ return self._plugin_classes[name]