X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=activity%2F__init__.py;fp=activity%2F__init__.py;h=d570662ed62ecbc4ed1ddbb87a66fcef79af69d4;hb=567a9d3b511730254de5963b8bb68936c5881d3b;hp=0000000000000000000000000000000000000000;hpb=af5885eb6b24505d4979de9d580a1e13e297bde8;p=myslice.git 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