firefox sync with gunicorn
This commit is contained in:
9
sources/.gitignore
vendored
9
sources/.gitignore
vendored
@@ -1,2 +1,9 @@
|
||||
*~
|
||||
*.pyc
|
||||
*.mako.py
|
||||
local
|
||||
*.egg-info
|
||||
*.swp
|
||||
\.coverage
|
||||
*~
|
||||
nosetests.xml
|
||||
syncserver.db
|
||||
|
||||
20
sources/.travis.yml
Normal file
20
sources/.travis.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
language: python
|
||||
|
||||
python:
|
||||
- "2.6"
|
||||
- "2.7"
|
||||
|
||||
notifications:
|
||||
email:
|
||||
- rfkelly@mozilla.com
|
||||
irc:
|
||||
channels:
|
||||
- "irc.mozilla.org#services-dev"
|
||||
use_notice: false
|
||||
skip_join: false
|
||||
|
||||
install:
|
||||
- make build
|
||||
|
||||
script:
|
||||
- make test
|
||||
@@ -6,9 +6,7 @@ simplejson==3.4
|
||||
SQLAlchemy==0.9.4
|
||||
unittest2==0.5.1
|
||||
zope.component==4.2.1
|
||||
configparser==3.5.0b2
|
||||
https://github.com/mozilla-services/mozservices/archive/e00e1b68130423ad98d0f6185655bde650443da8.zip
|
||||
https://github.com/mozilla-services/tokenserver/archive/d7e513e8a4f5c588b70d685a8df1d2e508c341c0.zip
|
||||
http://github.com/mozilla-services/server-syncstorage/archive/1.5.5.zip
|
||||
# Newer releases of configparser have b/w compat bug:
|
||||
# https://github.com/mozilla-services/syncserver/issues/39
|
||||
configparser==3.3.0r2
|
||||
|
||||
@@ -27,8 +27,16 @@ public_url = http://localhost:5000/
|
||||
# Only request by existing accounts will be honoured.
|
||||
# allow_new_users = false
|
||||
|
||||
# Set this to "true" to work around a mismatch between public_url and
|
||||
# the application URL as seen by python, which can happen in certain reverse-
|
||||
# proxy hosting setups. It will overwrite the WSGI environ dict with the
|
||||
# details from public_url. This could have security implications if e.g.
|
||||
# you tell the app that it's on HTTPS but it's really on HTTP, so it should
|
||||
# only be used as a last resort and after careful checking of server config.
|
||||
force_wsgi_environ = false
|
||||
|
||||
# Uncomment and edit the following to use a local BrowserID verifier
|
||||
# rather than posing assertions to the mozilla-hosted verifier.
|
||||
# rather than posting assertions to the mozilla-hosted verifier.
|
||||
# Audiences should be set to your public_url without a trailing slash.
|
||||
#[browserid]
|
||||
#backend = tokenserver.verifiers.LocalVerifier
|
||||
|
||||
@@ -117,16 +117,27 @@ def reconcile_wsgi_environ_with_public_url(event):
|
||||
# is serving us at some sub-path.
|
||||
if not request.script_name:
|
||||
request.script_name = p_public_url.path.rstrip("/")
|
||||
# Log a noisy error if the application url is different to what we'd
|
||||
# expect based on public_url setting.
|
||||
# If the environ does not match public_url, requests are almost certainly
|
||||
# going to fail due to auth errors. We can either bail out early, or we
|
||||
# can forcibly clobber the WSGI environ with the values from public_url.
|
||||
# This is a security risk if you've e.g. mis-configured the server, so
|
||||
# it's not enabled by default.
|
||||
application_url = request.application_url
|
||||
if public_url != application_url:
|
||||
msg = "The public_url setting does not match the application url.\n"
|
||||
msg += "This will almost certainly cause authentication failures!\n"
|
||||
msg += " public_url setting is: %s\n" % (public_url,)
|
||||
msg += " application url is: %s\n" % (application_url,)
|
||||
logger.error(msg)
|
||||
raise _JSONError([msg], status_code=500)
|
||||
if not request.registry.settings.get("syncserver.force_wsgi_environ"):
|
||||
msg = "\n".join((
|
||||
"The public_url setting doesn't match the application url.",
|
||||
"This will almost certainly cause authentication failures!",
|
||||
" public_url setting is: %s" % (public_url,),
|
||||
" application url is: %s" % (application_url,),
|
||||
"You can disable this check by setting the force_wsgi_environ",
|
||||
"option in your config file, but do so at your own risk.",
|
||||
))
|
||||
logger.error(msg)
|
||||
raise _JSONError([msg], status_code=500)
|
||||
request.scheme = p_public_url.scheme
|
||||
request.host = p_public_url.netloc
|
||||
request.script_name = p_public_url.path.rstrip("/")
|
||||
|
||||
|
||||
def get_configurator(global_config, **settings):
|
||||
|
||||
@@ -118,6 +118,9 @@ class StaticNodeAssignment(object):
|
||||
if urlparse.urlparse(sqluri).path.lower() in ("/", "/:memory:"):
|
||||
sqlkw["pool_size"] = 1
|
||||
sqlkw["max_overflow"] = 0
|
||||
if "mysql" in self.driver:
|
||||
# Guard against the db closing idle conections.
|
||||
sqlkw["pool_recycle"] = 3600
|
||||
self._engine = create_engine(sqluri, **sqlkw)
|
||||
users.create(self._engine, checkfirst=True)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user