wingo - in flumotion/trunk: . flumotion/admin flumotion/common flumotion/job flumotion/worker

flumotion-commit at lists.fluendo.com flumotion-commit at lists.fluendo.com
Wed Jun 13 12:29:25 CEST 2007


Author: wingo
Date: Wed Jun 13 12:29:18 2007
New Revision: 5163

Modified:
   flumotion/trunk/ChangeLog
   flumotion/trunk/flumotion/admin/admin.py
   flumotion/trunk/flumotion/common/common.py
   flumotion/trunk/flumotion/common/errors.py
   flumotion/trunk/flumotion/common/server.py
   flumotion/trunk/flumotion/job/job.py
   flumotion/trunk/flumotion/worker/medium.py
Log:
2007-06-13  Andy Wingo  <wingo at pobox.com>

	* flumotion/admin/admin.py (AdminModel.connectToManager): 
	* flumotion/job/job.py (JobMedium._createComponent): 
	* flumotion/worker/medium.py (WorkerMedium.startConnecting): 
	* flumotion/common/server.py (Server.startSSL): When asked to
	listen or connect with SSL, first assert that it is available, so
	that we get a common exception. Fixes #371.
	
	* flumotion/common/errors.py (NoSSLError): 
	* flumotion/common/common.py (assertSSLAvailable): New utility,
	asserts that SSL is available, raising NoSSLError if that is not
	the case.



Modified: flumotion/trunk/ChangeLog
==============================================================================
--- flumotion/trunk/ChangeLog	(original)
+++ flumotion/trunk/ChangeLog	Wed Jun 13 12:29:18 2007
@@ -1,3 +1,17 @@
+2007-06-13  Andy Wingo  <wingo at pobox.com>
+
+	* flumotion/admin/admin.py (AdminModel.connectToManager): 
+	* flumotion/job/job.py (JobMedium._createComponent): 
+	* flumotion/worker/medium.py (WorkerMedium.startConnecting): 
+	* flumotion/common/server.py (Server.startSSL): When asked to
+	listen or connect with SSL, first assert that it is available, so
+	that we get a common exception. Fixes #371.
+	
+	* flumotion/common/errors.py (NoSSLError): 
+	* flumotion/common/common.py (assertSSLAvailable): New utility,
+	asserts that SSL is available, raising NoSSLError if that is not
+	the case.
+
 2007-06-12  Andy Wingo  <wingo at pobox.com>
 
 	* flumotion/component/base/scheduler.py (Scheduler._eventStarted)

Modified: flumotion/trunk/flumotion/admin/admin.py
==============================================================================
--- flumotion/trunk/flumotion/admin/admin.py	(original)
+++ flumotion/trunk/flumotion/admin/admin.py	Wed Jun 13 12:29:18 2007
@@ -207,6 +207,7 @@
         self.clientFactory.startLogin(connectionInfo.authenticator)
 
         if connectionInfo.use_ssl:
+            common.assertSSLAvailable()
             from twisted.internet import ssl
             reactor.connectSSL(connectionInfo.host, connectionInfo.port,
                                self.clientFactory, ssl.ClientContextFactory())

Modified: flumotion/trunk/flumotion/common/common.py
==============================================================================
--- flumotion/trunk/flumotion/common/common.py	(original)
+++ flumotion/trunk/flumotion/common/common.py	Wed Jun 13 12:29:18 2007
@@ -800,3 +800,12 @@
         return True
 
     return False
+
+def assertSSLAvailable():
+    """Assert that twisted has support for SSL connections.
+    """
+    from twisted.internet import posixbase
+    from flumotion.common import errors
+
+    if not posixbase.sslEnabled:
+        raise errors.NoSSLError()

Modified: flumotion/trunk/flumotion/common/errors.py
==============================================================================
--- flumotion/trunk/flumotion/common/errors.py	(original)
+++ flumotion/trunk/flumotion/common/errors.py	Wed Jun 13 12:29:18 2007
@@ -36,6 +36,9 @@
 class NoProjectError(Exception):
     "The given project does not exist"
 
+class NoSSLError(Exception):
+    "SSL is not available"
+
 # connection errors
 class ConnectionError(pb.Error):
     "General connection error"

Modified: flumotion/trunk/flumotion/common/server.py
==============================================================================
--- flumotion/trunk/flumotion/common/server.py	(original)
+++ flumotion/trunk/flumotion/common/server.py	Wed Jun 13 12:29:18 2007
@@ -91,6 +91,9 @@
         @returns: {twisted.internet.interfaces.IListeningPort} on which
         we are listening; call .stopListening() to stop.
         """
+        from flumotion.common import common
+        common.assertSSLAvailable()
+
         # if no path in pemFile, then look for it in the config directory
         if not os.path.split(pemFile)[0]:
             pemFile = os.path.join(configDir, pemFile)

Modified: flumotion/trunk/flumotion/job/job.py
==============================================================================
--- flumotion/trunk/flumotion/job/job.py	(original)
+++ flumotion/trunk/flumotion/job/job.py	Wed Jun 13 12:29:18 2007
@@ -261,6 +261,8 @@
         transport = self._managerTransport
         self.debug('logging in with authenticator %r' % self._authenticator)
         if transport == "ssl":
+            from flumotion.common import common
+            common.assertSSLAvailable()
             from twisted.internet import ssl
             self.info('Connecting to manager %s:%d with SSL' % (host, port))
             reactor.connectSSL(host, port, managerClientFactory,

Modified: flumotion/trunk/flumotion/worker/medium.py
==============================================================================
--- flumotion/trunk/flumotion/worker/medium.py	(original)
+++ flumotion/trunk/flumotion/worker/medium.py	Wed Jun 13 12:29:18 2007
@@ -147,6 +147,8 @@
         self.factory.startLogin(info.authenticator)
 
         if info.use_ssl:
+            from flumotion.common import common
+            common.assertSSLAvailable()
             from twisted.internet import ssl
             reactor.connectSSL(info.host, info.port, self.factory,
                                ssl.ClientContextFactory())


More information about the flumotion-commit mailing list