Index: trunk/ippToPsps/jython/pollOdm.py
===================================================================
--- trunk/ippToPsps/jython/pollOdm.py	(revision 32492)
+++ trunk/ippToPsps/jython/pollOdm.py	(revision 32542)
@@ -6,4 +6,5 @@
 import re
 import sys
+import time
 
 import logging.config
@@ -13,11 +14,88 @@
 from batch import Batch
 
+'''
+Method to actually poll ODM
+'''
+def poll(batchType):
+  
 
-if len(sys.argv) > 2: 
+    lookingForUnloaded = 0
+    lookingForUnmergeworthy = 0
+    lookingForUnmerged = 0
+    lookingForAll = 0
+
+    if TYPE == "unloaded":
+        lookingForUnloaded = 1
+        ids = ippToPspsDb.getUnloadedBatchIDs(EPOCH, DVOLABEL, batchType)
+    elif TYPE == "unmergeworthy":
+        lookingForUnmergeworthy = 1
+        ids = ippToPspsDb.getUnmergeWorthyBatchIDs(EPOCH, DVOLABEL, batchType)
+    elif TYPE == "unmerged":
+        lookingForUnmerged = 1
+        ids = ippToPspsDb.getUnmergedBatchIDs(EPOCH, DVOLABEL, batchType)
+    elif TYPE == "unfinished":
+        lookingForAll = 1
+        ids = ippToPspsDb.getAllUnfinishedBatchIDs(EPOCH, DVOLABEL, batchType)
+
+    logger.infoTitle("Checking %d %s %s batches" % (len(ids), TYPE, batchType))
+
+    results = {}
+    newLoaded = 0
+    newMergeWorthy = 0
+    newMerged = 0
+
+    logger.info("+-----------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+")
+    logger.info("|   Batch   | Loaded to ODM  |  Load failed   |  Merge worthy  |     Merged     |   New loaded   |New merge worthy|   New merged   |")
+    logger.info("+-----------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+")
+    for id in ids:
+
+        if odm.checkBatch(id, results):
+           ippToPspsDb.updateOdmStatus(id, results)
+
+           if lookingForUnloaded:
+               if results['LOADEDTOODM'] == 1: newLoaded = newLoaded + 1
+               if results['MERGEWORTHY'] == 1: newMergeWorthy = newMergeWorthy + 1
+               if results['MERGED'] == 1: newMerged = newMerged + 1
+
+           elif lookingForUnmergeworthy:
+               if results['MERGEWORTHY'] == 1: newMergeWorthy = newMergeWorthy + 1
+               if results['MERGED'] == 1: newMerged = newMerged + 1
+
+           elif lookingForUnmerged:
+               if results['MERGED'] == 1: newMerged = newMerged + 1
+
+           logger.info("| %9s | %14d | %14d | %14d | %14d | %14d | %14d | %14d |" %
+                   (Batch.getNameFromID(id),
+                    results['LOADEDTOODM'],
+                    results['LOADFAILED'],
+                    results['MERGEWORTHY'],
+                    results['MERGED'],
+                    newLoaded,
+                    newMergeWorthy,
+                    newMerged))
+
+
+        else:
+            logger.info("| %9s | failed to poll ODM                                                                                                   |" % Batch.getNameFromID(id))
+
+    logger.info("+-----------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+")
+
+
+'''
+Program starts here
+'''
+if len(sys.argv) > 3: 
     CONFIG  = sys.argv[1]
     BATCHTYPE = sys.argv[2]
+    TYPE = sys.argv[3]
 else:
-    print "\n** Usage: " + sys.argv[0] + " <configPath> <batchType> [unmerged]\n"
+    print "\n** Usage: " + sys.argv[0] + " <configPath> <P2|ST|all> <unloaded|unmergeworthy|unmerged|unfinished> [hours]\n"
     sys.exit(1)
+
+if len(sys.argv) > 4:  
+    HOURS = float(sys.argv[4]) 
+    SECONDS = HOURS * 60.0 * 60.0
+else: 
+    SECONDS = None
 
 # open config file
@@ -35,51 +113,16 @@
 EPOCH = configDoc.find("options/epoch").text
 
-lookingForUnmerged = 0
-if len(sys.argv) > 3 and sys.argv[3] == "unmerged":
-    lookingForUnmerged = 1
+while True:
 
-if lookingForUnmerged:
-    ids = ippToPspsDb.getUnmergedBatchIDs(EPOCH, DVOLABEL, BATCHTYPE)
-else:
-    ids = ippToPspsDb.getUnloadedBatchIDs(EPOCH, DVOLABEL, BATCHTYPE)
+    if BATCHTYPE == "all":
+        poll("P2")
+        poll("ST")
+    else:    
+        poll(BATCHTYPE)
 
-logger.infoPair("Checking", "%d batches" % len(ids))
+    if SECONDS: 
+        logger.infoPair("Waiting for", "%f hours" % HOURS)
+        time.sleep(SECONDS)
+    else: break
 
 
-results = {}
-
-logger.info("+-----------+----------------+----------------+----------------+----------------+----------------+----------------+")
-logger.info("|   Batch   | Loaded to ODM  |  Load failed   |  Merge worthy  |     Merged     |New merge worthy|   New merged   |")
-logger.info("+-----------+----------------+----------------+----------------+----------------+----------------+----------------+")
-newMergeWorthy = 0
-newMerged = 0
-for id in ids:
-
-   if odm.checkBatch(id, results):
-       ippToPspsDb.updateOdmStatus(id, results)
-
-       if lookingForUnmerged:
-           if results['MERGED'] == 1: newMerged = newMerged + 1
-       else:
-           if results['MERGEWORTHY'] == 1: newMergeWorthy = newMergeWorthy + 1
-           if results['MERGED'] == 1: newMerged = newMerged + 1
-
-       logger.info("| %9s | %14d | %14d | %14d | %14d | %14d | %14d |" %
-               (Batch.getNameFromID(id),
-                results['LOADEDTOODM'],
-                results['LOADFAILED'],
-                results['MERGEWORTHY'],
-                results['MERGED'],
-                newMergeWorthy,
-                newMerged))
-
-
-   else:
-       logger.info("| %9s | failed to poll ODM                                                                                  |" % Batch.getNameFromID(id))
-
-logger.info("+-----------+----------------+----------------+----------------+----------------+----------------+----------------+")
-
-logger.infoPair("New merge-worthy batches", "%d" % newMergeWorthy)
-logger.infoPair("New merged batches", "%d" % newMerged)
-
-
