health: Fail health check if specific file is present.

This lets us mark a server dead in the load balancer.
This commit is contained in:
Neil Williams
2013-01-28 21:26:57 -08:00
parent a0c614d371
commit dbc520222f
2 changed files with 10 additions and 2 deletions

View File

@@ -147,7 +147,9 @@ class ErrorController(RedditController):
return template.render(logo_url=static(g.default_header_url))
def send503(self):
response.headers["Retry-After"] = str(request.environ["retry_after"])
retry_after = request.environ.get("retry_after")
if retry_after:
response.headers["Retry-After"] = str(retry_after)
return request.environ['usable_error_content']
def GET_document(self):

View File

@@ -21,8 +21,10 @@
###############################################################################
import json
import os
from pylons import g, response
from pylons import g, request, response
from pylons.controllers.util import abort
from r2.controllers.reddit_base import MinimalController
from r2.lib import promote
@@ -39,6 +41,10 @@ class HealthController(MinimalController):
pass
def GET_health(self):
if os.path.exists("/var/opt/reddit/quiesce"):
request.environ["usable_error_content"] = "No thanks, I'm full."
abort(503)
response.content_type = "application/json"
return json.dumps(g.versions, sort_keys=True, indent=4)