- Timestamp:
- Jul 29, 2014, 9:52:00 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20140717/ippToPsps/jython/ipptopspsdb.py
r37129 r37133 1136 1136 1137 1137 self.skychunk.batchTypes = [] 1138 try: 1139 # print "sql: " + sql 1140 rs = self.executeQuery(sql) 1141 1142 rs.first() 1143 self.skychunk.datastoreProduct = rs.getString(1) 1144 self.skychunk.datastoreType = rs.getString(2) 1145 if rs.getInt(3) == 1: self.skychunk.datastorePublishing = True 1146 else: self.skychunk.datastorePublishing = False 1147 self.skychunk.dvoLabel = rs.getString(4) 1148 1149 # if dvoLabel is null is can break queries, so set to something 1150 if not self.skychunk.dvoLabel: self.skychunk.dvoLabel = "none" 1151 self.skychunk.dvoLocation = rs.getString(5) 1152 self.skychunk.minRa = rs.getDouble(6) 1153 self.skychunk.maxRa = rs.getDouble(7) 1154 self.skychunk.minDec = rs.getDouble(8) 1155 self.skychunk.maxDec = rs.getDouble(9) 1156 1157 self.skychunk.boxSize = rs.getDouble(10) 1158 # self.skychunk.halfBox = self.skychunk.boxSize/2.0 1159 # self.skychunk.boxSizeWithBorder = self.skychunk.boxSize + (self.skychunk.BORDER * 2) 1160 1161 self.skychunk.basePath = rs.getString(11) 1162 self.skychunk.dataRelease = rs.getInt(12) 1163 1164 self.skychunk.deleteLocal = rs.getInt(13) 1165 self.skychunk.deleteDatastore = rs.getInt(14) 1166 self.skychunk.deleteDxLayer = rs.getInt(15) 1167 1168 self.skychunk.epoch = rs.getString(16) 1169 1170 self.skychunk.survey = rs.getString(17) 1171 self.skychunk.pspsSurvey = rs.getString(18) 1172 1173 if rs.getInt(19) == 1: self.skychunk.batchTypes.append("P2") 1174 if rs.getInt(20) == 1: self.skychunk.batchTypes.append("ST") 1175 if rs.getInt(21) == 1: self.skychunk.batchTypes.append("OB") 1176 if rs.getInt(22) == 1: self.skychunk.batchTypes.append("DF") 1177 if rs.getInt(23) == 1: self.skychunk.batchTypes.append("DO") 1178 if rs.getInt(24) == 1: self.skychunk.batchTypes.append("FW") 1179 if rs.getInt(25) == 1: self.skychunk.batchTypes.append("FO") 1180 1181 self.skychunk.force = True # TODO 1182 self.skychunk.parallel = False # TODO 1183 1184 if rs.getInt(26) == 1: self.skychunk.parallel = True 1185 self.skychunk.P2_smf_version = rs.getString(27) 1186 # options: "use_new", "not_reproc", "use_original" 1187 1188 self.skychunk.ST_cmf_version = rs.getString(28) 1189 # options: not used? 1190 1191 # NOTE : the rs (ResultSet) class is somewhat annoying and finicky esp about timestamp values 1192 # for example, rs.getTimestamp(N) fails silently if the value is not a valid time. this is 1193 # also true to getString() on the same column. Docs for the ResultSet class can be found here: 1194 # http://docs.oracle.com/javase/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true 1195 1196 # rsmd = rs.getMetaData() 1197 # print "got metadata" 1198 # print "number of columns: " + str(rsmd.getColumnCount()) 1199 # print "label: " + rsmd.getColumnLabel(25) 1200 # print "label: " + rsmd.getColumnLabel(29) 1201 # print "name: " + rsmd.getColumnName(25) 1202 # print "name: " + rsmd.getColumnName(29) 1203 # print "typename: " + rsmd.getColumnTypeName(25) 1204 # print "typename: " + rsmd.getColumnTypeName(29) 1205 1206 # epochStamp = rs.getTimestamp(16) 1207 # print "epoch: " + epochStamp.toString() 1208 1209 # print "label: " + rsmd.getColumnLabel(16) 1210 # print "name: " + rsmd.getColumnName(16) 1211 # print "typename: " + rsmd.getColumnTypeName(16) 1212 1213 self.skychunk.trange_start = rs.getString(29) 1214 # options: "YYYY-MM-DD,HH:MM:SS" or "0000-00-00 00:00:00" 1215 1216 self.skychunk.trange_end = rs.getString(30) 1217 # options: "YYYY-MM-DD,HH:MM:SS" or "0000-00-00 00:00:00" 1218 1219 if self.skychunk.parallel: print "USING parallel" 1220 self.skychunk.isLoaded = True 1221 except: 1138 1139 try: 1140 rs = self.executeQuery("show tables") 1141 except: 1142 self.logger.errorPair("cannot even show tables?", "Boo hoo") 1143 sys.exit(1) 1144 1145 # while rs.next(): 1146 # print "table row" 1147 # print rs.getString(1) 1148 # 1149 # rs = self.executeQuery("select * from skychunk") 1150 # while rs.next(): 1151 # print "skychunk row" 1152 # print rs.getString(1) 1153 # 1154 # print "SQL (2): " + sql 1155 1156 try: 1157 rs = self.executeQuery(sql) 1158 1159 except: 1160 self.logger.errorPair("problem with sql query for skychunk", sql) 1161 sys.exit(1) 1162 1163 if not rs.next(): 1222 1164 self.logger.errorPair("Could not read skychunk with name", self.skychunk.name) 1223 1165 self.skychunk.isLoaded = False 1166 return False 1167 1168 self.skychunk.datastoreProduct = rs.getString(1) 1169 self.skychunk.datastoreType = rs.getString(2) 1170 if rs.getInt(3) == 1: self.skychunk.datastorePublishing = True 1171 else: self.skychunk.datastorePublishing = False 1172 self.skychunk.dvoLabel = rs.getString(4) 1173 1174 # if dvoLabel is null is can break queries, so set to something 1175 if not self.skychunk.dvoLabel: self.skychunk.dvoLabel = "none" 1176 self.skychunk.dvoLocation = rs.getString(5) 1177 self.skychunk.minRa = rs.getDouble(6) 1178 self.skychunk.maxRa = rs.getDouble(7) 1179 self.skychunk.minDec = rs.getDouble(8) 1180 self.skychunk.maxDec = rs.getDouble(9) 1181 1182 self.skychunk.boxSize = rs.getDouble(10) 1183 # self.skychunk.halfBox = self.skychunk.boxSize/2.0 1184 # self.skychunk.boxSizeWithBorder = self.skychunk.boxSize + (self.skychunk.BORDER * 2) 1185 1186 self.skychunk.basePath = rs.getString(11) 1187 self.skychunk.dataRelease = rs.getInt(12) 1188 1189 self.skychunk.deleteLocal = rs.getInt(13) 1190 self.skychunk.deleteDatastore = rs.getInt(14) 1191 self.skychunk.deleteDxLayer = rs.getInt(15) 1192 1193 self.skychunk.epoch = rs.getString(16) 1194 1195 self.skychunk.survey = rs.getString(17) 1196 self.skychunk.pspsSurvey = rs.getString(18) 1197 1198 if rs.getInt(19) == 1: self.skychunk.batchTypes.append("P2") 1199 if rs.getInt(20) == 1: self.skychunk.batchTypes.append("ST") 1200 if rs.getInt(21) == 1: self.skychunk.batchTypes.append("OB") 1201 if rs.getInt(22) == 1: self.skychunk.batchTypes.append("DF") 1202 if rs.getInt(23) == 1: self.skychunk.batchTypes.append("DO") 1203 if rs.getInt(24) == 1: self.skychunk.batchTypes.append("FW") 1204 if rs.getInt(25) == 1: self.skychunk.batchTypes.append("FO") 1205 1206 self.skychunk.force = True # TODO 1207 self.skychunk.parallel = False # TODO 1208 1209 if rs.getInt(26) == 1: self.skychunk.parallel = True 1210 self.skychunk.P2_smf_version = rs.getString(27) 1211 # options: "use_new", "not_reproc", "use_original" 1212 1213 self.skychunk.ST_cmf_version = rs.getString(28) 1214 # options: not used? 1215 1216 # NOTE : the rs (ResultSet) class is somewhat annoying and finicky esp about timestamp values 1217 # for example, rs.getTimestamp(N) fails silently if the value is not a valid time. this is 1218 # also true to getString() on the same column. Docs for the ResultSet class can be found here: 1219 # http://docs.oracle.com/javase/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true 1220 1221 # rsmd = rs.getMetaData() 1222 # print "got metadata" 1223 # print "number of columns: " + str(rsmd.getColumnCount()) 1224 # print "label: " + rsmd.getColumnLabel(25) 1225 # print "label: " + rsmd.getColumnLabel(29) 1226 # print "name: " + rsmd.getColumnName(25) 1227 # print "name: " + rsmd.getColumnName(29) 1228 # print "typename: " + rsmd.getColumnTypeName(25) 1229 # print "typename: " + rsmd.getColumnTypeName(29) 1230 1231 # epochStamp = rs.getTimestamp(16) 1232 # print "epoch: " + epochStamp.toString() 1233 1234 # print "label: " + rsmd.getColumnLabel(16) 1235 # print "name: " + rsmd.getColumnName(16) 1236 # print "typename: " + rsmd.getColumnTypeName(16) 1237 1238 self.skychunk.trange_start = rs.getString(29) 1239 # options: "YYYY-MM-DD,HH:MM:SS" or "0000-00-00 00:00:00" 1240 1241 self.skychunk.trange_end = rs.getString(30) 1242 # options: "YYYY-MM-DD,HH:MM:SS" or "0000-00-00 00:00:00" 1243 1244 if self.skychunk.parallel: print "USING parallel" 1245 self.skychunk.isLoaded = True 1224 1246 1225 1247 return self.skychunk.isLoaded … … 1387 1409 # XXX print "sql: ", sql 1388 1410 1389 try: 1390 rs = self.executeQuery(sql) 1391 rs.first() 1392 raCenter = rs.getFloat(1) 1393 rs.close() 1394 except: 1395 self.logger.errorPair("No free stripes", "trying to steal boxes from other client...") 1396 sql = "SELECT ra_center, COUNT(*) AS numPending\ 1397 FROM box \ 1398 JOIN pending ON (id = box_id) \ 1399 WHERE skychunk = '" + self.skychunk.name + "' \ 1400 AND batch_type = '" + batchType + "' \ 1401 GROUP BY ra_center \ 1402 ORDER BY numPending \ 1403 DESC LIMIT 1" 1404 1405 try: 1406 rs = self.executeQuery(sql) 1407 rs.first() 1408 raCenter = rs.getFloat(1) 1409 rs.close() 1410 except: 1411 self.logger.errorPair("No outstanding boxes to steal", "no stripe obtained") 1411 try: rs = self.executeQuery(sql) 1412 except: 1413 self.logger.errorPair("Problem querying for outstanding boxes", "error in sql?") 1414 print "SQL: " + sql 1415 1416 print "SQL: " + sql 1417 if not rs.next(): 1418 self.logger.errorPair("No outstanding boxes", "nothing to do here") 1419 rs.close() 1420 self.unlockTables() 1421 return ids 1422 1423 raCenter = rs.getFloat(1) 1424 rs.close() 1425 1426 #except: 1427 # self.logger.errorPair("No free stripes", "trying to steal boxes from other client...") 1428 # sql = "SELECT ra_center, COUNT(*) AS numPending\ 1429 # FROM box \ 1430 # JOIN pending ON (id = box_id) \ 1431 # WHERE skychunk = '" + self.skychunk.name + "' \ 1432 # AND batch_type = '" + batchType + "' \ 1433 # GROUP BY ra_center \ 1434 # ORDER BY numPending \ 1435 # DESC LIMIT 1" 1436 # 1437 # try: 1438 # rs = self.executeQuery(sql) 1439 # rs.first() 1440 # raCenter = rs.getFloat(1) 1441 # rs.close() 1442 # except: 1443 # self.logger.errorPair("No outstanding boxes to steal", "no stripe obtained") 1412 1444 1413 1445 # tests against ra_center need to use a finite box … … 1458 1490 GROUP BY ra_center LIMIT 1" 1459 1491 1460 try: 1461 rs = self.executeQuery(sql) 1462 rs.first() 1463 raCenter = rs.getFloat(1) 1464 rs.close() 1465 except: 1466 self.logger.errorPair("No free stripes", "trying to steal boxes from other client...") 1467 sql = "SELECT ra_center, COUNT(*) AS numPending\ 1468 FROM box \ 1469 JOIN pending ON (id = box_id) \ 1470 WHERE skychunk = '" + self.skychunk.name + "' \ 1471 GROUP BY ra_center \ 1472 ORDER BY numPending \ 1473 DESC LIMIT 1" 1474 1475 try: 1476 rs = self.executeQuery(sql) 1477 rs.first() 1478 raCenter = rs.getFloat(1) 1479 rs.close() 1480 except: 1481 self.logger.errorPair("No outstanding boxes to steal", "no stripe obtained") 1492 try: rs = self.executeQuery(sql) 1493 except: 1494 self.logger.errorPair("Problem querying for outstanding boxes", "error in sql?") 1495 print "SQL: " + sql 1496 1497 print "SQL: " + sql 1498 if not rs.next(): 1499 self.logger.infoPair("No outstanding boxes", "nothing to do here") 1500 rs.close() 1501 self.unlockTables() 1502 return ids 1503 1504 raCenter = rs.getFloat(1) 1505 rs.close() 1506 1507 # except: 1508 # self.logger.errorPair("No free stripes", "trying to steal boxes from other client...") 1509 # sql = "SELECT ra_center, COUNT(*) AS numPending\ 1510 # FROM box \ 1511 # JOIN pending ON (id = box_id) \ 1512 # WHERE skychunk = '" + self.skychunk.name + "' \ 1513 # GROUP BY ra_center \ 1514 # ORDER BY numPending \ 1515 # DESC LIMIT 1" 1516 # 1517 # try: 1518 # rs = self.executeQuery(sql) 1519 # rs.first() 1520 # raCenter = rs.getFloat(1) 1521 # rs.close() 1522 # except: 1523 # self.logger.errorPair("No outstanding boxes to steal", "no stripe obtained") 1482 1524 1483 1525 # tests against ra_center need to use a finite box
Note:
See TracChangeset
for help on using the changeset viewer.
