IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Feb 17, 2010, 4:40:03 PM (16 years ago)
Author:
Paul Price
Message:

Reworked all ippTools to put fault=2 (SYS_ERROR) when can't find SQL file (presumably due to NFS problems). Removed DATA_ERROR because ippTools don't work on data (astronomical images or catalogues). This should allow us to turn on revert for fault=2 only.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/src/dqstatstool.c

    r26378 r26981  
    7171  PXOPT_LOOKUP_BOOL(force,      config->args, "-force", false);
    7272  PXOPT_LOOKUP_U64(limit,       config->args, "-limit", false, 0);
    73  
     73
    7474  // properties of the raw exposures
    7575  psMetadata *where = psMetadataAlloc();
     
    7979  psString query = pxDataGet("dqstatstool_definebyquery.sql");
    8080  if (!query) {
    81     psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     81    psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    8282    psFree(where);
    8383    return(false);
     
    9696    psStringAppend(&query, " OR invalid = 0");
    9797  }
    98  
     98
    9999  psFree(where);
    100100  if (limit) {
     
    103103    psFree(limitString);
    104104  }
    105    
     105
    106106  if (!p_psDBRunQuery(config->dbh, query)) {
    107107    psError(PS_ERR_UNKNOWN, false, "database error");
     
    140140    return false;
    141141  }
    142  
     142
    143143  // Create the run entry and grab the dqstats_id
    144144  dqstatsRunRow *run = dqstatsRunRowAlloc(
    145                                           0,        // ID
    146                                           "new",    // state
    147                                           registered,
    148                                           set_label,
    149                                           0         // fault
    150                                           );
    151  
     145                                          0,        // ID
     146                                          "new",    // state
     147                                          registered,
     148                                          set_label,
     149                                          0         // fault
     150                                          );
     151
    152152  if (!dqstatsRunInsertObject(config->dbh, run)) {
    153153    if (!psDBRollback(config->dbh)) {
     
    182182
    183183    if (!dqstatsContentInsert(config->dbh,
    184                               dqstats_id,
    185                               exp_id,
    186                               chip_id,
    187                               cam_id,
    188                               warp_id,
    189                               0 // do not create automatically invalid contents
    190                               )) {
     184                              dqstats_id,
     185                              exp_id,
     186                              chip_id,
     187                              cam_id,
     188                              warp_id,
     189                              0 // do not create automatically invalid contents
     190                              )) {
    191191      psError(PS_ERR_UNKNOWN, false, "database error");
    192192      psFree(output);
    193193      if (!psDBRollback(config->dbh)) {
    194         psError(PS_ERR_UNKNOWN, false, "database error");
     194        psError(PS_ERR_UNKNOWN, false, "database error");
    195195      }
    196196      return(false);
     
    210210static bool pendingbundleMode(pxConfig *config) {
    211211  PS_ASSERT_PTR_NON_NULL(config,false);
    212  
     212
    213213  PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
    214214  PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
    215  
    216  
     215
     216
    217217  psMetadata *where = psMetadataAlloc();
    218   //  pxdqstatsGetSearchArgs (config, where); 
     218  //  pxdqstatsGetSearchArgs (config, where);
    219219  PXOPT_COPY_S64(config->args, where, "-dqstats_id", "dqstatsRun.dqstats_id", "==");
    220220  PXOPT_COPY_STR(config->args, where, "-label", "dqstatsRun.label", "==");
    221  
     221
    222222  psString query = pxDataGet("dqstatstool_get_run.sql");           // query
    223223  if (!query) {
    224     psError(PXTOOLS_ERR_DATA, false, "Failed to retrieve sql statement (dqstatstool_get_run.sql)");
     224    psError(PXTOOLS_ERR_SYS, false, "Failed to retrieve sql statement (dqstatstool_get_run.sql)");
    225225    return(false);
    226226  }
     
    239239    psFree(limitString);
    240240  }
    241  
     241
    242242  if (!p_psDBRunQuery(config->dbh, query)) {
    243243    psError(PS_ERR_UNKNOWN, false, "database error");
     
    246246  }
    247247  psFree(query);                                                  // where whereClause
    248  
     248
    249249  psArray *output = p_psDBFetchResult(config->dbh);               // where whereClause output
    250250  if (!output) {
     
    284284  psString runQuery = pxDataGet("dqstatstool_get_run.sql");
    285285  if (!runQuery) {
    286     psError(PXTOOLS_ERR_DATA, false, "Failed to retrieve sql statement (dqstatstool_get_run.sql)");
     286    psError(PXTOOLS_ERR_SYS, false, "Failed to retrieve sql statement (dqstatstool_get_run.sql)");
    287287    return(false);
    288288  }
     
    292292  psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);  // Save for content query
    293293  psStringAppend(&runQuery, " AND %s", whereClause);
    294   psFree(where); 
     294  psFree(where);
    295295
    296296  if (!p_psDBRunQuery(config->dbh, runQuery)) {
     
    301301  }
    302302  psFree(runQuery);
    303  
     303
    304304  psArray *output = p_psDBFetchResult(config->dbh);
    305305  if (!output) {
     
    333333    return(false);
    334334  }
    335  
     335
    336336  psMetadataIterator *iter = psMetadataIteratorAlloc(columns, PS_LIST_HEAD,NULL);
    337337
     
    348348      psStringAppend(&columnlist, ", ");
    349349    }
    350    
     350
    351351    psStringAppend(&columnlist, "%s.%s",
    352                    psMetadataLookupStr(&status,coldef,"TABLE"),
    353                    psMetadataLookupStr(&status,coldef,"ENTRY"));
     352                   psMetadataLookupStr(&status,coldef,"TABLE"),
     353                   psMetadataLookupStr(&status,coldef,"ENTRY"));
    354354
    355355    psMetadataAddStr(colNames,PS_LIST_TAIL,
    356                      psMetadataLookupStr(&status,coldef,"ENTRY"),0,"",
    357                      psMetadataLookupStr(&status,coldef,"COLNAME"));
     356                     psMetadataLookupStr(&status,coldef,"ENTRY"),0,"",
     357                     psMetadataLookupStr(&status,coldef,"COLNAME"));
    358358    psMetadataAddStr(colTypes,PS_LIST_TAIL,
    359                      psMetadataLookupStr(&status,coldef,"ENTRY"),0,"",
    360                      psMetadataLookupStr(&status,coldef,"DATATYPE"));
     359                     psMetadataLookupStr(&status,coldef,"ENTRY"),0,"",
     360                     psMetadataLookupStr(&status,coldef,"DATATYPE"));
    361361  }
    362362  psFree(iter);
    363  
     363
    364364  if (!columnlist) {
    365365    psError(PS_ERR_UNKNOWN, false, "Failed to find a columnlist");
     
    369369    return(false);
    370370  }
    371  
     371
    372372  // Find the contents that comprise this run
    373373  psString contentQuery = pxDataGet("dqstatstool_get_contents.sql");
    374374  if (!contentQuery) {
    375     psError(PXTOOLS_ERR_DATA, false, "Failed to retrieve sql statement (dqstatstool_get_contents.sql)");
     375    psError(PXTOOLS_ERR_SYS, false, "Failed to retrieve sql statement (dqstatstool_get_contents.sql)");
    376376    psFree(whereClause);
    377377    psFree(colNames);
     
    414414  psString query = pxDataGet("dqstatstool_createbundle.sql");
    415415  if (!query) {
    416     psError(PXTOOLS_ERR_DATA, false, "Failed to retrieve sql statement");
     416    psError(PXTOOLS_ERR_SYS, false, "Failed to retrieve sql statement");
    417417    psFree(colNames);
    418418    psFree(colTypes);
     
    448448      psMetadataAddS64(where,PS_LIST_TAIL, "warpRun.warp_id", 0, "==", psMetadataLookupS64(&status,row,"warp_id"));
    449449    }
    450    
     450
    451451    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
    452     psStringAppend(&MYquery, " WHERE %s", whereClause);   
     452    psStringAppend(&MYquery, " WHERE %s", whereClause);
    453453    psFree(whereClause);
    454454    psFree(where);
     
    466466    }
    467467    psFree(MYquery);
    468    
     468
    469469    psArray *statsoutput = p_psDBFetchResult(config->dbh);
    470470    if (!statsoutput) {
     
    501501      psString colType = psMetadataLookupStr(&status,colTypes,rowItem->name);
    502502      if (!colType) {
    503         psError(PS_ERR_UNKNOWN,false, "Could not find type for %s",rowItem->name);
    504         return(false);
     503        psError(PS_ERR_UNKNOWN,false, "Could not find type for %s",rowItem->name);
     504        return(false);
    505505      }
    506506      psString colName = psMetadataLookupStr(&status,colNames,rowItem->name);
    507507      if (!colName) {
    508         psError(PS_ERR_UNKNOWN,false, "Could not find name for %s",rowItem->name);
    509         return(false);
     508        psError(PS_ERR_UNKNOWN,false, "Could not find name for %s",rowItem->name);
     509        return(false);
    510510      }
    511511
    512512      if (!strcmp(colType,"PS_DATA_BOOL")) {
    513         success = psMetadataAddBool(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.B);
     513        success = psMetadataAddBool(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.B);
    514514      }
    515515      else if (!strcmp(colType,"PS_DATA_S8")) {
    516         success = psMetadataAddS8(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S8);
     516        success = psMetadataAddS8(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S8);
    517517      }
    518518      else if (!strcmp(colType,"PS_DATA_S16")) {
    519         success = psMetadataAddS16(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S16);
     519        success = psMetadataAddS16(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S16);
    520520      }
    521521      else if (!strcmp(colType,"PS_DATA_S32")) {
    522         success = psMetadataAddS32(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S32);
     522        success = psMetadataAddS32(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S32);
    523523      }
    524524      else if (!strcmp(colType,"PS_DATA_S64")) {
    525         success = psMetadataAddS64(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S64);
     525        success = psMetadataAddS64(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S64);
    526526      }
    527527      else if (!strcmp(colType,"PS_DATA_U8")) {
    528         success = psMetadataAddU8(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U8);
     528        success = psMetadataAddU8(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U8);
    529529      }
    530530      else if (!strcmp(colType,"PS_DATA_U16")) {
    531         success = psMetadataAddU16(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U16);
     531        success = psMetadataAddU16(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U16);
    532532      }
    533533      else if (!strcmp(colType,"PS_DATA_U32")) {
    534         success = psMetadataAddU32(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U32);
     534        success = psMetadataAddU32(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U32);
    535535      }
    536536      else if (!strcmp(colType,"PS_DATA_U64")) {
    537         success = psMetadataAddU64(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U64);
     537        success = psMetadataAddU64(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U64);
    538538      }
    539539      else if (!strcmp(colType,"PS_DATA_F32")) {
    540         success = psMetadataAddF32(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.F32);
     540        success = psMetadataAddF32(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.F32);
    541541      }
    542542      else if (!strcmp(colType,"PS_DATA_F64")) {
    543         success = psMetadataAddF64(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.F64);
     543        success = psMetadataAddF64(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.F64);
    544544      }
    545545      else if (!strcmp(colType,"PS_DATA_STRING")) {
    546         success = psMetadataAddStr(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.str);
    547       }
    548      
     546        success = psMetadataAddStr(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.str);
     547      }
     548
    549549      if (!success) {
    550         psError(PS_ERR_UNKNOWN,false, "Error constructing fits table row.");
    551         psFree(colNames);
    552         psFree(colTypes);
    553         psFree(contents);
    554         psFree(query);
    555         psFree(outTable);
    556         psFree(statsoutput);
    557         psFree(statIter);
    558         psFree(tableRow);
    559         psFree(colType);
    560         psFree(colName);
    561         return(false);
     550        psError(PS_ERR_UNKNOWN,false, "Error constructing fits table row.");
     551        psFree(colNames);
     552        psFree(colTypes);
     553        psFree(contents);
     554        psFree(query);
     555        psFree(outTable);
     556        psFree(statsoutput);
     557        psFree(statIter);
     558        psFree(tableRow);
     559        psFree(colType);
     560        psFree(colName);
     561        return(false);
    562562      }
    563563    }
     
    571571  psFree(query);
    572572  // Define the fits table here.
    573  
     573
    574574  psFits *Table = psFitsOpen(bundleUri,"w");
    575575  if (!Table) {
     
    577577    psFree(outTable);
    578578    return(false);
    579   } 
     579  }
    580580
    581581  psMetadata *header = psMetadataAlloc();
    582582  psMetadataAddS64(header, PS_LIST_TAIL, "DQSTATS_ID", 0, "ID number of DQSTATS run", dqstats_id);
    583  
     583
    584584  if (!psFitsWriteTable(Table,header,outTable,"DQSTATS")) {
    585585    psError(PS_ERR_UNKNOWN, false, "Unable to write table to fits file.");
     
    594594  // Tear down, cleanup.
    595595  psFitsClose(Table);
    596   return(true); 
     596  return(true);
    597597}
    598  
     598
    599599
    600600static bool updaterunMode(pxConfig *config) {
     
    603603  PXOPT_LOOKUP_STR(state,      config->args, "-set_state",      "state",                 "==");
    604604  PXOPT_LOOKUP_S16(fault,      config->args, "-fault",          "fault",                 "==");
    605  
     605
    606606  if (state && ! pxIsValidState(state)) {
    607     psError(PXTOOLS_ERR_DATA, false, "pxIsValidState failed");
    608     return(false);
    609   }
    610  
     607    psError(PXTOOLS_ERR_CONFIG, false, "pxIsValidState failed");
     608    return(false);
     609  }
     610
    611611  psMetadata *where = psMetadataAlloc();
    612612  PXOPT_COPY_S64(config->args, where, "-dqstats_id", "dqstats_id", "==");
    613613  PXOPT_COPY_S64(config->args, where, "-state", "state", "==");
    614  
     614
    615615  if (!psListLength(where->list)) {
    616616    psFree(where);
    617     psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
    618     return(false);
    619   }
    620  
     617    psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
     618    return(false);
     619  }
     620
    621621  psString query = psStringCopy("UPDATE dqstatsRun ");
    622622  psStringAppend(&query," SET state = '%s' ", state);
     
    626626  psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
    627627  psStringAppend(&query," WHERE %s ",whereClause);
    628  
     628
    629629  if (!p_psDBRunQuery(config->dbh, query)) {
    630630    psError(PS_ERR_UNKNOWN, false, "database error");
    631631    return(false);
    632632  }
    633  
     633
    634634  psFree(query);
    635635  psFree(where);
    636636  psFree(whereClause);
    637  
     637
    638638  return(true);
    639639}
     
    648648  if (!psListLength(where->list)) {
    649649    psFree(where);
    650     psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
     650    psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
    651651    return(false);
    652652  }
     
    667667  return(true);
    668668}
    669    
    670  
    671  
    672    
    673 
    674    
    675    
     669
     670
     671
     672
     673
     674
     675
Note: See TracChangeset for help on using the changeset viewer.