Move setting up of staticdirector to init submodule

This duplicates some exceptions, which will be fixed very
soon.
This commit is contained in:
Elrond 2011-07-04 23:47:13 +02:00
parent 0dd0a71f5e
commit c85c9dc712
2 changed files with 24 additions and 15 deletions

View File

@ -20,13 +20,13 @@ import urllib
import routes import routes
from webob import Request, exc from webob import Request, exc
from mediagoblin import routing, util, storage, staticdirect from mediagoblin import routing, util, storage
from mediagoblin.init.config import ( from mediagoblin.init.config import (
read_mediagoblin_config, generate_validation_report) read_mediagoblin_config, generate_validation_report)
from mediagoblin.db.open import setup_connection_and_db_from_config from mediagoblin.db.open import setup_connection_and_db_from_config
from mediagoblin.mg_globals import setup_globals from mediagoblin.mg_globals import setup_globals
from mediagoblin.init.celery import setup_celery_from_config 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 from mediagoblin.workbench import WorkbenchManager
@ -85,19 +85,7 @@ class MediaGoblinApp(object):
self.routing = routing.get_mapper() self.routing = routing.get_mapper()
# set up staticdirector tool # set up staticdirector tool
if app_config.has_key('direct_remote_path'): self.staticdirector = get_staticdirector(app_config)
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")
# Setup celery, if appropriate # Setup celery, if appropriate
if setup_celery and not app_config.get('celery_setup_elsewhere'): if setup_celery and not app_config.get('celery_setup_elsewhere'):

View File

@ -15,6 +15,11 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
import jinja2 import jinja2
from mediagoblin import staticdirect
class Error(Exception): pass
class ImproperlyConfigured(Error): pass
def get_jinja_loader(user_template_path=None): def get_jinja_loader(user_template_path=None):
@ -31,3 +36,19 @@ def get_jinja_loader(user_template_path=None):
jinja2.PackageLoader('mediagoblin', 'templates')]) jinja2.PackageLoader('mediagoblin', 'templates')])
else: else:
return jinja2.PackageLoader('mediagoblin', 'templates') 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")