diff options
author | ceibal <ceibal@ceibal.ceibal.uy> | 2013-02-12 18:31:20 (GMT) |
---|---|---|
committer | ceibal <ceibal@ceibal.ceibal.uy> | 2013-02-12 18:31:20 (GMT) |
commit | b15c5ad3bef164dba29820601215b31de771c2c8 (patch) | |
tree | f27785fecbd472abc005534ab56e14dfd51f4c06 | |
parent | c1f8a4fdde9207ca21d6662738028894ecd92800 (diff) |
Fixs hardcoded values, machine_sn and uuid.
Fix reports
-rwxr-xr-x[-rw-r--r--] | sql/make_report | 23 | ||||
-rwxr-xr-x[-rw-r--r--] | sql/report.sh | 7 | ||||
-rwxr-xr-x[-rw-r--r--] | sugar_stats_consolidation/consolidation_run | 0 | ||||
-rw-r--r-- | sugar_stats_consolidation/db.py | 3 | ||||
-rw-r--r-- | sugar_stats_consolidation/rrd_files.py | 42 | ||||
-rwxr-xr-x[-rw-r--r--] | sugar_stats_consolidation/run.sh | 0 |
6 files changed, 47 insertions, 28 deletions
diff --git a/sql/make_report b/sql/make_report index 7dc6805..1dae37f 100644..100755 --- a/sql/make_report +++ b/sql/make_report @@ -47,30 +47,29 @@ logging.getLogger('sugar_stats_consolidation.db').addHandler(ch) def main(): - """try:""" re = DB_Stats (args.db_name, args.db_user, args.db_pass) re.connect() if args.query == 'activity_most_used': activity = re.most_activity_used(args.start_date, args.end_date); log.debug("**************************************************************************************************************") - log.debug('From: %s-> %s:', args.start_date, args.end_date) - log.debug('THE MOST USED ACTIVITY: %s', activity[0]) - log.debug('TIME: %s hrs / %s mins / %s secs', (activity[1]/60/60), (activity[1]/60), activity[1]) + log.debug(" Most Activity used ") + log.debug('NAME: %s', activity[0]) + log.debug('PERIOD: %s-> %s', args.start_date, args.end_date) + log.debug('TIME: %.2f hrs / %.2f mins / %.2f secs', (activity[1]/60/60), (activity[1]/60), activity[1]) log.debug("***************************************************************************************************************") - if args.query == 'frequency_usage': ts_end = long (datetime.strptime(args.end_date, "%Y-%m-%d").strftime("%s")) ts_start = long (datetime.strptime(args.start_date, "%Y-%m-%d").strftime("%s")) fres = re.frequency_usage(args.start_date, args.end_date); f_x_day = (fres / ((ts_end - ts_start)/(60*60*24)))/60 - print ("**************************************************************************************************************") - print ("From: {0} -> {1}:".format(args.start_date, args.end_date)) - print("Frequency usage: %.2f min / day" % (f_x_day)) - print ("**************************************************************************************************************") - """ - print ("Error: {}".format(sys.exc_info()[0])) - """ + f_total = (fres / 60) + log.debug("**************************************************************************************************************") + log.debug(" Fequency Usage ") + log.debug('PERIOD: %s-> %s', args.start_date, args.end_date) + log.debug('USAGE PER DAY: %.2f min / day', (f_x_day)) + log.debug('USAGE TOTAL: %.2f min', (f_total)) + log.debug("**************************************************************************************************************") if __name__ == '__main__': main() diff --git a/sql/report.sh b/sql/report.sh index 0a01ec0..5f18985 100644..100755 --- a/sql/report.sh +++ b/sql/report.sh @@ -1,7 +1,8 @@ #!/bin/bash -QUERY=activity_most_used -START_DATE=2013-02-01 -END_DATE=2013-02-28 +#QUERY=activity_most_used +QUERY=frequency_usage +START_DATE=2013-02-10 +END_DATE=2013-02-14 DB_NAME=statistics DB_USER=root DB_PASS=gustavo diff --git a/sugar_stats_consolidation/consolidation_run b/sugar_stats_consolidation/consolidation_run index 46b676d..46b676d 100644..100755 --- a/sugar_stats_consolidation/consolidation_run +++ b/sugar_stats_consolidation/consolidation_run diff --git a/sugar_stats_consolidation/db.py b/sugar_stats_consolidation/db.py index 898f7b9..177e157 100644 --- a/sugar_stats_consolidation/db.py +++ b/sugar_stats_consolidation/db.py @@ -155,9 +155,8 @@ class DB_Stats: if result != None: log.info('User %s already in DB', rrd.user_hash) else: - """FIXME change hardcoded values """ insert = ("INSERT INTO Users (hash, uuid, machine_sn, age, school, sw_version) VALUES (%s, %s, %s, %s, %s, %s)") - params = (rrd.get_user_hash(), rrd.get_uuid(), "unk_machine_sn", 0, "unk_escuela", "1.0.0") + params = (rrd.get_user_hash(), rrd.get_uuid(), rrd.get_sn(), rrd.get_age(), rrd.get_school(), "1.0.0") cursor.execute(insert, params) self.cnx.commit() except mysql.connector.Error as err: diff --git a/sugar_stats_consolidation/rrd_files.py b/sugar_stats_consolidation/rrd_files.py index dec2c43..67a856b 100644 --- a/sugar_stats_consolidation/rrd_files.py +++ b/sugar_stats_consolidation/rrd_files.py @@ -1,8 +1,12 @@ import rrdtool import os import sys +import logging from datetime import datetime +log = logging.getLogger(__name__) + + class RRD: hdr_item = 0 @@ -17,15 +21,15 @@ class RRD: if date_start == None or (date_start > rrdtool.last(str(os.path.join(path, name)))): self.date_start = str(rrdtool.first(str(os.path.join (path,name)))) else: - self.date_start = date_start + self.date_start = str(date_start) if date_end == None: self.date_end = str(rrdtool.last(str(os.path.join(path, name)))) else: self.date_end = str(date_end) - if self.date_start > self.date_end: - raise Exception("No data available on rrd, from {0} to {1}".format( str(datetime.fromtimestamp(float(self.date_start))), str(datetime.fromtimestamp(float(self.date_end))))) + if float (self.date_start) > float(self.date_end): + raise Exception("Invalid date_start={0} and date_end={1}".format( str(datetime.fromtimestamp(float(self.date_start))), str(datetime.fromtimestamp(float(self.date_end))))) self.user_hash = os.path.split(path)[1] @@ -36,12 +40,16 @@ class RRD: self.user_hash[:2], self.user_hash ) - """ + self.uuid = self.get_uuid_from_file(self.user_path) - """ - self.uuid = "for_tesing" + self.age = 0 + self.sn = self.get_machine_sn_from_file(self.user_path) + self.school = "unkown" + - print "*******************************************" + + + print "******************************************" print " creating a RRD instance " print "start: " + str(datetime.fromtimestamp(float(self.date_start))) print "end: " + str(datetime.fromtimestamp(float(self.date_end))) @@ -49,10 +57,9 @@ class RRD: print "RRD NAME: " + name print "\n" try: - self.rrd = rrdtool.fetch (str(os.path.join(path,name)), 'AVERAGE', '-r 60', '-s '+ self.date_start, '-e '+self.date_end) - except: - raise Exception("rrdtool.fetch FAIL, from {0} to {1}".format( str(datetime.fromtimestamp(float(self.date_start))), str(datetime.fromtimestamp(float(self.date_end))))) - + self.rrd = rrdtool.fetch (str(os.path.join(path,name)), 'AVERAGE', '-r 60', '-s '+ self.date_start, '-e '+ self.date_end) + except Exception as e: + raise Exception("rrdtool.fetch: {0}".format(e)) print " DS " for item in self.DS.keys(): idx = self.get_ds_index (item) @@ -140,6 +147,9 @@ class RRD: def get_uuid_from_file(self,path): return open (os.path.join(path, "machine_uuid")).next() + + def get_machine_sn_from_file(self,path): + return open (os.path.join(path, "machine_sn")).next() def get_user_hash(self): @@ -147,6 +157,16 @@ class RRD: def get_uuid (self): return self.uuid + + def get_sn (self): + return self.sn + + def get_school (self): + return self.school + + def get_age (self): + return self.age + """ For some reason, sometimes for a while activity is running, statistics library register several values as None. diff --git a/sugar_stats_consolidation/run.sh b/sugar_stats_consolidation/run.sh index 8e0e31e..8e0e31e 100644..100755 --- a/sugar_stats_consolidation/run.sh +++ b/sugar_stats_consolidation/run.sh |