IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Nov 8, 2011, 2:44:12 PM (15 years ago)
Author:
eugene
Message:

merge changes from trunk

Location:
branches/eam_branches/ipp-20110906
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20110906

  • branches/eam_branches/ipp-20110906/ippToPsps/jython/pollOdm.py

    r32254 r32630  
    66import re
    77import sys
     8import time
    89
    910import logging.config
     
    1314from batch import Batch
    1415
     16'''
     17Method to actually poll ODM
     18'''
     19def poll(batchType):
     20 
    1521
    16 if len(sys.argv) > 1: CONFIG  = sys.argv[1]
     22    lookingForUnloaded = 0
     23    lookingForUnmergeworthy = 0
     24    lookingForUnmerged = 0
     25    lookingForAll = 0
     26
     27    if TYPE == "unloaded":
     28        lookingForUnloaded = 1
     29        ids = ippToPspsDb.getUnloadedBatchIDs(EPOCH, DVOLABEL, batchType)
     30    elif TYPE == "unmergeworthy":
     31        lookingForUnmergeworthy = 1
     32        ids = ippToPspsDb.getUnmergeWorthyBatchIDs(EPOCH, DVOLABEL, batchType)
     33    elif TYPE == "unmerged":
     34        lookingForUnmerged = 1
     35        ids = ippToPspsDb.getUnmergedBatchIDs(EPOCH, DVOLABEL, batchType)
     36    elif TYPE == "unfinished":
     37        lookingForAll = 1
     38        ids = ippToPspsDb.getAllUnfinishedBatchIDs(EPOCH, DVOLABEL, batchType)
     39
     40    logger.infoTitle("Checking %d %s %s batches" % (len(ids), TYPE, batchType))
     41
     42    results = {}
     43    newLoaded = 0
     44    newMergeWorthy = 0
     45    newMerged = 0
     46
     47    logger.info("+-----------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+")
     48    logger.info("|   Batch   | Loaded to ODM  |  Load failed   |  Merge worthy  |     Merged     |   New loaded   |New merge worthy|   New merged   |")
     49    logger.info("+-----------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+")
     50    for id in ids:
     51
     52        if odm.checkBatch(id, results):
     53           ippToPspsDb.updateOdmStatus(id, results)
     54
     55           if lookingForUnloaded:
     56               if results['LOADEDTOODM'] == 1: newLoaded = newLoaded + 1
     57               if results['MERGEWORTHY'] == 1: newMergeWorthy = newMergeWorthy + 1
     58               if results['MERGED'] == 1: newMerged = newMerged + 1
     59
     60           elif lookingForUnmergeworthy:
     61               if results['MERGEWORTHY'] == 1: newMergeWorthy = newMergeWorthy + 1
     62               if results['MERGED'] == 1: newMerged = newMerged + 1
     63
     64           elif lookingForUnmerged:
     65               if results['MERGED'] == 1: newMerged = newMerged + 1
     66
     67           logger.info("| %9s | %14d | %14d | %14d | %14d | %14d | %14d | %14d |" %
     68                   (Batch.getNameFromID(id),
     69                    results['LOADEDTOODM'],
     70                    results['LOADFAILED'],
     71                    results['MERGEWORTHY'],
     72                    results['MERGED'],
     73                    newLoaded,
     74                    newMergeWorthy,
     75                    newMerged))
     76
     77
     78        else:
     79            logger.info("| %9s | failed to poll ODM                                                                                                   |" % Batch.getNameFromID(id))
     80
     81    logger.info("+-----------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+")
     82
     83
     84'''
     85Program starts here
     86'''
     87if len(sys.argv) > 3:
     88    CONFIG  = sys.argv[1]
     89    BATCHTYPE = sys.argv[2]
     90    TYPE = sys.argv[3]
    1791else:
    18     print "\n** Usage: " + sys.argv[0] + " <configPath>\n"
     92    print "\n** Usage: " + sys.argv[0] + " <configPath> <P2|ST|all> <unloaded|unmergeworthy|unmerged|unfinished> [hours]\n"
    1993    sys.exit(1)
     94
     95if len(sys.argv) > 4: 
     96    HOURS = float(sys.argv[4])
     97    SECONDS = HOURS * 60.0 * 60.0
     98else:
     99    SECONDS = None
    20100
    21101# open config file
     
    33113EPOCH = configDoc.find("options/epoch").text
    34114
    35 if len(sys.argv) > 2 and sys.argv[2] == "all":
    36     ids = ippToPspsDb.getUnfinishedBatchIDs(EPOCH, DVOLABEL)
    37 else:
    38     ids = ippToPspsDb.getBatchIDsUnloadedToODM(EPOCH, DVOLABEL)
     115while True:
    39116
    40 logger.infoPair("Checking", "%d batches" % len(ids))
     117    if BATCHTYPE == "all":
     118        poll("P2")
     119        poll("ST")
     120    else:   
     121        poll(BATCHTYPE)
     122
     123    if SECONDS:
     124        logger.infoPair("Waiting for", "%f hours" % HOURS)
     125        time.sleep(SECONDS)
     126    else: break
    41127
    42128
    43 results = {}
    44 
    45 logger.info("+-----------+----------------+----------------+----------------+----------------+")
    46 logger.info("|   Batch   | Loaded to ODM  |  Load failed   |  Merge worthy  |     Merged     |")
    47 logger.info("+-----------+----------------+----------------+----------------+----------------+")
    48 for id in ids:
    49 
    50    if odm.checkBatch(id, results):
    51        ippToPspsDb.updateOdmStatus(id, results)
    52        logger.info("| %9s | %14d | %14d | %14d | %14d |" %
    53                (Batch.getNameFromID(id),
    54                 results['LOADEDTOODM'],
    55                 results['LOADFAILED'],
    56                 results['MERGEWORTHY'],
    57                 results['MERGED']))
    58    else:
    59        logger.info("| %9s | failed to poll ODM                                                |" % Batch.getNameFromID(id))
    60 
    61 logger.info("+-----------+----------------+----------------+----------------+----------------+")
    62 
Note: See TracChangeset for help on using the changeset viewer.