IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 33358 for trunk/ippToPsps


Ignore:
Timestamp:
Feb 23, 2012, 4:20:00 PM (15 years ago)
Author:
rhenders
Message:

big changes to support reading config from the database instead of xml file

File:
1 edited

Legend:

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

    r33261 r33358  
    1818    Basically reads the entire config and stores values to class variables
    1919    '''
    20     def __init__(self, path):
     20    def __init__(self, programName, name):
    2121
    22         self.path = path
     22        self.programName = programName
     23        self.name = name
     24        self.settingsPath = "../config/settings.xml" # TODO
    2325        self.logger = None
     26
     27        self.settingsDoc = ElementTree(file=self.settingsPath)
     28        self.logPath = self.settingsDoc.find("logPath").text
     29
    2430
    2531        # this is the border (in degrees) that we place around any loading box of
    2632        # PS1 pointings to ensure we pull a large enough area out of DVO
    2733        self.BORDER = 1.6
    28         self.refresh()
    29 
    30     def refresh(self):
    31 
    32         try:
    33             self.logger.infoPair("Reading config from", self.path)
    34         except: pass
    35         self.doc = ElementTree(file=self.path)
    36 
    37         # test mode?
    38         if int(self.doc.find("options/testMode").text) == 1:
    39             self.test = True
    40         else:
    41             self.test = False
    42 
    43         # location for data
    44         self.basePath = self.doc.find("localOutPath").text
    45 
    46         # DVO stuff
    47         self.dvoLabel = self.doc.find("dvo/gpc1Label").text
    48         self.dvoLocation = self.doc.find("dvo/location").text
    49 
    50         # other options
    51         self.epoch = self.doc.find("options/epoch").text
    52         self.survey = self.doc.find("options/survey").text
    53         self.pspsSurvey = self.doc.find("options/pspsSurvey").text
    54         self.dataRelease = int(self.doc.find("metadata/dataRelease").text)
    55 
    56         # get RA/Dec limits, if any
    57         try: self.minRa = float(self.doc.find("dvo/minRA").text)
    58         except: self.minRa = 0.0
    59         try: self.maxRa = float(self.doc.find("dvo/maxRA").text)
    60         except: self.maxRa = 360.0
    61         try: self.minDec = float(self.doc.find("dvo/minDec").text)
    62         except: self.minDec = -30.0
    63         try: self.maxDec = float(self.doc.find("dvo/maxDec").text)
    64         except: self.maxDec = 90.0
    65 
    66         # loading box size, if none set to default
    67         try: self.boxSize = float(self.doc.find("dvo/boxSize").text)
    68         except: self.boxSize = 4.0
    69         self.halfBox = self.boxSize/2.0
    70         self.boxSizeWithBorder = self.boxSize + (self.BORDER * 2)
    71 
    72         # datastore stuff
    73         self.datastoreProduct = self.doc.find("datastore/product").text
    74         self.datastoreType = self.doc.find("datastore/type").text
    75         if int(self.doc.find("options/publishToDatastore").text) == 1:
    76             self.datastorePublishing = True
    77         else:
    78             self.datastorePublishing = False
    79 
    80         # forcing?
    81         if int(self.doc.find("options/force").text) == 1:
    82             self.force = True
    83         else:
    84             self.force = False
    85 
    86         # reporting NULLS in tables?
    87         if int(self.doc.find("options/reportNulls").text) == 1:
    88             self.reportNulls = True
    89         else:
    90             self.reportNulls = False
    91 
    92         # get batch types to load
    93         self.batchTypes = []
    94         if int(self.doc.find("options/queueP2").text) == 1: self.batchTypes.append("P2")
    95         if int(self.doc.find("options/queueST").text) == 1: self.batchTypes.append("ST")
    96 
    97         # get IDs if any are set
    98         self.ids = []
    99         try:
    100             for element in self.doc.findall('options/ids/id'):
    101                 self.ids.append(int(element.text))
    102         except:
    103             pass
    104 
    105         # deletion policy
    106         if int(self.doc.find("deletion/local").text) == 1: self.deleteLocal = True
    107         else: self.deleteLocal = False
    108         if int(self.doc.find("deletion/datastore").text) == 1: self.deleteDatastore = True
    109         else: self.deleteDatastore = False
    110         if int(self.doc.find("deletion/dxlayer").text) == 1: self.deleteDxLayer = True
    111         else: self.deleteDxLayer = False
    112 
     34        self.isLoaded = False
    11335
    11436    '''
    … …  
    11941        try:
    12042            self.logger.infoSeparator()
    121             self.logger.infoPair("Config path", self.path)
     43            self.logger.infoPair("Config name", self.name)
    12244            self.logger.infoPair("Survey", self.survey)
    12345            self.logger.infoPair("Publishing to PSPS as survey", self.pspsSurvey)
    … …  
    12648            self.logger.infoBool("Test mode?", self.test)
    12749            self.logger.infoBool("Forcing?", self.force)
    128             self.logger.infoPair("Number of ids loaded from config", "%d" % len(self.ids))
    12950            self.logger.infoBool("Reporting NULLS?", self.reportNulls)
    130             for batchType in self.batchTypes: logger.infoPair("Queuing batch type", batchType)
     51            for batchType in self.batchTypes: self.logger.infoPair("Queuing batch type", batchType)
    13152        except:
    13253            pass
    … …  
    14364    Creates a logger object and returns it
    14465    '''
    145     def getLogger(self, name, stdout=1, sendToFile=0):
     66    def getLogger(self, host, pid, stdout=1, sendToFile=0):
    14667       
    14768        logging.setLoggerClass(PSLogger)
    148         self.logger = logging.getLogger(name)
    149         self.logger.setup(name, self.basePath, self.dvoLabel, stdout, sendToFile)
     69        self.logger = logging.getLogger(self.programName)
     70        self.logger.setup(self.programName, self.logPath, self.name, host, pid, stdout, sendToFile)
    15071
    15172        return self.logger
    … …  
    194115        try:
    195116            self.logger.infoPair("RA limits", "%.1f -> %.1f" % (self.minRa, self.maxRa))
    196             self.logger.infoPair("Dec limits", "%.1f -> %.1f" % (self.minDec, self.minDec))
     117            self.logger.infoPair("Dec limits", "%.1f -> %.1f" % (self.minDec, self.maxDec))
    197118            self.logger.infoPair("Loading box size", "%.1f degrees" % self.boxSize)
    198119        except:
    … …  
    203124    Various db metadata getters
    204125    '''
    205     def getDbName(self, dbType): return self.doc.find(dbType +"/name").text
    206     def getDbHost(self, dbType): return self.doc.find(dbType +"/host").text
    207     def getDbUser(self, dbType): return self.doc.find(dbType +"/user").text
    208     def getDbPassword(self, dbType): return self.doc.find(dbType +"/password").text
     126    def getDbName(self, dbType): return self.settingsDoc.find(dbType +"/name").text
     127    def getDbHost(self, dbType): return self.settingsDoc.find(dbType +"/host").text
     128    def getDbUser(self, dbType): return self.settingsDoc.find(dbType +"/user").text
     129    def getDbPassword(self, dbType): return self.settingsDoc.find(dbType +"/password").text
    209130
    210131
Note: See TracChangeset for help on using the changeset viewer.