-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
updating requests middleware to templated views only and better admin
- Loading branch information
Alex Lovell-Troy
committed
Jul 10, 2013
1 parent
79090ae
commit efbd38c
Showing
6 changed files
with
66 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,21 @@ | ||
from logging import getLogger | ||
logger = getLogger('telemetry_requests') | ||
from .models import add_request, log_request | ||
|
||
from .tasks import record_request | ||
import datetime | ||
from pytz import utc | ||
|
||
class RecordRequestMiddleware(object): | ||
def process_request(self, request): | ||
log_request(request) | ||
try: | ||
add_request(request) | ||
except Exception, error: | ||
print "the error was: %s" % error | ||
return None | ||
def process_template_response(self, request, response): | ||
if response.status_code == 200: | ||
try: | ||
# grab things from the request object | ||
record_request.delay( | ||
path = request.path, | ||
user = request.user, | ||
http_user_agent = request.META.get('HTTP_USER_AGENT'), | ||
http_referer = request.META.get('HTTP_REFERER'), | ||
remote_addr = request.META.get('REMOTE_ADDR'), | ||
server_name = request.META.get('SERVER_NAME'), | ||
timestamp = datetime.datetime.utcnow().replace(tzinfo=utc) | ||
) | ||
except Exception: | ||
pass | ||
return response |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
from .models import tx_add_request | ||
try: | ||
from celery.task import task | ||
except ImportError: | ||
from celery.decorators import task | ||
|
||
|
||
@task | ||
def record_request(path=None, | ||
user=None, | ||
http_user_agent=None, | ||
http_referer=None, | ||
remote_addr=None, | ||
server_name=None, | ||
timestamp=None): | ||
tx_add_request(path = path, | ||
user = user, | ||
http_user_agent = http_user_agent, | ||
http_referer = http_referer, | ||
remote_addr = remote_addr, | ||
server_name = server_name, | ||
timestamp = timestamp) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,17 @@ | ||
# Create your views here. | ||
from .tasks import record_request | ||
import datetime | ||
from pytz import utc | ||
|
||
def LogRequestMixin(object): | ||
def dispatch(self, request, *args, **kwargs): | ||
record_request.delay( | ||
path = request.path, | ||
user = request.user, | ||
http_user_agent = request.META.get('HTTP_USER_AGENT'), | ||
http_referer = request.META.get('HTTP_REFERER'), | ||
remote_addr = request.META.get('REMOTE_ADDR'), | ||
server_name = request.META.get('SERVER_NAME'), | ||
timestamp = datetime.datetime.utcnow().replace(tzinfo=utc) | ||
) | ||
return super(LogRequestMixin, self).dispatch(request, *args, **kwargs) |