IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Apr 22, 2011, 1:15:51 PM (15 years ago)
Author:
rhenders
Message:

Now subclass of MySql base class

File:
1 edited

Legend:

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

    r31323 r31345  
    77import logging
    88
     9from mysql import MySql
    910from java.sql import *
    10 from xml.etree.ElementTree import ElementTree
    1111
    1212
     
    1414Class for GPC1 database connectivity
    1515'''
    16 class Gpc1Db(object):
    17 
    18     driverName="com.mysql.jdbc.Driver"
     16class Gpc1Db(MySql):
    1917
    2018    '''
    2119    Constructor
    22 
    2320    '''
    2421    def __init__(self, logger):
    25 
    26         # setup logging
    27         self.logger = logger
    28         self.logger.debug("Gpc1Db constructor")
    29 
    30         # open config
    31         doc = ElementTree(file="config.xml")
    32 
    33         # set up JDBC connection
    34         dbName = doc.find("gpc1database/name").text
    35         dbHost = doc.find("gpc1database/host").text
    36         dbUser = doc.find("gpc1database/user").text
    37         dbPass = doc.find("gpc1database/password").text
    38         self.url = "jdbc:mysql://"+dbHost+"/"+dbName+"?user="+dbUser+"&password="+dbPass
    39         self.con = DriverManager.getConnection(self.url)
    40         self.stmt = self.con.createStatement()
     22        super(Gpc1Db, self).__init__(logger,"gpc1database")
    4123
    4224    '''
     
    4628
    4729        self.logger.debug("Gpc1Db destructor")
    48         self.stmt.close()
    49         self.con.close()
    50 
    5130
    5231    '''
    53     Gets a list of sky_ids in this DVO database
     32    Gets a list of ids in this DVO database for this stage, could be cam or staticsky (so far)
    5433    '''
    55     def getSkyIDsInThisDVODb(self, dvoDb):
     34    def getIDsInThisDVODbForThisStage(self, dvoDb, stage):
    5635
    5736        self.logger.debug("Querying GPC1 for sky_ids in this DVO database: " + dvoDb)
     
    5938        sql = "SELECT DISTINCT stage_id \
    6039               FROM addRun \
    61                WHERE stage = 'staticsky' \
     40               WHERE stage = '" + stage + "' \
    6241               AND dvodb = '" + dvoDb + "'"
    63 
    64         print sql
    6542
    6643        try:
     
    6946            self.logger.exception("Can't query for sky_ids")
    7047
    71         skyIDs = []
     48        ids = []
    7249        while (rs.next()):
    73             skyIDs.append(rs.getInt(1))
     50            ids.append(rs.getInt(1))
    7451
    7552        rs.close()
    7653
    77         return skyIDs
     54        return ids
    7855
    7956    '''
     
    10683
    10784        return imageIDs
     85
     86    '''
     87    Gets some camera-stage meta data for this cam_id
     88    '''
     89    def getCameraStageMeta(self, camID):
     90
     91        self.logger.debug("Querying GPC1 for camera meta data")
     92
     93        meta = []
     94        sql = "SELECT exp_id, exp_name, camRun.dist_group \
     95               FROM camRun \
     96               JOIN chipRun USING(chip_id) \
     97               JOIN rawExp USING(exp_id) WHERE camRun.cam_id = %d" % camID
     98
     99        try:
     100            rs = self.stmt.executeQuery(sql)
     101            rs.first()
     102        except:
     103            self.logger.exception("Can't query for camera meta")
     104        finally:
     105            meta.append(rs.getInt(1))
     106            meta.append(rs.getString(2))
     107            meta.append(rs.getString(3))
     108
     109        return meta
     110
     111    '''
     112    Gets a camera-stage smf for this cam_id
     113    '''
     114    def getCameraStageSmf(self, camID):
     115
     116        self.logger.debug("Querying GPC1 for camera smf files")
     117
     118        sql = "SELECT path_base \
     119               FROM camProcessedExp \
     120               JOIN camRun USING(cam_id) \
     121               WHERE camRun.cam_id = %d" % camID
     122
     123        try:
     124            rs = self.stmt.executeQuery(sql)
     125            rs.first()
     126        except:
     127            self.logger.exception("Can't query for camera smfs")
     128
     129        # get path to base dir of cmf files
     130        path = rs.getString(1)
     131        path = path[0:path.rfind("/")]
     132       
     133        # list all cmf files if a neb path
     134        files = []
     135        if path.startswith("neb"):
     136
     137            f=os.popen("neb-ls -p "+path+"/%smf")
     138            print "neb-ls -p "+path+"/%smf"
     139            for i in f.readlines():
     140                files.append(i.rstrip())
     141
     142        # or not a neb path
     143        else:
     144            files = glob.glob(path + "/*.cmf")
     145
     146        return files[0] # TODO just returning first file - check
    108147
    109148
Note: See TracChangeset for help on using the changeset viewer.