IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 19, 2012, 5:24:19 PM (14 years ago)
Author:
mhuber
Message:

merging latest r34040 trunk changes to branch

Location:
branches/meh_branches/ppstack_test
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/meh_branches/ppstack_test

  • branches/meh_branches/ppstack_test/ippToPsps/jython/cleanup.py

    r33415 r34041  
    77import sys
    88import time
     9import traceback
    910import logging.config
    1011
     
    1314from datastore import Datastore
    1415from dxlayer import DXLayer
    15 
    1616
    1717'''
     
    2626        super(Cleanup, self).__init__(argv)
    2727
     28        self.datastore = Datastore(self.logger, self.config, self.ippToPspsDb)
     29        self.dxlayer = DXLayer(self.logger)
    2830        if len(argv) > 2: self.parsePollTimeArg(sys.argv[2])
    2931
    30 
    31     '''
    32     Overrides base-class version
    33     '''
    34     def refreshConfig(self):
    35         ret = super(Cleanup, self).refreshConfig()
    36         self.dxlayer = DXLayer(self.logger)
    37         self.datastore = Datastore(self.logger, self.config, self.ippToPspsDb)
    38         return ret
    3932
    4033    '''
     
    4639        while True:
    4740
     41            self.logger.infoSeparator()
     42            self.logger.infoPair("Config", self.config.name)
    4843            self.config.printDeletionPolicy()
     44            self.clean("IN")
    4945            self.clean("P2")
    5046            self.clean("ST")
     47            self.clean("OB")
    5148
    5249            self.checkClientStatus()
    5350            if not self.waitForPollTime(): break
    5451   
     52    '''
     53    Reports results of cleanup for this set of IDs
     54    '''
     55    def reportResults(self, name, ids, success):
     56
     57        if len(ids) > 0:
     58            self.logger.infoSeparator()
     59            self.logger.infoPair("Removed from " + name, "%d of %d" % (success, len(ids)))
     60   
     61
    5562    '''
    5663    Finds stuff to delete for this batch type, then:
     
    6673        self.logger.infoTitle("Cleaning up batch type %s" % batchType)
    6774
    68         loadedDatastoreIDs = self.ippToPspsDb.getLoadedToODMButNotDeletedFromDatastore(batchType, self.config.epoch, self.config.dvoLabel)
    69         loadedDxlayerIDs = self.ippToPspsDb.getLoadedToODMButNotDeletedFromDXLayer(batchType, self.config.epoch, self.config.dvoLabel)
    70         mergedLocalIDs = self.ippToPspsDb.getMergedButNotDeletedFromLocalDisk(batchType, self.config.epoch, self.config.dvoLabel)
     75        loadedDatastoreIDs = self.ippToPspsDb.getLoadedToODMButNotDeletedFromDatastore(batchType)
     76        deleteFromDxLayerIDs = self.ippToPspsDb.getLoadedToODMButNotDeletedFromDXLayer(batchType)
     77        mergedLocalIDs = self.ippToPspsDb.getMergedButNotDeletedFromLocalDisk(batchType)
    7178
    72         purgedDatastoreIDs = self.ippToPspsDb.getPurgedButNotDeletedFromDatastore(batchType, self.config.epoch, self.config.dvoLabel)
    73         purgedLocalIDs = self.ippToPspsDb.getPurgedButNotDeletedFromLocalDisk(batchType, self.config.epoch, self.config.dvoLabel)
     79        purgedDatastoreIDs = self.ippToPspsDb.getPurgedButNotDeletedFromDatastore(batchType)
     80        purgedLocalIDs = self.ippToPspsDb.getPurgedButNotDeletedFromLocalDisk(batchType)
    7481
    75         self.logger.infoPair("Loaded to ODM but still on datastore", "%d" % len(loadedDatastoreIDs))
    76         self.logger.infoPair("Loaded to ODM but still in DXLayer", "%d" % len(loadedDxlayerIDs))
    77         self.logger.infoPair("Merged but still on local disk", "%d" % len(mergedLocalIDs))
    78         self.logger.infoPair("Purged but still on datastore", "%d" % len(purgedDatastoreIDs))
    79         self.logger.infoPair("Purged but still on local disk", "%d" % len(purgedLocalIDs))
     82        deleteFromDatastoreIDs = loadedDatastoreIDs + purgedDatastoreIDs
     83        deleteFromLocalIDs = mergedLocalIDs + purgedLocalIDs
     84
     85        # report to log what we are going to do
     86        self.logger.infoPair("To delete from datastore", "%d" % len(deleteFromDatastoreIDs))
     87        self.logger.infoPair("To delete from DXLayer", "%d" % len(deleteFromDxLayerIDs))
     88        self.logger.infoPair("To delete from local disk", "%d" % len(deleteFromLocalIDs))
    8089   
     90        # delete stuff from local disk
    8191        if self.config.deleteLocal:
    82             self.logger.infoSeparator()
    8392            count = 0
    84             ids = mergedLocalIDs + purgedLocalIDs
    85             for id in ids:
     93            for id in deleteFromLocalIDs:
    8694       
    8795                if Batch.deleteFromDisk(self.logger, self.config.basePath, batchType, self.config.dvoLabel, id):
     
    8997                    count = count + 1
    9098   
    91             self.logger.infoSeparator()
    92             self.logger.infoPair("Removed from local disk", "%d" % count)
    93             self.logger.infoPair("Remaining on local disk", "%d" % (len(ids) - count))
    94        
     99            self.reportResults("local disk", deleteFromLocalIDs, count)
    95100   
     101        # remove stuff from datastore
    96102        if self.config.deleteDatastore:
    97             self.logger.infoSeparator()
    98103            count = 0
    99             ids = loadedDatastoreIDs + purgedDatastoreIDs
    100             for id in ids:
     104            for id in deleteFromDatastoreIDs:
    101105       
    102106                batchName = Batch.getNameFromID(id)
     
    105109                    count = count + 1
    106110   
    107             self.logger.infoSeparator()
    108             self.logger.infoPair("Removed from datastore", "%d" % count)
    109             self.logger.infoPair("Remaining on datastore", "%d" % (len(ids) - count))
     111            self.reportResults("datastore", deleteFromDatastoreIDs, count)
    110112       
     113        # remove stuff from DXLayer
    111114        if self.config.deleteDxLayer:
    112             self.logger.infoSeparator()
    113115            count = 0
    114             for id in loadedDxlayerIDs:
     116            for id in deleteFromDxLayerIDs:
    115117       
    116118                if self.dxlayer.deleteBatch(id):
     
    118120                    count = count + 1
    119121   
    120             self.logger.infoSeparator()
    121             self.logger.infoPair("Removed from DXLayer", "%d" % count)
    122             self.logger.infoPair("Remaining on DXLayer", "%d" % (len(loadedDxlayerIDs) - count))
     122            self.reportResults("DXLayer", deleteFromDxLayerIDs, count)
    123123       
    124 
    125124    '''
    126125    Overrides base-class version
    127126    '''
    128127    def printUsage(self):
    129         super(Cleanup, self).printUsage()
    130         print " [<poll time in hours>]"
     128        super(Cleanup, self).printUsage("[<poll time in hours>]")
    131129
    132130
     
    134132Start of program
    135133'''
    136 cleanup = Cleanup(sys.argv)
    137 cleanup.run()
    138 cleanup.exitProgram("finished")
     134try:
     135    cleanup = Cleanup(sys.argv)
     136    cleanup.run()
     137    cleanup.exitProgram("completed")
     138except Exception, e:
     139    print str(e)
     140    traceback.print_exc()
Note: See TracChangeset for help on using the changeset viewer.