import time
import datetime
from myslice.configengine import ConfigEngine
+from myslice.settings import logger
+
config = ConfigEngine()
if config.activity and config.activity.apikey :
def logWrite(request, action, message, objects = None):
if not apikey :
- print "===============>> activity: no apikey"
+ logger.info("===============>> activity: no apikey")
return
if not secret :
- print "===============>> activity: no secret"
+ logger.info("===============>> activity: no secret")
return
timestamp = time.mktime(datetime.datetime.today().timetuple())
"apikey" : apikey,
"signature" : sign(secret, "%s%s%s%s" % (timestamp, ip, request.user, action)),
"slice" : None,
- "resource" : None
+ "resource" : None,
+ "resource_type" : None,
+ "facility" : None,
+ "testbed" : None,
}
- if objects and 'slice' in objects :
- log['slice'] = objects['slice']
-
- if objects and 'resource' in objects :
- log['resource'] = objects['resource']
+ if objects is not None:
+ for o in objects :
+ if (o in log) :
+ log[o] = objects[o]
try :
result = urllib2.urlopen(server, urllib.urlencode(log))
- print "===============>> activity: " + action + " <" + request.user + "> " + message
+ logger.info("===============>> activity: {} <{}> {}".format(action, request.user,message))
content = result.read()
except urllib2.URLError as e:
- print "===============>> activity: connection to " + server + " impossible, could not log action"
+ logger.error("===============>> activity: connection to {} impossible, could not log action".format(server))
+ logger.error(e.strerror)
def log(request, action, message, objects = None):
# Create a new thread in Daemon mode to send the log entry
t.start()
def getClientIp(request):
- x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
- if x_forwarded_for:
+ try :
+ x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
ip = x_forwarded_for.split(',')[0]
- else:
+ except:
ip = request.META.get('REMOTE_ADDR')
return ip
#
# sign the request with the secret key
def sign(secret, message):
- return hmac.new(secret, msg=message, digestmod=hashlib.sha256).hexdigest()
\ No newline at end of file
+ return hmac.new(secret, msg=message, digestmod=hashlib.sha256).hexdigest()