Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGustavo <gustavo@gustavo-HP.(none)>2013-02-08 14:19:53 (GMT)
committer Gustavo <gustavo@gustavo-HP.(none)>2013-02-08 14:19:53 (GMT)
commit24e56d53c6421ec8c63ef796599988a0a6ea1aea (patch)
treec7602967df67a02b9ed1509934165d5dc099e697
parenta606b0d5b189e1b0a99971ea54824e81137ee5b8 (diff)
Add logging instead printf
-rw-r--r--sugar_stats_consolidation/consolidation.py23
-rwxr-xr-xsugar_stats_consolidation/consolidation_run52
-rw-r--r--sugar_stats_consolidation/db.py48
-rwxr-xr-xsugar_stats_consolidation/test_cons.py13
-rw-r--r--sugar_stats_consolidation/test_db.py6
-rwxr-xr-xsugar_stats_consolidation/test_rrd.py52
-rwxr-xr-xsugar_stats_consolidation/test_rrds_content.py31
7 files changed, 76 insertions, 149 deletions
diff --git a/sugar_stats_consolidation/consolidation.py b/sugar_stats_consolidation/consolidation.py
index ce72ce7..4e0058e 100644
--- a/sugar_stats_consolidation/consolidation.py
+++ b/sugar_stats_consolidation/consolidation.py
@@ -1,18 +1,25 @@
-from __future__ import print_function
import os
import argparse
+import logging
import rrd_files
import db
from rrd_files import *
from db import *
+
+log = logging.getLogger(__name__)
+
class Consolidation:
def __init__(self, path, db):
self.base_path = path
- self.date_start = db.get_date_last_record()
- self.db = db
+ try:
+ self.date_start = db.get_date_last_record()
+ self.db = db
+ except Exception as e:
+ log.error('Exception: %s ', e)
+
def process_rrds (self):
id_hash_list = os.listdir(unicode(self.base_path))
try:
@@ -29,13 +36,13 @@ class Consolidation:
rrd_obj = RRD (path=rrd_path, name=rrd, date_start=self.date_start, date_end=None)
self.db.store_activity_uptime(rrd_obj)
except Exception as e:
- print ("warning, coninute ..")
+ log.warning('Exception on RRD object instance: \'%s\'', e)
else:
- print ("RRD file not found: {0}".format(os.path.join(self.base_path, id_hash, user_hash)))
+ log.warning('RRD file not found: %s', os.path.join(self.base_path, id_hash, user_hash))
else:
- print ("None hash user found on: {0}".format(os.path.join(self.base_path, id_hash)))
+ log.warning('Hash user direcotory not found: %s', os.path.join(self.base_path, id_hash))
else:
- print ("None hash ids found on: {0}" + format(self.base_path))
+ log.error('Hash ids not found on: %s', self.base_path)
except Exception as e:
- print ("Error processing rrds: {0}".format(str(e)))
+ log.error('Excpetion processing rrds: \'%s\'', e)
diff --git a/sugar_stats_consolidation/consolidation_run b/sugar_stats_consolidation/consolidation_run
index 553a723..8730381 100755
--- a/sugar_stats_consolidation/consolidation_run
+++ b/sugar_stats_consolidation/consolidation_run
@@ -17,30 +17,48 @@
from __future__ import print_function
import argparse
+import logging
+
from sugar_stats_consolidation.db import *
from sugar_stats_consolidation.rrd_files import *
from sugar_stats_consolidation.consolidation import *
-parser = argparse.ArgumentParser()
-parser.add_argument('--db_user',required=True)
-parser.add_argument('--db_pass',required=True)
-parser.add_argument('--db_name',required=True)
-parser.add_argument('--rrd_path',required=True)
-parser.add_argument('--log_path',required=True)
-args = parser.parse_args()
+_LOG_FORMAT='[%(asctime)s]-%(levelname)s-\'%(name)s\': %(message)s'
+
+logging.basicConfig(filename='sugar-stats-consolidation.log', format=_LOG_FORMAT, level=logging.DEBUG)
+log = logging.getLogger(__name__)
+
+def main():
+
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--db_user',required=True)
+ parser.add_argument('--db_pass',required=True)
+ parser.add_argument('--db_name',required=True)
+ parser.add_argument('--rrd_path',required=True)
+ parser.add_argument('--log_path',required=True)
+
+ args = parser.parse_args()
+
+ log.info('**************************************')
+ log.info(' Starting consolidation ')
+ log.info('**************************************')
+
+
+ try:
+ db = DB_Stats (args.db_name, args.db_user, args.db_pass)
+ db.create()
+ except Exception as e:
+ log.warning('Creating DB: %s', str(e))
-try:
- db = DB_Stats (args.db_name, args.db_user, args.db_pass)
- db.create()
-except Exception as e:
- print ("Creating DB: {0}".format (str(e)))
+ try:
+ con = Consolidation(args.rrd_path, db)
+ con.process_rrds()
+ except Exception as e:
+ log.warning('Processing rrd file: %s', str(e))
-try:
- con = Consolidation(args.rrd_path, db)
- con.process_rrds()
-except Exception as e:
- print ("Processing rrd file: {0}".format(str(e)))
+if __name__ == '__main__':
+ main()
diff --git a/sugar_stats_consolidation/db.py b/sugar_stats_consolidation/db.py
index de66e2c..f1bd0ec 100644
--- a/sugar_stats_consolidation/db.py
+++ b/sugar_stats_consolidation/db.py
@@ -1,12 +1,15 @@
-from __future__ import print_function
import mysql.connector
from mysql.connector import errorcode
from datetime import datetime
+import logging
+
import sugar_stats_consolidation.rrd_files
from rrd_files import *
+log = logging.getLogger(__name__)
+
class DB_Stats:
TABLES={}
@@ -45,12 +48,11 @@ class DB_Stats:
")")
-
def __init__(self, db_name, user, password):
self.db_name = db_name
self.user = user
self.password = password
-
+
def create_database(self, cursor):
try:
@@ -62,15 +64,15 @@ class DB_Stats:
def create_tables(self, cursor):
for name, ddl in self.TABLES.iteritems():
try:
- print("Creating table {0}: ".format(name), end='')
+ log.info('Creating table %s:', name)
cursor.execute(ddl)
except mysql.connector.Error as err:
if err.errno == errorcode.ER_TABLE_EXISTS_ERROR:
- print("already exists.")
+ log.warning('Table %s already exists.', name)
else:
raise Exception ("Error: {0}".format(err))
else:
- print("OK")
+ log.info('Table %s crated', name)
def create (self):
self.cnx = mysql.connector.connect(user=self.user, password=self.password)
@@ -78,7 +80,7 @@ class DB_Stats:
"""Try connect to db """
try:
self.cnx.database = self.db_name
- print("DB ["+self.db_name+"] created already, will try create tables:" )
+ log.info('Data Base %s already created, will create tables', self.db_name)
self.create_tables(cursor)
except mysql.connector.Error as err:
"""If db not exist, then create"""
@@ -120,7 +122,7 @@ class DB_Stats:
self.cnx.commit()
except mysql.connector.Error as err:
- print("Fail {0}: {1}".format(cursor.statement, err))
+ log.error('MySQL on store_activiy_uptime: %s %s', cursor.statement, err)
cursor.close()
@@ -132,14 +134,14 @@ class DB_Stats:
cursor.execute(op, params)
result = cursor.fetchone()
if result != None:
- print("Resource {0} already in db".format(resource_name))
+ log.info('Resource %s already present in DB', resource_name)
else:
insert = ("INSERT INTO Resources (name) VALUES (%s)")
info = (resource_name, )
cursor.execute(insert, info)
self.cnx.commit()
except mysql.connector.Error as err:
- print("Fail {0}: {1}".format(cursor.statement, err))
+ log.info('MySQL on store_resource: %s %s', cursor.statement, err)
cursor.close()
@@ -151,7 +153,7 @@ class DB_Stats:
cursor.execute(op, params)
result = cursor.fetchone()
if result != None:
- print("User {0} already in db".format(rrd.user_hash))
+ 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)")
@@ -159,7 +161,7 @@ class DB_Stats:
cursor.execute(insert, params)
self.cnx.commit()
except mysql.connector.Error as err:
- print("Fail {0}: {1}".format(cursor.statement, err))
+ log.error('MySQL on store_user %s %s', cursor.statement, err)
cursor.close()
@@ -184,7 +186,7 @@ class DB_Stats:
self.cnx.commit()
except mysql.connector.Error as err:
- print("Fail {0}: {1}".format(cursor.statement, err))
+ log.error('MySQL on update_last_record: %s %s', cursor.statement, err)
res = -1
cursor.close()
@@ -196,14 +198,16 @@ class DB_Stats:
try:
cursor.execute(op)
result = cursor.fetchone()
- if result != None:
- print ("last record: {0}".format(str(datetime.fromtimestamp (result[0]))))
- return result[0]
+ if result != None and result[0] != None:
+ log.info('Last record: %s', str(datetime.fromtimestamp (float (result[0]))))
+ return result[0]
else:
- print ("Last date record is None")
+ log.info('Last date record is None')
return 0
except mysql.connector.Error as err:
- print("Fail {0}: {1}".format(cursor.statement, err))
+ log.error('MySQL on get_date_last_record: %s %s',cursor.statement, err)
+ except Exception as e:
+ raise Exception ("get_date_last_record: {0}".format(e))
cursor.close()
@@ -214,7 +218,7 @@ class DB_Stats:
self.cnx.database = self.db_name
cursor.close()
except mysql.connector.Error as err:
- print("CONNECT FAIL {0}".format (err))
+ log.error('MySQL Connect fail', err)
def most_activity_used (self, start, end):
uptime_last=0
@@ -237,9 +241,9 @@ class DB_Stats:
uptime_last= uptime[0]
activity_name = name[0]
except mysql.connector.Error as err:
- print("Fail {0}:".format(err))
+ log.error('MySQL on most_activity_used', err)
except:
- print("most_activity_used Fail ")
+ log.error('most_activity_used Fail')
cursor1.close()
cursor2.close()
@@ -255,7 +259,7 @@ class DB_Stats:
res = cursor.fetchone()
return res[0]
except mysql.connector.Error as err:
- print("Fail {0}: {1}".format(cursor.statement, err))
+ log.error("MySQL on fequency_usage %s: %s", cursor.statement, err)
cursor.close()
diff --git a/sugar_stats_consolidation/test_cons.py b/sugar_stats_consolidation/test_cons.py
deleted file mode 100755
index f58f9fc..0000000
--- a/sugar_stats_consolidation/test_cons.py
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/usr/bin/env python
-
-import sugar_stats_consolidation
-from sugar_stats_consolidation.db import *
-from sugar_stats_consolidation.rrd_files import *
-from sugar_stats_consolidation.consolidation import *
-
-db = DB_Stats('statistics', 'root', 'gustavo')
-db.create();
-
-con = Consolidation('/var/lib/sugar-stats/rrd', db)
-
-con.process_rrds()
diff --git a/sugar_stats_consolidation/test_db.py b/sugar_stats_consolidation/test_db.py
deleted file mode 100644
index 197510a..0000000
--- a/sugar_stats_consolidation/test_db.py
+++ /dev/null
@@ -1,6 +0,0 @@
-import stats_consolidation
-from stats_consolidation import *
-
-db = DB_Stats('statistics', 'root', 'gustavo')
-db.create();
-
diff --git a/sugar_stats_consolidation/test_rrd.py b/sugar_stats_consolidation/test_rrd.py
deleted file mode 100755
index 81dd3c8..0000000
--- a/sugar_stats_consolidation/test_rrd.py
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env python
-
-import argparse
-from db import *
-from rrd_files import *
-from db import *
-
-parser = argparse.ArgumentParser()
-parser.add_argument('--rrd_path',required=False)
-parser.add_argument('--rrd_name',required=True)
-
-args = parser.parse_args()
-
-print "============================== TEST RRD -> Relational DB ========================================"
-db = DB_Stats('statistics', 'root', 'gustavo')
-db.create()
-
-DATE_START =datetime(year=2012,
- month=12,
- day=13,
- hour=0,
- minute=0,
- second=0).strftime("%s")
-
-
-DATE_END = datetime(year=2012,
- month=12,
- day=14,
- hour=0,
- minute=0,
- second=0).strftime("%s")
-
-DATE_START = db.get_date_last_record()
-DATE_END = datetime.now().strftime("%s")
-
-act_rrd = RRD (path = "/home/gustavo/AC/consolidation/rrds", name=args.rrd_name)
-"""
-act_rrd = RRD (path = "/home/gustavo/AC/consolidation/rrds", name="abacus.rrd", date_start=DATE_START, date_end=DATE_END)
-"""
-"""
-act_rrd.show_valid_ds("resumed")
-act_rrd.show_valid_ds("new")
-act_rrd.show_valid_ds("instances")
-act_rrd.show_valid_ds("buddies")
-data = {}
-db.store_activity_uptime(act_rrd)
-"""
-act_rrd.show_valid_ds("uptime")
-act_rrd.show_valid_ds("active")
-
-act_rrd.get_uptime_by_interval()
-act_rrd.get_active_by_interval()
diff --git a/sugar_stats_consolidation/test_rrds_content.py b/sugar_stats_consolidation/test_rrds_content.py
deleted file mode 100755
index df6c99e..0000000
--- a/sugar_stats_consolidation/test_rrds_content.py
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/env python
-
-import argparse
-from rrd_files import *
-
-parser = argparse.ArgumentParser()
-parser.add_argument('--rrd_path',required=False)
-parser.add_argument('--rrd_name',required=True)
-
-args = parser.parse_args()
-
-print "============================== TEST RRD analyze content ========================================"
-
-if args.rrd_path == None:
- def_path = "/home/olpc/.sugar/default/stats"
-else:
- def_path = args.rrd_path
-
-rrd = RRD (path=def_path, name=args.rrd_name)
-
-"""
-act_rrd.show_valid_ds("resumed")
-act_rrd.show_valid_ds("new")
-act_rrd.show_valid_ds("instances")
-act_rrd.show_valid_ds("buddies")
-"""
-rrd.show_valid_ds("uptime")
-rrd.show_valid_ds("active")
-
-rrd.get_uptime_by_interval()
-rrd.get_active_by_interval()