- Timestamp:
- Jan 11, 2012, 11:19:21 PM (15 years ago)
- Location:
- branches/meh_branches/ppsub_test
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
ippToPsps/jython/cleanup.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/meh_branches/ppsub_test
- Property svn:mergeinfo changed
-
branches/meh_branches/ppsub_test/ippToPsps/jython/cleanup.py
r32123 r33098 6 6 import re 7 7 import sys 8 import time 9 import logging.config 8 10 9 import logging.config10 11 from pslogger import PSLogger 11 12 from ipptopspsdb import IppToPspsDb 12 13 from batch import Batch 14 from datastore import Datastore 15 from dxlayer import DXLayer 13 16 17 ''' 18 Finds stuff to delete for this batch type, then: 19 20 - removes from the datastore 21 - deletes from local disk 22 - deletes files from DXLayer 23 24 ''' 25 def clean(batchType): 26 27 logger.infoSeparator() 28 logger.infoTitle("Cleaning up batch type %s" % batchType) 29 30 localIDs = ippToPspsDb.getMergedButNotDeletedFromLocalDisk(batchType, EPOCH, DVOLABEL) 31 datastoreIDs = ippToPspsDb.getLoadedToODMButNotDeletedFromDatastore(batchType, EPOCH, DVOLABEL) 32 dxlayerIDs = ippToPspsDb.getLoadedToODMButNotDeletedFromDXLayer(batchType, EPOCH, DVOLABEL) 33 logger.infoPair("Merged but still on local disk", "%d" % len(localIDs)) 34 logger.infoPair("Loaded to ODM but still on datastore", "%d" % len(datastoreIDs)) 35 logger.infoPair("Loaded to ODM but still in DXLayer", "%d" % len(dxlayerIDs)) 36 37 if DELETELOCAL: 38 count = 0 39 for id in localIDs: 40 41 if Batch.deleteFromDisk(logger, BASEPATH, batchType, DVOLABEL, id): 42 ippToPspsDb.updateDeletedLocal(id, 1) 43 count = count + 1 44 45 logger.infoPair("Removed from local disk", "%d" % count) 46 logger.infoPair("Remaining on local disk", "%d" % (len(localIDs) - count)) 47 48 49 if DELETEDATASTORE: 50 count = 0 51 for id in datastoreIDs: 52 53 batchName = Batch.getNameFromID(id) 54 55 if datastore.remove(batchName): 56 count = count + 1 57 58 logger.infoPair("Removed from datastore", "%d" % count) 59 logger.infoPair("Remaining on datastore", "%d" % (len(datastoreIDs) - count)) 60 61 if DELETEDXLAYER: 62 count = 0 63 for id in dxlayerIDs: 64 65 if dxlayer.deleteBatch(id): 66 ippToPspsDb.updateDeletedDxlayer(id, 1) 67 count = count + 1 68 69 logger.infoPair("Removed from DXLayer", "%d" % count) 70 logger.infoPair("Remaining on DXLayer", "%d" % (len(dxlayerIDs) - count)) 71 72 73 ''' 74 Start of program 75 ''' 14 76 15 77 if len(sys.argv) > 1: CONFIG = sys.argv[1] 16 78 else: 17 print "\n** Usage: " + sys.argv[0] + " <configPath> \n"79 print "\n** Usage: " + sys.argv[0] + " <configPath> [hours]\n" 18 80 sys.exit(1) 81 82 if len(sys.argv) > 2: 83 HOURS = float(sys.argv[2]) 84 SECONDS = HOURS * 60.0 * 60.0 85 else: 86 SECONDS = None 19 87 20 88 # open config file … … 27 95 28 96 ippToPspsDb = IppToPspsDb(logger, configDoc) 97 datastore = Datastore(logger, configDoc, ippToPspsDb) 98 dxlayer = DXLayer(logger) 29 99 30 100 DVOLABEL = configDoc.find("dvo/gpc1Label").text 31 101 EPOCH = configDoc.find("options/epoch").text 102 BASEPATH = configDoc.find("localOutPath").text 103 DELETELOCAL = int(configDoc.find("deletion/local").text) 104 DELETEDATASTORE = int(configDoc.find("deletion/datastore").text) 105 DELETEDXLAYER = int(configDoc.find("deletion/dxlayer").text) 32 106 33 ids = ippToPspsDb.getMergedButNotDeletedBatchIDs(EPOCH, DVOLABEL) 107 logger.infoTitle("ippToPsps clean-up") 108 if SECONDS: logger.infoPair("Performing clean-up every", "%f hours" % (SECONDS/60.0/60.0)) 109 logger.infoBool("Deleting from local disk?", DELETELOCAL) 110 logger.infoBool("Deleting from datastore?", DELETEDATASTORE) 111 logger.infoBool("Deleting from DXLayer?", DELETEDXLAYER) 34 112 35 logger.infoPair("Merged but un-deleted batches", "%d" % len(ids)) 113 while True: 36 114 115 clean("P2") 116 clean("ST") 37 117 38 39 logger.info("+-----------+-------------------------+-------------------------+-------------------------+") 40 logger.info("| Batch | Removed from datastore | Removed from local disk | Removed from DXLayer |") 41 logger.info("+-----------+-------------------------+-------------------------+-------------------------+") 42 43 for id in ids: 118 if SECONDS: 119 logger.infoPair("Waiting for", "%f hours" % HOURS) 120 time.sleep(SECONDS) 121 else: break 44 122 45 batchName = Batch.getNameFromID(id)46 removedFromDatastore = 047 removedFromLocalDisk = 048 removedFromDXLayer = 049 50 logger.info("| %9s | %23d | %23d | %23d |",51 batchName,52 removedFromDatastore,53 removedFromLocalDisk,54 removedFromDXLayer)55 56 logger.info("+-----------+-------------------------+-------------------------+-------------------------+")
Note:
See TracChangeset
for help on using the changeset viewer.
