From: Stephen Soltesz Date: Wed, 9 Apr 2008 17:08:38 +0000 (+0000) Subject: - cleaning of code. X-Git-Tag: Monitor-1.0-1~16 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=c2643681a736d4f353c017c668f08dde2185f585;p=monitor.git - cleaning of code. - save all of the RT db. --- diff --git a/rt.py b/rt.py index 5127ba0..3d0cac2 100644 --- a/rt.py +++ b/rt.py @@ -88,6 +88,19 @@ def open_rt_db(): +def fetch_from_db(db, sql): + try: + # create a 'cursor' (required by MySQLdb) + c = db.cursor() + c.execute(sql) + except Exception, err: + print "Could not execute RT query %s" %err + return -1 + + # fetch all rows (list of lists) + raw = c.fetchall() + return raw + def rt_tickets(): db = open_rt_db() @@ -120,29 +133,41 @@ def rt_tickets(): WHERE Tk.Queue != 10 AND Tk.id > 10000 AND Tr.id=At.TransactionID AND Tk.Status = 'open'""" #Tr.id=At.TransactionID AND (Tk.Status = 'new' OR Tk.Status = 'open')""" - - try: - # create a 'cursor' (required by MySQLdb) - c = db.cursor() - c.execute(sql) - except Exception, err: - print "Could not execute RT query %s" %err - return -1 - - # fetch all rows (list of lists) - raw = c.fetchall() - - # map list of lists (raw) to list of dicts (tickets) - # when int gets pulls from SQL into python ints are converted to LONG to - # prevent overflow .. convert back - #tickets = map(lambda x: {"ticket_id":int(x[0]), + #sqlall = """SELECT distinct Tk.id, Tk.Status, Tk.Subject, At.Content +#FROM Tickets AS Tk, Attachments AS At +#JOIN Transactions AS Tr ON Tk.id=Tr.ObjectId +#WHERE Tk.Queue != 10 AND Tk.id > 10000 AND +#Tr.id=At.TransactionID AND ( Tk.Status = 'open' OR +#Tk.Status = 'new') """ + sqlall = """SELECT distinct Tk.id, Tk.Status, Tk.Subject, At.Content, Us.EmailAddress FROM Tickets AS Tk, Attachments AS At, Users as Us JOIN Transactions AS Tr ON Tk.id=Tr.ObjectId WHERE (Tk.Queue=3 OR Tk.Queue=22) AND Tk.id > 10000 AND Tr.id=At.TransactionID AND ( Tk.Status = 'open' OR Tk.Status = 'new') AND Us.id=Tk.LastUpdatedBy """ + + + raw = fetch_from_db(db, sql) + if raw == -1: + return raw tickets = map(lambda x: {"ticket_id":str(x[0]), "status":x[1], "subj":str(x[2]), "content":str(x[3])}, raw) + + raw = fetch_from_db(db,sqlall) + if raw == -1: + return raw + tickets_all = map(lambda x: {"ticket_id":str(x[0]), + "status":x[1], + "subj":str(x[2]), + "content":str(x[3]), + "email":str(x[4]) }, + raw) + db.close() + idTickets = {} + for t in tickets_all: + idTickets[t['ticket_id']] = t + soltesz.dbDump("idTickets", idTickets) + return tickets def is_host_in_rt_tickets(host, ticket_blacklist, ad_rt_tickets): @@ -279,39 +304,9 @@ def main(): ch.setFormatter(formatter) logger.addHandler(ch) - bucket = Queue.Queue() - tickets = {} - a = RT(tickets, bucket) - b = RT(tickets, bucket) - c = RT(tickets, bucket) - d = RT(tickets, bucket) - e = RT(tickets, bucket) - a.start() - b.start() - c.start() - d.start() - tmp = ('planetlab-1.cs.ucy.ac.cy','planetlab-2.vuse.vanderbilt.edu', 'planetlab-11.cs.princeton.edu', 'planet03.csc.ncsu.edu', 'planetlab1.pop-rj.rnp.br', 'planet1.halifax.canet4.nodes.planet-lab.org', 'planet1.cavite.nodes.planet-lab.org', 'ds-pl3.technion.ac.il', 'planetlab2.cs.purdue.edu', 'planetlab3.millennium.berkeley.edu', 'planetlab1.unl.edu', 'planetlab1.cs.colorado.edu', 'planetlab02.cs.washington.edu', 'orbpl2.rutgers.edu', 'planetlab2.informatik.uni-erlangen.de', 'pl2.ernet.in', 'neu2.6planetlab.edu.cn', 'planetlab-2.cs.uni-paderborn.de', 'planetlab1.elet.polimi.it', 'planetlab2.iiitb.ac.in', 'server1.planetlab.iit-tech.net', 'planetlab2.iitb.ac.in', 'planetlab1.ece.ucdavis.edu', 'planetlab02.dis.unina.it', 'planetlab-1.dis.uniroma1.it', 'planetlab1.iitb.ac.in', 'pku1.6planetlab.edu.cn', 'planetlab1.warsaw.rd.tp.pl', 'planetlab2.cs.unc.edu', 'csu2.6planetlab.edu.cn', 'pl1.ernet.in', 'planetlab2.georgetown.edu', 'planetlab1.cs.uchicago.edu') - for host in tmp: - bucket.put(host) - #et = Thread(target=e.pushHosts) - #et.start() - time.sleep(15) - print tickets.keys() - time.sleep(15) - print tickets.keys() - time.sleep(15) - print tickets.keys() - #cmn = comon.Comon(cdb, bucket) - #cmn.updatebkts() - #for bucket in cmn.comonbkts.keys(): -# for host in getattr(cmn,bucket): -# alldown.put(host) -# - at = Thread(target=a.cleanTickets) - at.start() - time.sleep(15) - print tickets.keys() - os._exit(0) + tickets = rt_tickets() + soltesz.dbDump("ad_dbTickets", tickets) + if __name__ == '__main__': main()