IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 25822 for trunk/ippTools/src


Ignore:
Timestamp:
Oct 9, 2009, 2:02:24 PM (17 years ago)
Author:
bills
Message:

code to clean up magicDSRuns

Location:
trunk/ippTools/src
Files:
9 edited

Legend:

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

    r25800 r25822  
    5757static bool exportrunMode(pxConfig *config);
    5858static bool importrunMode(pxConfig *config);
     59static bool runstateMode(pxConfig *config);
    5960
    6061# define MODECASE(caseName, func) \
     
    9798        MODECASE(CHIPTOOL_MODE_EXPORTRUN,               exportrunMode);
    9899        MODECASE(CHIPTOOL_MODE_IMPORTRUN,               importrunMode);
     100        MODECASE(CHIPTOOL_MODE_RUNSTATE,                runstateMode);
    99101        default:
    100102            psAbort("invalid option (this should not happen)");
     
    15081510    return true;
    15091511}
     1512
     1513static bool runstateMode(pxConfig *config)
     1514{
     1515    PS_ASSERT_PTR_NON_NULL(config, false);
     1516
     1517    psMetadata *where = psMetadataAlloc();
     1518    PXOPT_COPY_S64(config->args, where, "-chip_id",    "chipRun.chip_id", "==");
     1519    PXOPT_COPY_S64(config->args, where, "-exp_id",     "rawExp.exp_id", "==");
     1520    PXOPT_COPY_STR(config->args, where, "-exp_name",   "rawExp.exp_name", "==");
     1521    pxAddLabelSearchArgs (config, where, "-label",     "chipRun.label", "LIKE");
     1522
     1523//    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
     1524    PXOPT_LOOKUP_BOOL(no_magic, config->args, "-no_magic", false);
     1525
     1526    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     1527    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1528
     1529    psString query = pxDataGet("chiptool_runstate.sql");
     1530    if (!query) {
     1531        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1532        return false;
     1533    }
     1534
     1535    if (psListLength(where->list)) {
     1536        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1537        psStringAppend(&query, " WHERE %s", whereClause);
     1538        psFree(whereClause);
     1539    } else {
     1540        psError(PXTOOLS_ERR_DATA, true, "search parameters or -all are required");
     1541        return false;
     1542    }
     1543    psFree(where);
     1544
     1545    // treat limit == 0 as "no limit"
     1546    if (limit) {
     1547        psString limitString = psDBGenerateLimitSQL(limit);
     1548        psStringAppend(&query, " %s", limitString);
     1549        psFree(limitString);
     1550    }
     1551
     1552    if (!p_psDBRunQuery(config->dbh, query)) {
     1553        psError(PS_ERR_UNKNOWN, false, "database error");
     1554        psFree(query);
     1555        return false;
     1556    }
     1557    psFree(query);
     1558
     1559    psArray *output = p_psDBFetchResult(config->dbh);
     1560    if (!output) {
     1561        psErrorCode err = psErrorCodeLast();
     1562        switch (err) {
     1563            case PS_ERR_DB_CLIENT:
     1564                psError(PXTOOLS_ERR_SYS, false, "database error");
     1565            case PS_ERR_DB_SERVER:
     1566                psError(PXTOOLS_ERR_PROG, false, "database error");
     1567            default:
     1568                psError(PXTOOLS_ERR_PROG, false, "unknown error");
     1569        }
     1570
     1571        return false;
     1572    }
     1573    if (!psArrayLength(output)) {
     1574        psTrace("chiptool", PS_LOG_INFO, "no rows found");
     1575        psFree(output);
     1576        return true;
     1577    }
     1578
     1579    if (psArrayLength(output)) {
     1580        // negative simple so the default is true
     1581        if (!ippdbPrintMetadatas(stdout, output, "chipRunState", !simple)) {
     1582            psError(PS_ERR_UNKNOWN, false, "failed to print array");
     1583            psFree(output);
     1584            return false;
     1585        }
     1586    }
     1587
     1588    psFree(output);
     1589
     1590    return true;
     1591}
  • trunk/ippTools/src/chiptool.h

    r25324 r25822  
    4747    CHIPTOOL_MODE_TOSCRUBBEDIMFILE,
    4848    CHIPTOOL_MODE_EXPORTRUN,
    49     CHIPTOOL_MODE_IMPORTRUN
     49    CHIPTOOL_MODE_IMPORTRUN,
     50    CHIPTOOL_MODE_RUNSTATE
    5051} chiptoolMode;
    5152
  • trunk/ippTools/src/chiptoolConfig.c

    r25800 r25822  
    271271    psMetadataAddStr(importrunArgs, PS_LIST_TAIL, "-infile",  0,          "import from this file (required)", NULL);
    272272
     273    // -runstate
     274    psMetadata *runstateArgs = psMetadataAlloc();
     275    psMetadataAddS64(runstateArgs, PS_LIST_TAIL, "-chip_id", 0,           "search by chip ID", 0);
     276    psMetadataAddS64(runstateArgs, PS_LIST_TAIL, "-exp_id", 0,            "search by exposure tag", 0);
     277    psMetadataAddStr(runstateArgs, PS_LIST_TAIL, "-exp_name", 0,          "search by exposure tag", 0);
     278    psMetadataAddStr(runstateArgs, PS_LIST_TAIL,  "-label",  PS_META_DUPLICATE_OK, "search by warpRun label", NULL);
     279    psMetadataAddBool(runstateArgs, PS_LIST_TAIL, "-no_magic",  0,        "magic is not necessary for result", false);
     280
     281    psMetadataAddU64(runstateArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
     282    psMetadataAddBool(runstateArgs, PS_LIST_TAIL, "-simple",  0,          "use the simple output format", false);
     283
    273284    psMetadata *argSets = psMetadataAlloc();
    274285    psMetadata *modes = psMetadataAlloc();
     
    281292    PXOPT_ADD_MODE("-updateprocessedimfile","change procesed imfile properties",    CHIPTOOL_MODE_UPDATEPROCESSEDIMFILE,updateprocessedimfileArgs);
    282293    PXOPT_ADD_MODE("-revertprocessedimfile","undo a processed imfile",              CHIPTOOL_MODE_REVERTPROCESSEDIMFILE,revertprocessedimfileArgs);
     294    PXOPT_ADD_MODE("-runstate",             "list the states of chip run",          CHIPTOOL_MODE_RUNSTATE,             runstateArgs);
    283295    PXOPT_ADD_MODE("-advanceexp",           "advance completed exposures",          CHIPTOOL_MODE_ADVANCEEXP,           advanceexpArgs);
    284296    PXOPT_ADD_MODE("-block",                "set a label block",                    CHIPTOOL_MODE_BLOCK,                blockArgs);
  • trunk/ippTools/src/magicdstool.c

    r25792 r25822  
    4343static bool torevertMode(pxConfig *config);
    4444static bool completedrevertMode(pxConfig *config);
     45static bool tocleanupMode(pxConfig *config);
    4546
    4647static bool setmagicDSRunState(pxConfig *config, psS64 magic_id, psMetadata *where, const char *state);
     
    7677        MODECASE(MAGICDSTOOL_MODE_TOREVERT,            torevertMode);
    7778        MODECASE(MAGICDSTOOL_MODE_COMPLETEDREVERT,     completedrevertMode);
     79        MODECASE(MAGICDSTOOL_MODE_TOCLEANUP,           tocleanupMode);
    7880        default:
    7981            psAbort("invalid option (this should not happen)");
     
    12211223
    12221224
     1225static bool tocleanupMode(pxConfig *config)
     1226{
     1227    PS_ASSERT_PTR_NON_NULL(config, false);
     1228
     1229    psMetadata *where = psMetadataAlloc();
     1230
     1231    PXOPT_COPY_S64(config->args, where, "-stage", "stage", "==");
     1232    PXOPT_COPY_S64(config->args, where, "-magic_ds_id", "magic_ds_id", "==");
     1233    PXOPT_COPY_S64(config->args, where, "-magic_id", "magic_id", "==");
     1234    pxAddLabelSearchArgs (config, where, "-label", "magicDSRun.label", "==");
     1235
     1236    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     1237    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1238
     1239    psString query = pxDataGet("magicdstool_tocleanup.sql");
     1240    if (!query) {
     1241        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1242        return false;
     1243    }
     1244
     1245    if (psListLength(where->list)) {
     1246        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1247        psStringAppend(&query, " AND %s", whereClause);
     1248        psFree(whereClause);
     1249    }
     1250    psFree(where);
     1251
     1252    // treat limit == 0 as "no limit"
     1253    if (limit) {
     1254        psString limitString = psDBGenerateLimitSQL(limit);
     1255        psStringAppend(&query, " %s", limitString);
     1256        psFree(limitString);
     1257    }
     1258
     1259    if (!p_psDBRunQuery(config->dbh, query)) {
     1260        psError(PS_ERR_UNKNOWN, false, "database error");
     1261        psFree(query);
     1262        return false;
     1263    }
     1264    psFree(query);
     1265
     1266    psArray *output = p_psDBFetchResult(config->dbh);
     1267    if (!output) {
     1268        psErrorCode err = psErrorCodeLast();
     1269        switch (err) {
     1270            case PS_ERR_DB_CLIENT:
     1271                psError(PXTOOLS_ERR_SYS, false, "database error");
     1272            case PS_ERR_DB_SERVER:
     1273                psError(PXTOOLS_ERR_PROG, false, "database error");
     1274            default:
     1275                psError(PXTOOLS_ERR_PROG, false, "unknown error");
     1276        }
     1277
     1278        return false;
     1279    }
     1280    if (!psArrayLength(output)) {
     1281        psTrace("magicdstool", PS_LOG_INFO, "no rows found");
     1282        psFree(output);
     1283        return true;
     1284    }
     1285
     1286    if (psArrayLength(output)) {
     1287        // negative simple so the default is true
     1288        if (!ippdbPrintMetadatas(stdout, output, "tocleanup", !simple)) {
     1289            psError(PS_ERR_UNKNOWN, false, "failed to print array");
     1290            psFree(output);
     1291            return false;
     1292        }
     1293    }
     1294
     1295    psFree(output);
     1296
     1297    return true;
     1298}
  • trunk/ippTools/src/magicdstool.h

    r25465 r25822  
    3636    MAGICDSTOOL_MODE_TOREVERT,
    3737    MAGICDSTOOL_MODE_COMPLETEDREVERT,
     38    MAGICDSTOOL_MODE_TOCLEANUP,
    3839} MAGICDStoolMode;
    3940
  • trunk/ippTools/src/magicdstoolConfig.c

    r25792 r25822  
    157157    psMetadataAddU64(advancerunArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0);
    158158
     159    // -tocleanup
     160    psMetadata *tocleanupArgs = psMetadataAlloc();
     161    psMetadataAddS64(tocleanupArgs, PS_LIST_TAIL, "-magic_ds_id", 0, "search by magic Destreak ID", 0);
     162    psMetadataAddS64(tocleanupArgs, PS_LIST_TAIL, "-magic_id", 0, "search by magic ID", 0);
     163    psMetadataAddStr(tocleanupArgs, PS_LIST_TAIL, "-stage", 0, "define output directory", NULL);
     164    psMetadataAddStr(tocleanupArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "define label", NULL);
     165    psMetadataAddU64(tocleanupArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0);
     166    psMetadataAddBool(tocleanupArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false);
    159167    psFree(now);
    160168
     
    185193    PXOPT_ADD_MODE("-completedrevert", "change state for runs that have finished reverting",
    186194                    MAGICDSTOOL_MODE_COMPLETEDREVERT, completedrevertArgs);
     195    PXOPT_ADD_MODE("-tocleanup", "destreak runs to clean up",
     196                    MAGICDSTOOL_MODE_TOCLEANUP, tocleanupArgs);
    187197
    188198
  • trunk/ippTools/src/warptool.c

    r25800 r25822  
    5858static bool exportrunMode(pxConfig *config);
    5959static bool importrunMode(pxConfig *config);
     60static bool runstateMode(pxConfig *config);
    6061
    6162static bool parseAndInsertSkyCellMap(pxConfig *config, const char *mapfile);
     
    108109        MODECASE(WARPTOOL_MODE_EXPORTRUN,          exportrunMode);
    109110        MODECASE(WARPTOOL_MODE_IMPORTRUN,          importrunMode);
     111        MODECASE(WARPTOOL_MODE_RUNSTATE,           runstateMode);
    110112
    111113        default:
     
    19151917  return true;
    19161918}
     1919
     1920static bool runstateMode(pxConfig *config)
     1921{
     1922    PS_ASSERT_PTR_NON_NULL(config, false);
     1923
     1924    psMetadata *where = psMetadataAlloc();
     1925    PXOPT_COPY_S64(config->args, where, "-warp_id",    "warpRun.warp_id", "==");
     1926    PXOPT_COPY_S64(config->args, where, "-exp_id",     "rawExp.exp_id", "==");
     1927    PXOPT_COPY_STR(config->args, where, "-exp_name",   "rawExp.exp_name", "==");
     1928    pxAddLabelSearchArgs (config, where, "-label",     "warpRun.label", "LIKE");
     1929
     1930//    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
     1931    PXOPT_LOOKUP_BOOL(no_magic, config->args, "-no_magic", false);
     1932
     1933    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     1934    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1935
     1936    psString query = pxDataGet("warptool_runstate.sql");
     1937    if (!query) {
     1938        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1939        return false;
     1940    }
     1941
     1942    if (psListLength(where->list)) {
     1943        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1944        psStringAppend(&query, " WHERE %s", whereClause);
     1945        psFree(whereClause);
     1946    } else {
     1947        psError(PXTOOLS_ERR_DATA, true, "search parameters or -all are required");
     1948        return false;
     1949    }
     1950    psFree(where);
     1951
     1952    // treat limit == 0 as "no limit"
     1953    if (limit) {
     1954        psString limitString = psDBGenerateLimitSQL(limit);
     1955        psStringAppend(&query, " %s", limitString);
     1956        psFree(limitString);
     1957    }
     1958
     1959    if (!p_psDBRunQuery(config->dbh, query)) {
     1960        psError(PS_ERR_UNKNOWN, false, "database error");
     1961        psFree(query);
     1962        return false;
     1963    }
     1964    psFree(query);
     1965
     1966    psArray *output = p_psDBFetchResult(config->dbh);
     1967    if (!output) {
     1968        psErrorCode err = psErrorCodeLast();
     1969        switch (err) {
     1970            case PS_ERR_DB_CLIENT:
     1971                psError(PXTOOLS_ERR_SYS, false, "database error");
     1972            case PS_ERR_DB_SERVER:
     1973                psError(PXTOOLS_ERR_PROG, false, "database error");
     1974            default:
     1975                psError(PXTOOLS_ERR_PROG, false, "unknown error");
     1976        }
     1977
     1978        return false;
     1979    }
     1980    if (!psArrayLength(output)) {
     1981        psTrace("warptool", PS_LOG_INFO, "no rows found");
     1982        psFree(output);
     1983        return true;
     1984    }
     1985
     1986    if (psArrayLength(output)) {
     1987        // negative simple so the default is true
     1988        if (!ippdbPrintMetadatas(stdout, output, "warpRunState", !simple)) {
     1989            psError(PS_ERR_UNKNOWN, false, "failed to print array");
     1990            psFree(output);
     1991            return false;
     1992        }
     1993    }
     1994
     1995    psFree(output);
     1996
     1997    return true;
     1998}
  • trunk/ippTools/src/warptool.h

    r25324 r25822  
    5353    WARPTOOL_MODE_UPDATESKYFILE,
    5454    WARPTOOL_MODE_EXPORTRUN,
    55     WARPTOOL_MODE_IMPORTRUN
     55    WARPTOOL_MODE_IMPORTRUN,
     56    WARPTOOL_MODE_RUNSTATE,
    5657} warptoolMode;
    5758
  • trunk/ippTools/src/warptoolConfig.c

    r25800 r25822  
    318318    psMetadataAddStr(importrunArgs, PS_LIST_TAIL, "-infile",  0,          "import from this file (required)", NULL);
    319319
     320    // -runstate
     321    psMetadata *runstateArgs = psMetadataAlloc();
     322    psMetadataAddS64(runstateArgs, PS_LIST_TAIL, "-warp_id", 0,           "search by warptool ID", 0);
     323//    psMetadataAddStr(runstateArgs, PS_LIST_TAIL, "-tess_id",  0,          "search by tessellation ID", NULL);
     324    psMetadataAddS64(runstateArgs, PS_LIST_TAIL, "-exp_id", 0,            "search by exposure tag", 0);
     325    psMetadataAddStr(runstateArgs, PS_LIST_TAIL, "-exp_name", 0,          "search by exposure tag", 0);
     326    psMetadataAddStr(runstateArgs, PS_LIST_TAIL,  "-label",  PS_META_DUPLICATE_OK, "search by warpRun label", NULL);
     327    psMetadataAddBool(runstateArgs, PS_LIST_TAIL, "-no_magic",  0,        "magic is not necessary for result", false);
     328
     329    psMetadataAddU64(runstateArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
     330    psMetadataAddBool(runstateArgs, PS_LIST_TAIL, "-simple",  0,          "use the simple output format", false);
     331
    320332
    321333    psFree(now);
     
    336348    PXOPT_ADD_MODE("-advancerun",      "", WARPTOOL_MODE_ADVANCERUN,     advancerunArgs);
    337349    PXOPT_ADD_MODE("-warped",          "", WARPTOOL_MODE_WARPED,         warpedArgs);
     350    PXOPT_ADD_MODE("-runstate",        "", WARPTOOL_MODE_RUNSTATE,       runstateArgs);
    338351    PXOPT_ADD_MODE("-revertwarped",    "", WARPTOOL_MODE_REVERTWARPED,   revertwarpedArgs);
    339352    PXOPT_ADD_MODE("-block",                 "set a label block",                    WARPTOOL_MODE_BLOCK,          blockArgs);
Note: See TracChangeset for help on using the changeset viewer.