IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 23912 for trunk/ippTools/src


Ignore:
Timestamp:
Apr 17, 2009, 3:58:46 PM (17 years ago)
Author:
bills
Message:

Distribution progress

Location:
trunk/ippTools/src
Files:
3 edited

Legend:

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

    r23864 r23912  
    4545static bool updatercrunMode(pxConfig *config);
    4646static bool revertrcrunMode(pxConfig *config);
    47 static bool pendingdatastoresMode(pxConfig *config);
     47static bool pendingdestMode(pxConfig *config);
    4848
    4949# define MODECASE(caseName, func) \
     
    8080        MODECASE(DISTTOOL_MODE_UPDATERCRUN, updatercrunMode);
    8181        MODECASE(DISTTOOL_MODE_REVERTRCRUN, revertrcrunMode);
    82         MODECASE(DISTTOOL_MODE_PENDINGDATASTORES, pendingdatastoresMode);
     82        MODECASE(DISTTOOL_MODE_PENDINGDEST, pendingdestMode);
    8383        default:
    8484            psAbort("invalid option (this should not happen)");
     
    952952}
    953953
    954 static bool pendingdatastoresMode(pxConfig *config)
     954static bool pendingdestMode(pxConfig *config)
    955955{
    956956    PS_ASSERT_PTR_NON_NULL(config, false);
    957 #ifdef notyet
    958957
    959958    psMetadata *where = psMetadataAlloc();
    960     PXOPT_COPY_S64(config->args, where, "-dist_id", "dist_id", "==");
    961     PXOPT_COPY_STR(config->args, where, "-label", "label", "==");
     959    PXOPT_COPY_S64(config->args, where, "-dest_id", "dist_id", "==");
     960//     PXOPT_COPY_STR(config->args, where, "-label", "label", "==");
    962961
    963962    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     
    965964
    966965    // look for "inputs" that need to processed
    967     psString query = pxDataGet("disttool_pendingfileset.sql");
     966    psString query = pxDataGet("disttool_pendingdest.sql");
    968967    if (!query) {
    969968        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     
    971970    }
    972971
     972    psString whereString = NULL;
    973973    if (psListLength(where->list)) {
    974974        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
    975         psStringAppend(&query, " AND %s", whereClause);
     975        // where string gets added by hook, not at the end of the query
     976        psStringAppend(&whereString, "\n AND %s", whereClause);
    976977        psFree(whereClause);
    977978    }
     
    985986    }
    986987
    987     if (!p_psDBRunQuery(config->dbh, query)) {
    988         psError(PS_ERR_UNKNOWN, false, "database error");
     988    if (!p_psDBRunQueryF(config->dbh, query, whereString ? whereString : "")) {
     989        psError(PS_ERR_UNKNOWN, false, "database error");
     990        psFree(whereString);
    989991        psFree(query);
    990992        return false;
     
    10221024
    10231025    psFree(output);
    1024 # endif // notdef
     1026
    10251027    return true;
    10261028}
     
    10291031{
    10301032    PS_ASSERT_PTR_NON_NULL(config, false);
    1031     return true;
    1032 }
     1033    psMetadata *where = psMetadataAlloc();
     1034
     1035    PXOPT_COPY_S64(config->args, where, "-dist_id",  "dist_id", "==");
     1036    PXOPT_COPY_S64(config->args, where, "-dest_id",  "dest_id", "==");
     1037    PXOPT_COPY_S64(config->args, where, "-prod_id",  "prod_id", "==");
     1038    PXOPT_COPY_S64(config->args, where, "-target_id","target_id", "==");
     1039    PXOPT_COPY_S64(config->args, where, "-fs_id",    "fs_id", "==");
     1040    PXOPT_COPY_STR(config->args, where, "-stage",    "stage", "==");;
     1041    PXOPT_COPY_S64(config->args, where, "-stage_id", "stage_id", "==");
     1042    PXOPT_COPY_STR(config->args, where, "-label",    "label", "==");
     1043
     1044    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     1045
     1046    psString query = pxDataGet("disttool_queuercrun.sql");
     1047    if (!query) {
     1048        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1049        return false;
     1050    }
     1051
     1052    if (psListLength(where->list)) {
     1053        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1054        psStringAppend(&query, " AND %s", whereClause);
     1055        psFree(whereClause);
     1056    }
     1057    psFree(where);
     1058
     1059    // treat limit == 0 as "no limit"
     1060    if (limit) {
     1061        psString limitString = psDBGenerateLimitSQL(limit);
     1062        psStringAppend(&query, " %s", limitString);
     1063        psFree(limitString);
     1064    }
     1065
     1066    if (!p_psDBRunQuery(config->dbh, query)) {
     1067        psError(PS_ERR_UNKNOWN, false, "database error");
     1068        psFree(query);
     1069        return false;
     1070    }
     1071    psFree(query);
     1072
     1073    long numUpdated = psDBAffectedRows(config->dbh);
     1074
     1075    psLogMsg("disttool", PS_LOG_INFO, "Inserted %ld rcRuns", numUpdated);
     1076
     1077    return true;
     1078}
     1079
     1080
    10331081static bool updatercrunMode(pxConfig *config)
    10341082{
    10351083    PS_ASSERT_PTR_NON_NULL(config, false);
    1036     return true;
    1037 }
     1084
     1085    psMetadata *where = psMetadataAlloc();
     1086
     1087    PXOPT_LOOKUP_S64(rc_id, config->args, "-rc_id", false, false);
     1088    PXOPT_LOOKUP_STR(fs_name, config->args, "-fs_name", false, false);
     1089    PXOPT_LOOKUP_STR(status_fs_name, config->args, "-status_fs_name", false, false);
     1090    PXOPT_LOOKUP_S64(dest_id, config->args, "-dest_id", false, false);
     1091
     1092    // We either need rc_id or (dest_id and fs_name) to identifiy the rcRun
     1093    if ((!rc_id) && !(dest_id && fs_name)) {
     1094        psError(PXTOOLS_ERR_DATA, true, "either -rc_id or (-fs_name and -dest_id) are required");
     1095        return false;
     1096    }
     1097
     1098    // now that we have done the argument checking
     1099    PXOPT_COPY_S64(config->args, where, "-rc_id", "rc_id", "==");
     1100    PXOPT_COPY_STR(config->args, where, "-fs_name", "rcDSFileset.name", "==");
     1101    PXOPT_COPY_S64(config->args, where, "-dest_id", "rcRun.dest_id", "==");
     1102
     1103    if (!psListLength(where->list)) {
     1104        // this can't happen because we checked above
     1105        psFree(where);
     1106        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
     1107        return false;
     1108    }
     1109
     1110
     1111    PXOPT_LOOKUP_STR(last_fileset, config->args, "-last_fileset", false, false);
     1112    PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false);
     1113    PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false);
     1114
     1115    if (!state && (fault < 0)) {
     1116        psError(PXTOOLS_ERR_DATA, false, "parameters (-fault or -set_state) are required");
     1117        psFree(where);
     1118        return false;
     1119    }
     1120
     1121    psString query = pxDataGet("disttool_updatercrun.sql");
     1122    if (!query) {
     1123        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1124        return false;
     1125    }
     1126
     1127    psString setString = psStringCopy("\n");
     1128    psString separator = "";
     1129    if (state) {
     1130        psStringAppend(&setString, " rcRun.state = '%s'", state);
     1131        separator = ",";
     1132    }
     1133
     1134    // default for fault is -1, so set it if it's zero or higher. This allows clearing fault
     1135    // without forcing revert first
     1136    if (fault >= 0) {
     1137        psStringAppend(&setString, "%s rcRun.fault = %d", separator, fault);
     1138    }
     1139
     1140    if (status_fs_name) {
     1141        psStringAppend(&setString, ", rcRun.status_fs_name = '%s'", status_fs_name);
     1142    }
     1143
     1144    if (last_fileset) {
     1145        psStringAppend(&setString, ", rcDestination.last_fileset = '%s'", last_fileset);
     1146    }
     1147
     1148    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1149    psStringAppend(&query, " AND %s", whereClause);
     1150    psFree(whereClause);
     1151    psFree(where);
     1152
     1153    if (!p_psDBRunQueryF(config->dbh, query, setString)) {
     1154        psError(PS_ERR_UNKNOWN, false, "database error");
     1155        psFree(setString);
     1156        psFree(query);
     1157        return false;
     1158    }
     1159    psFree(setString);
     1160    psFree(query);
     1161
     1162    long numUpdated = psDBAffectedRows(config->dbh);
     1163
     1164    psLogMsg("disttool", PS_LOG_INFO, "Updated %ld rows", numUpdated);
     1165
     1166    return true;
     1167}
     1168
    10381169static bool revertrcrunMode(pxConfig *config)
    10391170{
    10401171    PS_ASSERT_PTR_NON_NULL(config, false);
    1041     return true;
    1042 }
     1172    psMetadata *where = psMetadataAlloc();
     1173    PXOPT_COPY_S64(config->args, where, "-rc_id", "rc_id", "==");
     1174    PXOPT_COPY_S64(config->args, where, "-fs_id", "fs_id", "==");
     1175    PXOPT_COPY_S64(config->args, where, "-dest_id", "dest_id", "==");
     1176    PXOPT_COPY_S64(config->args, where, "-fault", "fault", "==");
     1177
     1178    if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) {
     1179        psFree(where);
     1180        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
     1181        return false;
     1182    }
     1183
     1184    psString query = pxDataGet("disttool_revertrcrun.sql");
     1185    if (!query) {
     1186        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1187        if (!psDBRollback(config->dbh)) {
     1188            psError(PS_ERR_UNKNOWN, false, "database error");
     1189        }
     1190        return false;
     1191    }
     1192
     1193    if (psListLength(where->list)) {
     1194        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1195        psStringAppend(&query, " AND %s", whereClause);
     1196        psFree(whereClause);
     1197    }
     1198
     1199    if (!p_psDBRunQuery(config->dbh, query)) {
     1200        psError(PS_ERR_UNKNOWN, false, "database error");
     1201        psFree(query);
     1202        if (!psDBRollback(config->dbh)) {
     1203            psError(PS_ERR_UNKNOWN, false, "database error");
     1204        }
     1205        return false;
     1206    }
     1207    psFree(query);
     1208
     1209    long numUpdated = psDBAffectedRows(config->dbh);
     1210
     1211    psLogMsg("disttool", PS_LOG_INFO, "Updated %ld rcRuns", numUpdated);
     1212
     1213    return true;
     1214}
  • trunk/ippTools/src/disttool.h

    r23864 r23912  
    3939    DISTTOOL_MODE_UPDATERCRUN,
    4040    DISTTOOL_MODE_REVERTRCRUN,
    41     DISTTOOL_MODE_PENDINGDATASTORES,
     41    DISTTOOL_MODE_PENDINGDEST,
    4242} disttoolMode;
    4343
  • trunk/ippTools/src/disttoolConfig.c

    r23864 r23912  
    120120    psMetadata *toadvanceArgs = psMetadataAlloc();
    121121    psMetadataAddS64(toadvanceArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0);
    122     psMetadataAddStr(toadvanceArgs, PS_LIST_TAIL, "-label",     0, "limit updates to label", NULL);
    123     psMetadataAddU64(toadvanceArgs, PS_LIST_TAIL, "-limit",  0,  "limit result set to N items", 0);
     122    psMetadataAddStr(toadvanceArgs, PS_LIST_TAIL, "-label",   0, "limit updates to label", NULL);
     123    psMetadataAddU64(toadvanceArgs, PS_LIST_TAIL, "-limit",   0,  "limit result set to N items", 0);
    124124    psMetadataAddBool(toadvanceArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false);
    125125
     
    127127    psMetadata *pendingfilesetArgs = psMetadataAlloc();
    128128    psMetadataAddS64(pendingfilesetArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0);
    129     psMetadataAddStr(pendingfilesetArgs, PS_LIST_TAIL, "-label",    0, "limit results to label", NULL);
    130     psMetadataAddStr(pendingfilesetArgs, PS_LIST_TAIL, "-stage",    0, "limit results to runs for stage", NULL);
    131     psMetadataAddU64(pendingfilesetArgs, PS_LIST_TAIL, "-limit",  0,  "limit result set to N items", 0);
     129    psMetadataAddStr(pendingfilesetArgs, PS_LIST_TAIL, "-label",   0, "limit results to label", NULL);
     130    psMetadataAddStr(pendingfilesetArgs, PS_LIST_TAIL, "-stage",   0, "limit results to runs for stage", NULL);
     131    psMetadataAddU64(pendingfilesetArgs, PS_LIST_TAIL, "-limit",   0,  "limit result set to N items", 0);
    132132    psMetadataAddBool(pendingfilesetArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false);
    133133
     
    136136    psMetadataAddS64(addfilesetArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0);
    137137    psMetadataAddS64(addfilesetArgs, PS_LIST_TAIL, "-prod_id", 0, "define prod_id", 0);
    138     psMetadataAddStr(addfilesetArgs, PS_LIST_TAIL, "-name", 0, "define file name", NULL);
    139     psMetadataAddS32(addfilesetArgs, PS_LIST_TAIL, "-fault", 0, "define fault code", 0);
    140     //
    141     // -pendingfileset
    142     psMetadata *pendingdatastoresArgs = psMetadataAlloc();
    143     psMetadataAddS64(pendingdatastoresArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0);
    144     psMetadataAddStr(pendingdatastoresArgs, PS_LIST_TAIL, "-label",    0, "limit results to label", NULL);
    145     psMetadataAddStr(pendingdatastoresArgs, PS_LIST_TAIL, "-stage",    0, "limit results to runs for stage", NULL);
    146     psMetadataAddU64(pendingdatastoresArgs, PS_LIST_TAIL, "-limit",  0,  "limit result set to N items", 0);
    147     psMetadataAddBool(pendingdatastoresArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false);
     138    psMetadataAddStr(addfilesetArgs, PS_LIST_TAIL, "-name",    0, "define file name", NULL);
     139    psMetadataAddS32(addfilesetArgs, PS_LIST_TAIL, "-fault",   0, "define fault code", 0);
     140
     141    // -pendingdest
     142    psMetadata *pendingdestArgs = psMetadataAlloc();
     143    psMetadataAddS64(pendingdestArgs, PS_LIST_TAIL, "-dest_id", 0, "define dest_id", 0);
     144    psMetadataAddU64(pendingdestArgs, PS_LIST_TAIL, "-limit",   0,  "limit result set to N items", 0);
     145    psMetadataAddBool(pendingdestArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false);
     146    psMetadataAddStr(pendingdestArgs, PS_LIST_TAIL, "-label",   0, "limit results to label", NULL);
    148147
    149148    // -revertfileset
    150149    psMetadata *revertfilesetArgs = psMetadataAlloc();
    151     psMetadataAddS64(revertfilesetArgs, PS_LIST_TAIL, "-fs_id", 0, "define fs_id", 0);
     150    psMetadataAddS64(revertfilesetArgs, PS_LIST_TAIL, "-fs_id",   0, "define fs_id", 0);
    152151    psMetadataAddS64(revertfilesetArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0);
    153152    psMetadataAddS64(revertfilesetArgs, PS_LIST_TAIL, "-prod_id", 0, "define dist_id", 0);
    154     psMetadataAddStr(revertfilesetArgs, PS_LIST_TAIL, "-stage",    0, "define stage", NULL);
    155     psMetadataAddS64(revertfilesetArgs, PS_LIST_TAIL, "-stage_id", 0, "define stage_id", 0);
    156     psMetadataAddStr(revertfilesetArgs, PS_LIST_TAIL, "-state",    0, "define state", NULL);
    157     psMetadataAddStr(revertfilesetArgs, PS_LIST_TAIL, "-label",    0, "define label", NULL);
    158     psMetadataAddS16(revertfilesetArgs, PS_LIST_TAIL, "-fault", 0, "define fault code", 0);
     153    psMetadataAddStr(revertfilesetArgs, PS_LIST_TAIL, "-stage",   0, "define stage", NULL);
     154    psMetadataAddS64(revertfilesetArgs, PS_LIST_TAIL, "-stage_id",0, "define stage_id", 0);
     155    psMetadataAddStr(revertfilesetArgs, PS_LIST_TAIL, "-state",   0, "define state", NULL);
     156    psMetadataAddStr(revertfilesetArgs, PS_LIST_TAIL, "-label",   0, "define label", NULL);
     157    psMetadataAddS16(revertfilesetArgs, PS_LIST_TAIL, "-fault",   0, "define fault code", 0);
    159158    psMetadataAddBool(revertfilesetArgs, PS_LIST_TAIL, "-all",    0, "revert all faulted runs", NULL);
     159
     160    // -queuercrun
     161    psMetadata *queuercrunArgs = psMetadataAlloc();
     162    psMetadataAddS64(queuercrunArgs, PS_LIST_TAIL, "-dist_id",   0, "define dist_id", 0);
     163    psMetadataAddS64(queuercrunArgs, PS_LIST_TAIL, "-dest_id",   0, "define dest_id", 0);
     164    psMetadataAddS64(queuercrunArgs, PS_LIST_TAIL, "-prod_id",   0, "define prod_id", 0);
     165    psMetadataAddS64(queuercrunArgs, PS_LIST_TAIL, "-target_id", 0, "define target_id", 0);
     166    psMetadataAddS64(queuercrunArgs, PS_LIST_TAIL, "-fs_id",     0, "define fs_id", 0);
     167    psMetadataAddStr(queuercrunArgs, PS_LIST_TAIL, "-stage",     0, "define stage", NULL);
     168    psMetadataAddS64(queuercrunArgs, PS_LIST_TAIL, "-stage_id",  0, "define stage_id", 0);
     169    psMetadataAddStr(queuercrunArgs, PS_LIST_TAIL, "-state",     0, "define state", NULL);
     170    psMetadataAddStr(queuercrunArgs, PS_LIST_TAIL, "-label",     0, "define label", NULL);
     171    psMetadataAddU64(queuercrunArgs, PS_LIST_TAIL, "-limit",     0, "limit number of runs queued to N", 0);
     172
     173    // -updatercrun
     174    psMetadata *updatercrunArgs = psMetadataAlloc();
     175    psMetadataAddS64(updatercrunArgs, PS_LIST_TAIL, "-rc_id",    0, "define rc_id", 0);
     176    psMetadataAddS64(updatercrunArgs, PS_LIST_TAIL, "-dest_id",  0, "define dest_id", 0);
     177    psMetadataAddStr(updatercrunArgs, PS_LIST_TAIL, "-fs_name",  0, "define fileset name", NULL);
     178    psMetadataAddStr(updatercrunArgs, PS_LIST_TAIL, "-status_fs_name",  0, "define status fileset name", NULL);
     179    psMetadataAddStr(updatercrunArgs, PS_LIST_TAIL, "-set_state",0, "new value for state", NULL);
     180    psMetadataAddStr(updatercrunArgs, PS_LIST_TAIL, "-last_fileset",0, "new value for last_fileset", NULL);
     181    psMetadataAddS16(updatercrunArgs, PS_LIST_TAIL, "-fault",    0, "define fault code", -1);
     182
     183    // -revertrcrun
     184    psMetadata *revertrcrunArgs = psMetadataAlloc();
     185    psMetadataAddS64(revertrcrunArgs, PS_LIST_TAIL,  "-rc_id",   0, "define rc_id", 0);
     186    psMetadataAddS64(revertrcrunArgs, PS_LIST_TAIL,  "-fs_id",   0, "define fs_id", 0);
     187    psMetadataAddS64(revertrcrunArgs, PS_LIST_TAIL,  "-dest_id", 0, "define dest_id", 0);
     188    psMetadataAddS16(revertrcrunArgs, PS_LIST_TAIL,  "-fault",   0, "define fault code", 0);
     189    psMetadataAddBool(revertrcrunArgs, PS_LIST_TAIL, "-all",     0, "revert all faulted runs", NULL);
    160190
    161191    psMetadata *argSets = psMetadataAlloc();
     
    168198    PXOPT_ADD_MODE("-pendingcomponent",       "", DISTTOOL_MODE_PENDINGCOMPONENT,    pendingcomponentArgs);
    169199    PXOPT_ADD_MODE("-addprocessedcomponent",      "", DISTTOOL_MODE_ADDPROCESSEDCOMPONENT, addprocessedcomponentArgs);
    170     PXOPT_ADD_MODE("-processedcomponent",      "", DISTTOOL_MODE_PROCESSEDCOMPONENT, processedcomponentArgs);
    171     PXOPT_ADD_MODE("-toadvance",      "", DISTTOOL_MODE_TOADVANCE, toadvanceArgs);
    172     PXOPT_ADD_MODE("-pendingfileset",      "", DISTTOOL_MODE_PENDINGFILESET, pendingfilesetArgs);
    173     PXOPT_ADD_MODE("-addfileset",      "", DISTTOOL_MODE_ADDFILESET, addfilesetArgs);
     200    PXOPT_ADD_MODE("-processedcomponent", "", DISTTOOL_MODE_PROCESSEDCOMPONENT, processedcomponentArgs);
     201    PXOPT_ADD_MODE("-toadvance",          "", DISTTOOL_MODE_TOADVANCE, toadvanceArgs);
     202    PXOPT_ADD_MODE("-pendingfileset",     "", DISTTOOL_MODE_PENDINGFILESET, pendingfilesetArgs);
     203    PXOPT_ADD_MODE("-addfileset",         "", DISTTOOL_MODE_ADDFILESET, addfilesetArgs);
    174204    PXOPT_ADD_MODE("-revertfileset",      "", DISTTOOL_MODE_REVERTFILESET, revertfilesetArgs);
    175     PXOPT_ADD_MODE("-pendingdatastores",      "", DISTTOOL_MODE_PENDINGDATASTORES, pendingdatastoresArgs);
     205    PXOPT_ADD_MODE("-queuercrun",         "", DISTTOOL_MODE_QUEUERCRUN, queuercrunArgs);
     206    PXOPT_ADD_MODE("-updatercrun",        "", DISTTOOL_MODE_UPDATERCRUN, updatercrunArgs);
     207    PXOPT_ADD_MODE("-revertrcrun",        "", DISTTOOL_MODE_REVERTRCRUN, revertrcrunArgs);
     208    PXOPT_ADD_MODE("-pendingdest",        "", DISTTOOL_MODE_PENDINGDEST, pendingdestArgs);
    176209
    177210    if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Note: See TracChangeset for help on using the changeset viewer.