Browse Source

Import middleware manager only and update interface definitions

Nuwan Goonasekera 7 years ago
parent
commit
425e050865

+ 1 - 7
cloudbridge/cloud/base/provider.py

@@ -8,7 +8,6 @@ try:
 except ImportError:  # Python 2
     from ConfigParser import SafeConfigParser as ConfigParser
 
-from pyeventsystem.events import SimpleEventDispatcher
 from pyeventsystem.middleware import SimpleMiddlewareManager
 
 import six
@@ -88,8 +87,7 @@ class BaseCloudProvider(CloudProvider):
         self._config = BaseConfiguration(config)
         self._config_parser = ConfigParser()
         self._config_parser.read(CloudBridgeConfigLocations)
-        self._events = SimpleEventDispatcher()
-        self._middleware = SimpleMiddlewareManager(self._events)
+        self._middleware = SimpleMiddlewareManager()
         self.add_required_middleware()
 
     @property
@@ -100,10 +98,6 @@ class BaseCloudProvider(CloudProvider):
     def name(self):
         return str(self.__class__.__name__)
 
-    @property
-    def events(self):
-        return self._events
-
     @property
     def middleware(self):
         return self._middleware

+ 1 - 1
cloudbridge/cloud/base/services.py

@@ -54,7 +54,7 @@ class BaseCloudService(CloudService):
 
     @property
     def events(self):
-        return self._provider.events
+        return self._provider.middleware.events
 
 
 class BaseSecurityService(SecurityService, BaseCloudService):

+ 15 - 0
cloudbridge/cloud/interfaces/provider.py

@@ -55,6 +55,21 @@ class CloudProvider(object):
                   used to initialize the provider, as well as other global
                   configuration properties.
         """
+        pass
+
+    @abstractproperty
+    def middleware(self):
+        """
+        Returns the middleware manager associated with this provider. The
+        middleware manager can be used to add or remove middleware from
+        cloudbridge. Refer to pyeventsystem documentation for more information
+        on how the middleware manager works.
+
+        :rtype: :class:`.MiddlewareManager`
+        :return:  An object of class MiddlewareManager, which can be used to
+        add or remove middleware from cloudbridge.
+        """
+        pass
 
     @abstractmethod
     def authenticate(self):

+ 1 - 0
requirements.txt

@@ -1,2 +1,3 @@
+# TODO: move to setup.py when pyeventsystem is released to pip
 git+https://github.com/CloudVE/pyeventsystem
 -e ".[dev]"