IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Oct 13, 2011, 9:57:27 AM (15 years ago)
Author:
rhenders
Message:

main polling stuff now in a function; added time argument so it will poll everything every n hours; can now poll for: unloaded, unmergeworthy, unmerged or all unfinished batches

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippToPsps/jython/pollOdm.py

    r32492 r32542  
    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) > 2:
     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:
    1788    CONFIG  = sys.argv[1]
    1889    BATCHTYPE = sys.argv[2]
     90    TYPE = sys.argv[3]
    1991else:
    20     print "\n** Usage: " + sys.argv[0] + " <configPath> <batchType> [unmerged]\n"
     92    print "\n** Usage: " + sys.argv[0] + " <configPath> <P2|ST|all> <unloaded|unmergeworthy|unmerged|unfinished> [hours]\n"
    2193    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
    22100
    23101# open config file
     
    35113EPOCH = configDoc.find("options/epoch").text
    36114
    37 lookingForUnmerged = 0
    38 if len(sys.argv) > 3 and sys.argv[3] == "unmerged":
    39     lookingForUnmerged = 1
     115while True:
    40116
    41 if lookingForUnmerged:
    42     ids = ippToPspsDb.getUnmergedBatchIDs(EPOCH, DVOLABEL, BATCHTYPE)
    43 else:
    44     ids = ippToPspsDb.getUnloadedBatchIDs(EPOCH, DVOLABEL, BATCHTYPE)
     117    if BATCHTYPE == "all":
     118        poll("P2")
     119        poll("ST")
     120    else:   
     121        poll(BATCHTYPE)
    45122
    46 logger.infoPair("Checking", "%d batches" % len(ids))
     123    if SECONDS:
     124        logger.infoPair("Waiting for", "%f hours" % HOURS)
     125        time.sleep(SECONDS)
     126    else: break
    47127
    48128
    49 results = {}
    50 
    51 logger.info("+-----------+----------------+----------------+----------------+----------------+----------------+----------------+")
    52 logger.info("|   Batch   | Loaded to ODM  |  Load failed   |  Merge worthy  |     Merged     |New merge worthy|   New merged   |")
    53 logger.info("+-----------+----------------+----------------+----------------+----------------+----------------+----------------+")
    54 newMergeWorthy = 0
    55 newMerged = 0
    56 for id in ids:
    57 
    58    if odm.checkBatch(id, results):
    59        ippToPspsDb.updateOdmStatus(id, results)
    60 
    61        if lookingForUnmerged:
    62            if results['MERGED'] == 1: newMerged = newMerged + 1
    63        else:
    64            if results['MERGEWORTHY'] == 1: newMergeWorthy = newMergeWorthy + 1
    65            if results['MERGED'] == 1: newMerged = newMerged + 1
    66 
    67        logger.info("| %9s | %14d | %14d | %14d | %14d | %14d | %14d |" %
    68                (Batch.getNameFromID(id),
    69                 results['LOADEDTOODM'],
    70                 results['LOADFAILED'],
    71                 results['MERGEWORTHY'],
    72                 results['MERGED'],
    73                 newMergeWorthy,
    74                 newMerged))
    75 
    76 
    77    else:
    78        logger.info("| %9s | failed to poll ODM                                                                                  |" % Batch.getNameFromID(id))
    79 
    80 logger.info("+-----------+----------------+----------------+----------------+----------------+----------------+----------------+")
    81 
    82 logger.infoPair("New merge-worthy batches", "%d" % newMergeWorthy)
    83 logger.infoPair("New merged batches", "%d" % newMerged)
    84 
    85 
Note: See TracChangeset for help on using the changeset viewer.