view summitidp/easy.py @ 77:bd006fdd172f default tip

removed cachedfilestorage from easy, since it makes wsgi configs w/ multiple processes fail.
author Atul Varma <avarma@mozilla.com>
date Fri, 02 Jul 2010 18:33:32 -0400
parents ad7928372221
children
line wrap: on
line source

import os
import datetime
import json

from summitidp.app import Server, TokenStore, ProfileStore
from summitidp.file_storage import FileStorage
from summitidp.locking import synced_app

CHALLENGE_TOKEN_LIFETIME = datetime.timedelta(days=1)
AUTH_TOKEN_LIFETIME = None

def ensure_dirs(*paths):
    for path in paths:
        if not os.path.exists(path):
            os.mkdir(path)

def make_wsgi_app(storage_dir, send_email):
    emails_file = os.path.join(storage_dir, 'attendees.json')
    challenge_dir = os.path.join(storage_dir, 'challenge-tokens')
    auth_dir = os.path.join(storage_dir, 'auth-tokens')
    profile_dir = os.path.join(storage_dir, 'profiles')
    rev_dir = os.path.join(storage_dir, 'profiles-revinfo')

    ensure_dirs(storage_dir, challenge_dir, auth_dir, profile_dir,
                rev_dir)

    server = Server(
        emails=json.loads(open(emails_file).read()),
        send_email=send_email,
        challenge_tokens=TokenStore(lifetime=CHALLENGE_TOKEN_LIFETIME,
                                    mapping=FileStorage(challenge_dir)),
        auth_tokens=TokenStore(lifetime=AUTH_TOKEN_LIFETIME,
                               mapping=FileStorage(auth_dir)),
        profiles=ProfileStore(mapping=FileStorage(profile_dir),
                              rev_mapping=FileStorage(rev_dir))
        )

    return synced_app(server.wsgi_app)