Index: trunk/ippToPsps/jython/cleanup.py
===================================================================
--- trunk/ippToPsps/jython/cleanup.py	(revision 32254)
+++ trunk/ippToPsps/jython/cleanup.py	(revision 32255)
@@ -24,29 +24,39 @@
 def clean(batchType):
 
-    ids = ippToPspsDb.getMergedButNotDeletedBatchIDs(batchType, EPOCH, DVOLABEL)
-    logger.infoPair("Batch type", "%s" % batchType)
-    logger.infoPair("Merged but un-deleted batches", "%d" % len(ids))
+    logger.infoSeparator()
+    logger.infoTitle("Cleaning up batch type %s" % batchType)
 
-    logger.info("+-----------+-------------------------+-------------------------+-------------------------+")
-    logger.info("|   Batch   | Removed from datastore  | Removed from local disk |   Removed from DXLayer  |")
-    logger.info("+-----------+-------------------------+-------------------------+-------------------------+")
+    localIDs = ippToPspsDb.getLoadedToODMButNotDeletedFromLocalDisk(batchType, EPOCH, DVOLABEL)
+    datastoreIDs = ippToPspsDb.getLoadedToODMButNotDeletedFromDatastore(batchType, EPOCH, DVOLABEL)
+    dxlayerIDs = ippToPspsDb.getLoadedToODMButNotDeletedFromDXLayer(batchType, EPOCH, DVOLABEL)
+    logger.infoPair("Loaded to ODM but still on local disk", "%d" % len(localIDs))
+    logger.infoPair("Loaded to ODM but still on datastore", "%d" % len(datastoreIDs))
+    logger.infoPair("Loaded to ODM but still in DXLayer", "%d" % len(dxlayerIDs))
 
-    for id in ids:
+    if DELETELOCAL:
+        count = 0
+        for id in localIDs:
     
-        batchName = Batch.getNameFromID(id)
+            if Batch.deleteFromDisk(logger, BASEPATH, batchType, DVOLABEL, id):
+                ippToPspsDb.updateDeletedLocal(id, 1)
+                count = count + 1
 
-        # do the deletions
-        removedFromDatastore = datastore.remove(batchName)
-        removedFromLocalDisk = Batch.deleteFromDisk(BASEPATH, batchType, DVOLABEL, id)
-        removedFromDXLayer = 0  # TODO
+        logger.infoPair("Removed from local disk", "%d" % count)
+        logger.infoPair("Remaining on local disk", "%d" % (len(localIDs) - count))
+    
 
-        logger.info("| %9s | %23d | %23d | %23d |",
-                batchName,
-                removedFromDatastore,
-                removedFromLocalDisk,
-                removedFromDXLayer)
+    if DELETEDATASTORE:
+        count = 0
+        for id in datastoreIDs:
+    
+            batchName = Batch.getNameFromID(id)
 
-    logger.info("+-----------+-------------------------+-------------------------+-------------------------+")
+            if datastore.remove(batchName):
+                ippToPspsDb.updateDeletedDatastore(id, 1)
+                count = count + 1
 
+        logger.infoPair("Removed from datastore", "%d" % count)
+        logger.infoPair("Remaining on datastore", "%d" % (len(datastoreIDs) - count))
+    
 
 '''
@@ -73,4 +83,12 @@
 EPOCH = configDoc.find("options/epoch").text
 BASEPATH = configDoc.find("localOutPath").text
+DELETELOCAL = int(configDoc.find("deletion/local").text)
+DELETEDATASTORE = int(configDoc.find("deletion/datastore").text)
+DELETEDXLAYER = int(configDoc.find("deletion/dxlayer").text)
+
+logger.infoTitle("ippToPsps clean-up")
+logger.infoBool("Deleting from local disk?", DELETELOCAL)
+logger.infoBool("Deleting from datastore?", DELETEDATASTORE)
+logger.infoBool("Deleting from DXLayer?", DELETEDXLAYER)
 
 clean("P2")
