From: Ciro Scognamiglio Date: Tue, 15 Jul 2014 16:18:58 +0000 (+0200) Subject: user activity monitoring X-Git-Tag: myslice-1.0~57^2~1 X-Git-Url: http://git.onelab.eu/?p=unfold.git;a=commitdiff_plain;h=567a9d3b511730254de5963b8bb68936c5881d3b user activity monitoring --- diff --git a/activity/__init__.py b/activity/__init__.py new file mode 100644 index 00000000..d570662e --- /dev/null +++ b/activity/__init__.py @@ -0,0 +1,61 @@ +# +# Activity monitor +# + +import urllib, urllib2 +import threading +from datetime import datetime + + +def logWrite(request, action, message): + url = "http://localhost:5000/log" + log = { + "date" : datetime.today(), + "client_ip" : getClientIp(request), + "host" : request.get_host(), + "referrer" : request.META.get('HTTP_REFERER'), + "user" : request.user + } + + try : + result = urllib2.urlopen(url, urllib.urlencode(log)) + content = result.read() + except urllib2.URLError as e: + print "Error: connection to " + url + " impossible, logging disabled" + +def spawnThread(request, action, message): + print "aaaaaaaaa" + # Create a new thread in Daemon mode to send the log entry + t = threading.Thread(target=logWrite, args=(request, action, message)) + t.setDaemon(True) + t.start() + +def userLogin(request): + spawnThread(request, 'userlogin', 'User logged in') + +def userLogout(request): + spawnThread(request, 'userlogout', 'User logged out') + +def userRegistration(request): + spawnThread(request, 'userregistration', 'User registered') + +def userSliceRequest(request): + spawnThread(request, 'userslicerequest', 'User requested a slice') + +def userContactSupport(request): + spawnThread(request, 'usercontactsupport', 'User contacted suppport') + +def userAddResource(request): + spawnThread(request, 'useraddresource', 'User added resource to slice') + +def userDelResource(request): + spawnThread(request, 'userdelresource', 'User removed resource from slice') + + +def getClientIp(request): + x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR') + if x_forwarded_for: + ip = x_forwarded_for.split(',')[0] + else: + ip = request.META.get('REMOTE_ADDR') + return ip \ No newline at end of file