Sfoglia il codice sorgente

Replaces validate_connection_info with validate_connection

Alessandro Pilotti 9 anni fa
parent
commit
b9626c600c
3 ha cambiato i file con 10 aggiunte e 20 eliminazioni
  1. 4 0
      coriolis/exception.py
  2. 4 17
      coriolis/providers/base.py
  3. 2 3
      coriolis/worker/rpc/server.py

+ 4 - 0
coriolis/exception.py

@@ -288,3 +288,7 @@ class TaskProcessException(CoriolisException):
 
 
 class OperatingSystemNotFound(NotFound):
 class OperatingSystemNotFound(NotFound):
     pass
     pass
+
+
+class ConnectionValidationException(CoriolisException):
+    pass

+ 4 - 17
coriolis/providers/base.py

@@ -19,23 +19,6 @@ class BaseProvider(object):
     def platform(self):
     def platform(self):
         raise NotImplementedError("Missing provider platform attribute.")
         raise NotImplementedError("Missing provider platform attribute.")
 
 
-    @property
-    def connection_info_schema(self):
-        raise NotImplementedError("Missing connection info schema.")
-
-    @abc.abstractmethod
-    def validate_connection_info(self, connection_info):
-        """ Checks the provided connection info and raises an exception
-        if it is invalid.
-        """
-        try:
-            schemas.validate_value(
-                connection_info, self.connection_info_schema)
-        except Exception as ex:
-            raise Exception(
-                "Error validating provider '%s' connection "
-                "info: %s" % str(ex)) from ex
-
     def get_os_morphing_tools(self, conn, osmorphing_info):
     def get_os_morphing_tools(self, conn, osmorphing_info):
         raise exception.OSMorphingToolsNotFound()
         raise exception.OSMorphingToolsNotFound()
 
 
@@ -43,6 +26,10 @@ class BaseProvider(object):
 class BaseEndpointProvider(BaseProvider):
 class BaseEndpointProvider(BaseProvider):
     __metaclass__ = abc.ABCMeta
     __metaclass__ = abc.ABCMeta
 
 
+    @abc.abstractmethod
+    def validate_connection(self, ctxt, connection_info):
+        pass
+
     @abc.abstractmethod
     @abc.abstractmethod
     def get_instances(self, ctxt, connection_info, limit=None,
     def get_instances(self, ctxt, connection_info, limit=None,
                       last_seen_id=None, instance_name_pattern=None):
                       last_seen_id=None, instance_name_pattern=None):

+ 2 - 3
coriolis/worker/rpc/server.py

@@ -195,9 +195,8 @@ class WorkerServerEndpoint(object):
         is_valid = True
         is_valid = True
         message = None
         message = None
         try:
         try:
-            provider.validate_connection_info(
-                secret_connection_info)
-        except Exception as ex:
+            provider.validate_connection(ctxt, secret_connection_info)
+        except exception.ConnectionValidationException as ex:
             is_valid = False
             is_valid = False
             message = str(ex)
             message = str(ex)