IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 26960


Ignore:
Timestamp:
Feb 16, 2010, 2:52:29 PM (16 years ago)
Author:
bills
Message:

added magicdtool -clearstatefaults
Example usage:

magicdstool -clearstatefaults -state failed_revert
magicdstool -clearstatefaults -state failed_cleanup
magicdstool -clearstatefaults -state failed_revert -set_state goto_cleaned

Location:
trunk/ippTools/src
Files:
3 edited

Legend:

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

    r26942 r26960  
    3939static bool advancerunMode(pxConfig *config);
    4040static bool revertdestreakedfileMode(pxConfig *config);
     41static bool clearstatefaultsMode(pxConfig *config);
    4142static bool getskycellsMode(pxConfig *config);
    4243static bool toremoveMode(pxConfig *config);
     
    7273        MODECASE(MAGICDSTOOL_MODE_ADVANCERUN,          advancerunMode);
    7374        MODECASE(MAGICDSTOOL_MODE_REVERTDESTREAKEDFILE,revertdestreakedfileMode);
     75        MODECASE(MAGICDSTOOL_MODE_CLEARSTATEFAULTS,    clearstatefaultsMode);
    7476        MODECASE(MAGICDSTOOL_MODE_GETSKYCELLS,         getskycellsMode);
    7577        MODECASE(MAGICDSTOOL_MODE_TOREMOVE,            toremoveMode);
     
    996998    return true;
    997999}
     1000static bool clearstatefaultsMode(pxConfig *config)
     1001{
     1002    PS_ASSERT_PTR_NON_NULL(config, false);
     1003
     1004    psMetadata *where = psMetadataAlloc();
     1005    // new state
     1006    PXOPT_LOOKUP_STR(new_state, config->args, "-set_state", false, false);
     1007    // old state (required)
     1008    PXOPT_LOOKUP_STR(state, config->args, "-state", true, false);
     1009
     1010    PXOPT_COPY_STR(config->args, where, "-state", "state", "==");
     1011    PXOPT_COPY_S64(config->args, where, "-magic_ds_id", "magicDSRun.magic_ds_id", "==");
     1012    PXOPT_COPY_S16(config->args, where, "-fault", "fault", "==");
     1013    pxAddLabelSearchArgs (config, where, "-label", "label", "==");
     1014
     1015    psString query = pxDataGet("magicdstool_clearstatefaults.sql");
     1016
     1017    if (psListLength(where->list)) {
     1018        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1019        psStringAppend(&query, " WHERE %s", whereClause);
     1020        psFree(whereClause);
     1021    } else {
     1022        psError(PS_ERR_UNKNOWN, true, "search arguments are required");
     1023        return false;
     1024    }
     1025    psFree(where);
     1026
     1027    if (!new_state) {
     1028        if (!strcmp(state, "failed_revert")) {
     1029            new_state = "new";
     1030        } else if (!strcmp(state, "failed_cleanup")) {
     1031            new_state = "goto_cleaned";
     1032        } else {
     1033            psError(PS_ERR_UNKNOWN, true, "unexpected value for state: %s", state);
     1034            return false;
     1035        }
     1036    }
     1037    if (!p_psDBRunQueryF(config->dbh, query, new_state)) {
     1038        psError(PS_ERR_UNKNOWN, false, "failed to revert");
     1039        psFree(query);
     1040        return false;
     1041    }
     1042    psFree(query);
     1043    return true;
     1044}
    9981045
    9991046static bool completedrevertMode(pxConfig *config)
  • trunk/ippTools/src/magicdstool.h

    r26912 r26960  
    3232    MAGICDSTOOL_MODE_ADVANCERUN,
    3333    MAGICDSTOOL_MODE_REVERTDESTREAKEDFILE,
     34    MAGICDSTOOL_MODE_CLEARSTATEFAULTS,
    3435    MAGICDSTOOL_MODE_GETSKYCELLS,
    3536    MAGICDSTOOL_MODE_TOREMOVE,
  • trunk/ippTools/src/magicdstoolConfig.c

    r26912 r26960  
    138138    psMetadataAddStr(revertdestreakedfileArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "define label", NULL);
    139139
     140    // -clearstatefaults
     141    psMetadata *clearstatefaultsArgs = psMetadataAlloc();
     142    psMetadataAddStr(clearstatefaultsArgs, PS_LIST_TAIL, "-set_state", 0, "new value for state", NULL);
     143    psMetadataAddStr(clearstatefaultsArgs, PS_LIST_TAIL, "-state", 0, "search by state (required)", NULL);
     144    psMetadataAddS64(clearstatefaultsArgs, PS_LIST_TAIL, "-magic_ds_id", 0, "search by magictool de-streak ID", 0);
     145    psMetadataAddS16(clearstatefaultsArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0);
     146    psMetadataAddStr(clearstatefaultsArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by label", NULL);
     147
    140148    // -getskycells
    141149    psMetadata *getskycellsArgs = psMetadataAlloc();
     
    201209    PXOPT_ADD_MODE("-revertdestreakedfile", " revert a faulted de-streaked file",
    202210                    MAGICDSTOOL_MODE_REVERTDESTREAKEDFILE, revertdestreakedfileArgs);
     211    PXOPT_ADD_MODE("-clearstatefaults", " clear magicDSRuns in fault state",
     212                    MAGICDSTOOL_MODE_CLEARSTATEFAULTS, clearstatefaultsArgs);
    203213    PXOPT_ADD_MODE("-getskycells", "get skycell files ",
    204214                    MAGICDSTOOL_MODE_GETSKYCELLS, getskycellsArgs);
Note: See TracChangeset for help on using the changeset viewer.