import time
import datetime
from myslice.configengine import ConfigEngine
+from myslice.settings import logger
+
config = ConfigEngine()
if config.activity and config.activity.apikey :
# default log server
server = "http://athos.ipv6.lip6.fr/activity/push/log"
-def logWrite(request, action, message):
+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())
"action" : action,
"message" : message,
"apikey" : apikey,
- "signature" : sign(secret, "%s%s%s%s" % (timestamp, ip, request.user, action))
+ "signature" : sign(secret, "%s%s%s%s" % (timestamp, ip, request.user, action)),
+ "slice" : None,
+ "resource" : None,
+ "resource_type" : None,
+ "facility" : None,
+ "testbed" : None,
}
+
+ 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))
+ 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):
+def log(request, action, message, objects = None):
# Create a new thread in Daemon mode to send the log entry
- t = threading.Thread(target=logWrite, args=(request, action, message))
+ t = threading.Thread(target=logWrite, args=(request, action, message, objects))
t.setDaemon(True)
t.start()
#
# 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()