Move setting up of staticdirector to init submodule
authorElrond <elrond+mediagoblin.org@samba-tng.org>
Mon, 4 Jul 2011 21:47:13 +0000 (23:47 +0200)
committerElrond <elrond+mediagoblin.org@samba-tng.org>
Mon, 4 Jul 2011 21:47:13 +0000 (23:47 +0200)
This duplicates some exceptions, which will be fixed very
soon.

mediagoblin/app.py
mediagoblin/init/__init__.py

index 9454b40348f802e632a4ca25d44b79f96749c249..ab8549cb75ca03539e98adafc49e0f4eebfbc4ff 100644 (file)
@@ -20,13 +20,13 @@ import urllib
 import routes
 from webob import Request, exc
 
-from mediagoblin import routing, util, storage, staticdirect
+from mediagoblin import routing, util, storage
 from mediagoblin.init.config import (
     read_mediagoblin_config, generate_validation_report)
 from mediagoblin.db.open import setup_connection_and_db_from_config
 from mediagoblin.mg_globals import setup_globals
 from mediagoblin.init.celery import setup_celery_from_config
-from mediagoblin.init import get_jinja_loader
+from mediagoblin.init import get_jinja_loader, get_staticdirector
 from mediagoblin.workbench import WorkbenchManager
 
 
@@ -85,19 +85,7 @@ class MediaGoblinApp(object):
         self.routing = routing.get_mapper()
 
         # set up staticdirector tool
-        if app_config.has_key('direct_remote_path'):
-            self.staticdirector = staticdirect.RemoteStaticDirect(
-                app_config['direct_remote_path'].strip())
-        elif app_config.has_key('direct_remote_paths'):
-            direct_remote_path_lines = app_config[
-                'direct_remote_paths'].strip().splitlines()
-            self.staticdirector = staticdirect.MultiRemoteStaticDirect(
-                dict([line.strip().split(' ', 1)
-                      for line in direct_remote_path_lines]))
-        else:
-            raise ImproperlyConfigured(
-                "One of direct_remote_path or "
-                "direct_remote_paths must be provided")
+        self.staticdirector = get_staticdirector(app_config)
 
         # Setup celery, if appropriate
         if setup_celery and not app_config.get('celery_setup_elsewhere'):
index b8ed2456c8fe3c885dc72e93cc298a31490ec41b..4bf69158bc19c4017958f54d4e64f964c28af9ba 100644 (file)
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 import jinja2
+from mediagoblin import staticdirect
+
+
+class Error(Exception): pass
+class ImproperlyConfigured(Error): pass
 
 
 def get_jinja_loader(user_template_path=None):
@@ -31,3 +36,19 @@ def get_jinja_loader(user_template_path=None):
              jinja2.PackageLoader('mediagoblin', 'templates')])
     else:
         return jinja2.PackageLoader('mediagoblin', 'templates')
+
+
+def get_staticdirector(app_config):
+    if app_config.has_key('direct_remote_path'):
+        return staticdirect.RemoteStaticDirect(
+            app_config['direct_remote_path'].strip())
+    elif app_config.has_key('direct_remote_paths'):
+        direct_remote_path_lines = app_config[
+            'direct_remote_paths'].strip().splitlines()
+        return staticdirect.MultiRemoteStaticDirect(
+            dict([line.strip().split(' ', 1)
+                  for line in direct_remote_path_lines]))
+    else:
+        raise ImproperlyConfigured(
+            "One of direct_remote_path or "
+            "direct_remote_paths must be provided")