Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorceibal <ceibal@ceibal.ceibal.uy>2013-02-12 18:31:20 (GMT)
committer ceibal <ceibal@ceibal.ceibal.uy>2013-02-12 18:31:20 (GMT)
commitb15c5ad3bef164dba29820601215b31de771c2c8 (patch)
treef27785fecbd472abc005534ab56e14dfd51f4c06
parentc1f8a4fdde9207ca21d6662738028894ecd92800 (diff)
Fixs hardcoded values, machine_sn and uuid.
Fix reports
-rwxr-xr-x[-rw-r--r--]sql/make_report23
-rwxr-xr-x[-rw-r--r--]sql/report.sh7
-rwxr-xr-x[-rw-r--r--]sugar_stats_consolidation/consolidation_run0
-rw-r--r--sugar_stats_consolidation/db.py3
-rw-r--r--sugar_stats_consolidation/rrd_files.py42
-rwxr-xr-x[-rw-r--r--]sugar_stats_consolidation/run.sh0
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