Index: trunk/ippToPsps/jython/metrics.py
===================================================================
--- trunk/ippToPsps/jython/metrics.py	(revision 31865)
+++ trunk/ippToPsps/jython/metrics.py	(revision 31865)
@@ -0,0 +1,84 @@
+import math
+import logging
+import smtplib
+
+from java.lang import Math
+from org.apache.commons.math.special import Erf
+from xml.etree.ElementTree import ElementTree, Element, tostring
+
+from pslogger import PSLogger
+from ipptopspsdb import IppToPspsDb
+from gpc1db import Gpc1Db
+
+
+
+def printTableRow(batchType):
+
+    allIDs = gpc1Db.getIDsInThisDVODbForThisStage(dvoGpc1Label, batchType)
+    processedIDs = ippToPspsDb.getProcessedIDsForThisStage(batchType, epoch)
+    failedIDs = ippToPspsDb.getFailedBatches(batchType, epoch)
+    unprocessedIDs = list(set(allIDs) - set(processedIDs))
+
+    logger.info("|  %2s  |  %7d     |  %7d        |   %7d    | %7d    | %6.1f hours ago |" % (
+                batchType, 
+                len(allIDs), 
+                len(processedIDs), 
+                len(list(set(failedIDs) - set(allIDs))), 
+                len(unprocessedIDs), 
+                ippToPspsDb.getLastBatchPublished(batchType)))
+
+
+#SERVER = "localhost"
+
+#FROM = "ippToPsps@example.com"
+#TO = ["roydhenderson@gmail.com"]
+
+#SUBJECT = "IPP to PSPS loading status"
+
+#TEXT = "This message was sent with Python's smtplib."
+
+# Prepare actual message
+
+#message = """\
+#           From: %s
+#           To: %s
+#           Subject: %s
+#
+#           %s
+#           """ % (FROM, ", ".join(TO), SUBJECT, TEXT)
+#
+# Send the mail
+#
+#server = smtplib.SMTP(SERVER)
+#server.sendmail(FROM, TO, message)
+#server.quit()
+
+logging.config.fileConfig("logging.conf")
+logging.setLoggerClass(PSLogger)
+logger = logging.getLogger("ippToPspsLog")
+logger.setLevel(logging.INFO)
+configDoc = ElementTree(file="config.xml")
+
+ippToPspsDb = IppToPspsDb(logger, configDoc)
+gpc1Db = Gpc1Db(logger, configDoc)
+
+epoch = configDoc.find("options/epoch").text
+dvoGpc1Label = configDoc.find("dvo/gpc1Label").text
+
+logger.info("Loading epoch  " + epoch)
+logger.info("+------+--------------+-----------------+--------------+------------+------------------+")
+logger.info("| Type | Total in DVO | Total published | Total failed | Total left |  Last published  |")
+logger.info("+------+--------------+-----------------+--------------+------------+------------------+")
+printTableRow("P2")
+printTableRow("ST")
+logger.info("+------+--------------+-----------------+--------------+------------+------------------+")
+
+#logger.info("Total batches published      %d" % totalP2Published)
+#logger.info("Total batches left           %d" % (totalP2 - totalP2Published))
+#logger.info("Total failed batches         %d" % ippToPspsDb.getTotalFailedBatches("P2", epoch))
+#logger.info("Average time per batch       %.2f minutes" % ippToPspsDb.getAverageTimePerBatch("P2", epoch))
+#logger.info("Last published               %.2f hours ago" % ippToPspsDb.getLastBatchPublished("P2"))
+#logger.info("Average batches per day      %.2f" % ippToPspsDb.getBatchesPerDay("P2", epoch))
+#logger.info("-----------------------------------------------------")
+
+
