--- /dev/null
+#
+# 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