Index: trunk/ippToPsps/jython/metrics.py
===================================================================
--- trunk/ippToPsps/jython/metrics.py	(revision 33191)
+++ trunk/ippToPsps/jython/metrics.py	(revision 33259)
@@ -9,4 +9,5 @@
 from xml.etree.ElementTree import ElementTree, Element, tostring
 
+from config import Config
 from pslogger import PSLogger
 from ipptopspsdb import IppToPspsDb
@@ -19,5 +20,5 @@
 def plotMe(batchType, file):
 
-    OUTPUTFILE = "plots/" + DVOLABEL + "_" + batchType + ".png"
+    OUTPUTFILE = "plots/" + config.dvoLabel + "_" + batchType + ".png"
     f=os.popen('gnuplot', 'w')
 
@@ -29,5 +30,5 @@
     print >> f, "set term " + TERM + "; \
               set output \"" + OUTPUTFILE + "\"; \
-              set title \"ippToPsps : " + batchType + " loading for " + DVOLABEL + "\"; \
+              set title \"ippToPsps : " + batchType + " loading for " + config.dvoLabel + "\"; \
               set boxwidth; \
               set xtic rotate by -90 scale 0; \
@@ -54,8 +55,5 @@
 
     # get a master list of IDs in DVO for this batch type
-    if MINRA and MAXRA and MINDEC and MAXDEC:
-        allIDs = gpc1Db.getIDsInThisDVODbForThisStage(DVOLABEL, batchType, MINRA, MAXRA, MINDEC, MAXDEC)
-    else:
-        allIDs = gpc1Db.getIDsInThisDVODbForThisStage(DVOLABEL, batchType)
+    allIDs = gpc1Db.getIDsInThisDVODbForThisStage(config.dvoLabel, batchType, config.minRa, config.maxRa, config.minDec, config.maxDec)
     prevList = allIDs
     numEverything = len(allIDs)
@@ -69,6 +67,6 @@
 
        # get lists. Use unions with prev list to make sure the right stuff is included
-       success = list(set(ippToPspsDb.getStageIDs(batchType, EPOCH, DVOLABEL, stage, 1)) & set(prevList)) 
-       fail = list(set(ippToPspsDb.getStageIDs(batchType, EPOCH, DVOLABEL, stage, -1)) & set(prevList) - set(success))
+       success = list(set(ippToPspsDb.getStageIDs(batchType, config.epoch, config.dvoLabel, stage, 1)) & set(prevList)) 
+       fail = list(set(ippToPspsDb.getStageIDs(batchType, config.epoch, config.dvoLabel, stage, -1)) & set(prevList) - set(success))
        pending = list(set(prevList) - set(success) - set(fail))
 
@@ -87,10 +85,10 @@
        print >> DATFILE, stage, numSuccess, numFail, numPending
 
-       czarDb.insertStats(stage, DVOLABEL, batchType, numPending, numSuccess, numFail)
+       czarDb.insertStats(stage, config.dvoLabel, batchType, numPending, numSuccess, numFail)
 
        if stage == 'processed': numPendingProcessed = numPending
 
     sys.stdout.write("|\n")
-    plotMe(batchType, tempFilename)
+    #plotMe(batchType, tempFilename)
     DATFILE.close()
 
@@ -111,13 +109,13 @@
 def printStats(batchType):
 
-    rate = ippToPspsDb.countBatchesInLastPeriod(batchType, EPOCH, DVOLABEL, "1 HOUR") / 1.0 
+    rate = ippToPspsDb.countBatchesInLastPeriod(batchType, config.epoch, config.dvoLabel, "1 HOUR") / 1.0 
 
     logger.info("| %2s | %16.1f | %13d | %17.1f | %16d | %14s |" % 
             (batchType,
              rate,
-             ippToPspsDb.countBatchesInLastPeriod(batchType, EPOCH, DVOLABEL, "24 HOUR"),
-             ippToPspsDb.countBatchesInLastPeriod(batchType, EPOCH, DVOLABEL, "1 WEEK") / 7.0, 
-             ippToPspsDb.getTotalDetectionsPublished(batchType, EPOCH, DVOLABEL),
-             ippToPspsDb.getTimeOfLastBatchPublished(batchType, EPOCH, DVOLABEL)))
+             ippToPspsDb.countBatchesInLastPeriod(batchType, config.epoch, config.dvoLabel, "24 HOUR"),
+             ippToPspsDb.countBatchesInLastPeriod(batchType, config.epoch, config.dvoLabel, "1 WEEK") / 7.0, 
+             ippToPspsDb.getTotalDetectionsPublished(batchType, config.epoch, config.dvoLabel),
+             ippToPspsDb.getTimeOfLastBatchPublished(batchType, config.epoch, config.dvoLabel)))
 
     return rate
@@ -126,5 +124,5 @@
 Start of program.
 '''
-if len(sys.argv) > 1: CONFIG  = sys.argv[1]
+if len(sys.argv) > 1: CONFIGPATH  = sys.argv[1]
 else:
     print "** Usage: " + sys.argv[0] + " <configPath> [hours]"
@@ -137,20 +135,10 @@
     SECONDS = None
 
-
-
-# open config file
-configDoc = ElementTree(file=CONFIG)
-
-logging.setLoggerClass(PSLogger)
-logger = logging.getLogger("metrics")
-logger.setup(configDoc, "metrics")
-
-# create database objects
-ippToPspsDb = IppToPspsDb(logger, configDoc)
-czarDb = CzarDb(logger, configDoc)
-gpc1Db = Gpc1Db(logger, configDoc)
-
-DVOLABEL = configDoc.find("dvo/gpc1Label").text
-EPOCH = configDoc.find("options/epoch").text
+# create objects
+config = Config(CONFIGPATH)
+logger = config.getLogger("metrics")
+ippToPspsDb = IppToPspsDb(logger, config)
+czarDb = CzarDb(logger, config)
+gpc1Db = Gpc1Db(logger, config)
 
 while True:
@@ -159,21 +147,7 @@
     now = datetime.datetime.now()
     logger.infoPair("Time now", now.strftime("%Y-%m-%d %H:%M:%S"))
-    logger.infoPair("Loading epoch", EPOCH)
-    logger.infoPair("DVO label", DVOLABEL)
-
-    # get equatorial coord constraints, if any
-    try:
-        MINRA = float(configDoc.find("dvo/minRA").text)
-        MAXRA = float(configDoc.find("dvo/maxRA").text)
-        MINDEC = float(configDoc.find("dvo/minDec").text)
-        MAXDEC = float(configDoc.find("dvo/maxDec").text)
-    except:
-        MINRA = 0.0
-        MAXRA = 360.0
-        MINDEC = -30.0
-        MAXDEC = 90.0
-
-    logger.infoPair("RA limits", "%.1f to %.1f" % (MINRA, MAXRA))
-    logger.infoPair("Dec limits", "%.1f to %.1f" % (MINDEC, MAXDEC))
+    logger.infoPair("Loading epoch", config.epoch)
+    logger.infoPair("DVO label", config.dvoLabel)
+    config.printBoxCoords()
 
     logger.info("+----+------------------+---------------+-------------------+------------------+----------------+")
