IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 34910 for trunk/ippTools/src


Ignore:
Timestamp:
Jan 10, 2013, 5:16:22 PM (14 years ago)
Author:
bills
Message:

committing progress on implementation

Location:
trunk/ippTools/src
Files:
2 edited

Legend:

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

    r34908 r34910  
    9797    return false;
    9898}
     99
    99100static bool listsurveyMode(pxConfig *config)
     101{
     102    PS_ASSERT_PTR_NON_NULL(config, NULL);
     103
     104    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     105    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     106    psMetadata *where = psMetadataAlloc();
     107
     108    PXOPT_COPY_STR(config->args, where, "-surveyName", "surveyName", "LIKE");
     109
     110    psString query = pxDataGet("releasetool_listsurvey.sql");
     111    if (!query) {
     112        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     113        return false;
     114    }
     115
     116    if (psListLength(where->list)) {
     117        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     118        psStringAppend(&query, " WHERE %s", whereClause);
     119        psFree(whereClause);
     120    } else {
     121        // The list of surveys is short there is no need to require parameters
     122#ifdef notdef
     123        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required\n");
     124        psFree(where);
     125        return false;
     126#endif
     127    }
     128
     129    if (limit) {
     130        psString limitString = psDBGenerateLimitSQL(limit);
     131        psStringAppend(&query, " %s", limitString);
     132        psFree(limitString);
     133    }
     134
     135    if (!p_psDBRunQuery(config->dbh, query)) {
     136        psError(PS_ERR_UNKNOWN, false, "database error");
     137        psFree(query);
     138        return false;
     139    }
     140    psFree(query);
     141
     142    psArray *output = p_psDBFetchResult(config->dbh);
     143    if (!output) {
     144        psError(PS_ERR_UNKNOWN, false, "database error");
     145        return false;
     146    }
     147
     148    if (!psArrayLength(output)) {
     149        psTrace("releasetool", PS_LOG_INFO, "no rows found");
     150        psFree(output);
     151        return true;
     152    }
     153
     154    if (!ippdbPrintMetadatas(stdout, output, "survey", !simple)) {
     155        psError(PS_ERR_UNKNOWN, false, "failed to print array");
     156        psFree(output);
     157        return false;
     158    }
     159
     160    psFree(output);
     161
     162    return true;
     163}
     164
     165static bool definereleaseMode(pxConfig *config)
     166{
     167    PS_ASSERT_PTR_NON_NULL(config, false);
     168
     169    PXOPT_LOOKUP_STR(releaseName, config->args, "-set_releaseName", true, false);
     170    PXOPT_LOOKUP_S32(surveyID,    config->args, "-set_surveyID", true, false);
     171    PXOPT_LOOKUP_S32(dataRelease, config->args, "-set_dataRelease", false, false);
     172    PXOPT_LOOKUP_STR(state,       config->args, "-set_state",  true, false);
     173
     174    if (!ippReleaseInsert(config->dbh,
     175        0,      // rel_id (auto_increment)
     176        surveyID,
     177        releaseName,
     178        state,
     179        dataRelease
     180    )) {
     181        psError(PS_ERR_UNKNOWN, false, "failed to insert ippRelease");
     182        return false;
     183    }
     184
     185    return true;
     186}
     187
     188static bool updatereleaseMode(pxConfig *config)
     189{
     190    PS_ASSERT_PTR_NON_NULL(config, false);
     191
     192    PXOPT_LOOKUP_STR(releaseName, config->args, "-releaseName", false, false);
     193    PXOPT_LOOKUP_S32(rel_id, config->args,      "-rel_id", false, false);
     194
     195    if (!releaseName && !rel_id) {
     196        psError(PXTOOLS_ERR_CONFIG, true, "either -releaseName or -rel_id is required\n");
     197        return false;
     198    }
     199    PXOPT_LOOKUP_STR(state,       config->args, "-set_state",  true, false);
     200
     201    psMetadata *where = psMetadataAlloc();
     202
     203    PXOPT_COPY_S32(config->args, where, "-rel_id",  "rel_id", "==");
     204    PXOPT_COPY_STR(config->args, where, "-releaseName", "releaseName", "==");
     205
     206    psString query = NULL;
     207    psStringAppend(&query, "UPDATE ippRelease SET state = '%s'", state);
     208
     209    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     210    psStringAppend(&query, " WHERE %s", whereClause);
     211    psFree(whereClause);
     212
     213    if (!p_psDBRunQuery(config->dbh, query)) {
     214        psError(PS_ERR_UNKNOWN, false, "database error");
     215        psFree(query);
     216        return false;
     217    }
     218
     219    psU64 affected = psDBAffectedRows(config->dbh);
     220    psLogMsg("releasetool", PS_LOG_INFO, "Updated %" PRIu64 " ippReleases", affected);
     221
     222
     223    psFree(query);
     224
     225    return true;
     226}
     227
     228static bool listreleaseMode(pxConfig *config)
     229{
     230    PS_ASSERT_PTR_NON_NULL(config, NULL);
     231
     232    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     233    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     234    psMetadata *where = psMetadataAlloc();
     235
     236    PXOPT_COPY_STR(config->args, where, "-surveyName",  "surveyName", "LIKE");
     237    PXOPT_COPY_STR(config->args, where, "-releaseName", "releaseName", "LIKE");
     238    PXOPT_COPY_STR(config->args, where, "-state", "state", "==");
     239    PXOPT_COPY_S32(config->args, where, "-rel_id",  "rel_id", "==");
     240
     241    psString query = pxDataGet("releasetool_listrelease.sql");
     242    if (!query) {
     243        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     244        return false;
     245    }
     246
     247    if (psListLength(where->list)) {
     248        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     249        psStringAppend(&query, " WHERE %s", whereClause);
     250        psFree(whereClause);
     251    } else {
     252        // The list of releases is short there is no need to require parameters
     253#ifdef notdef
     254        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required\n");
     255        psFree(where);
     256        return false;
     257#endif
     258    }
     259
     260    if (limit) {
     261        psString limitString = psDBGenerateLimitSQL(limit);
     262        psStringAppend(&query, " %s", limitString);
     263        psFree(limitString);
     264    }
     265
     266    if (!p_psDBRunQuery(config->dbh, query)) {
     267        psError(PS_ERR_UNKNOWN, false, "database error");
     268        psFree(query);
     269        return false;
     270    }
     271    psFree(query);
     272
     273    psArray *output = p_psDBFetchResult(config->dbh);
     274    if (!output) {
     275        psError(PS_ERR_UNKNOWN, false, "database error");
     276        return false;
     277    }
     278
     279    if (!psArrayLength(output)) {
     280        psTrace("releasetool", PS_LOG_INFO, "no rows found");
     281        psFree(output);
     282        return true;
     283    }
     284
     285    if (!ippdbPrintMetadatas(stdout, output, "ippRelease", !simple)) {
     286        psError(PS_ERR_UNKNOWN, false, "failed to print array");
     287        psFree(output);
     288        return false;
     289    }
     290
     291    psFree(output);
     292
     293    return true;
     294}
     295
     296static bool definerelexpMode(pxConfig *config)
    100297{
    101298    psError(PS_ERR_UNKNOWN, true, "not yet implemented");
    102299    return false;
    103300}
    104 static bool definereleaseMode(pxConfig *config)
     301
     302static bool updaterelexpMode(pxConfig *config)
    105303{
    106304    psError(PS_ERR_UNKNOWN, true, "not yet implemented");
    107305    return false;
    108306}
    109 static bool updatereleaseMode(pxConfig *config)
    110 {
    111     psError(PS_ERR_UNKNOWN, true, "not yet implemented");
    112     return false;
    113 }
    114 static bool listreleaseMode(pxConfig *config)
    115 {
    116     psError(PS_ERR_UNKNOWN, true, "not yet implemented");
    117     return false;
    118 }
    119 static bool definerelexpMode(pxConfig *config)
    120 {
    121     psError(PS_ERR_UNKNOWN, true, "not yet implemented");
    122     return false;
    123 }
    124 static bool updaterelexpMode(pxConfig *config)
    125 {
    126     psError(PS_ERR_UNKNOWN, true, "not yet implemented");
    127     return false;
    128 }
     307
    129308static bool listrelexpMode(pxConfig *config)
    130309{
     
    208387
    209388    if (!psListLength(where->list)) {
    210         psError(PXTOOLS_ERR_CONFIG, false, "search paramters are required\n");
     389        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required\n");
    211390        psFree(where);
    212391        return false;
  • trunk/ippTools/src/releasetoolConfig.c

    r34908 r34910  
    4747    // -definesurvey
    4848    psMetadata *definesurveyArgs = psMetadataAlloc();
    49     psMetadataAddS32(definesurveyArgs, PS_LIST_TAIL, "-set_survey_id",   0, "define survey ID (required)", 0);
    50     psMetadataAddStr(definesurveyArgs, PS_LIST_TAIL, "-set_survey_name", 0, "define survey name (required)", NULL);
     49    psMetadataAddS32(definesurveyArgs, PS_LIST_TAIL, "-set_surveyID",   0, "define survey ID (required)", 0);
     50    psMetadataAddStr(definesurveyArgs, PS_LIST_TAIL, "-set_surveyName", 0, "define survey name (required)", NULL);
    5151    psMetadataAddStr(definesurveyArgs, PS_LIST_TAIL, "-set_description", 0, "define survey description", NULL);
    5252
    5353    // -listsurvey
    5454    psMetadata *listsurveyArgs = psMetadataAlloc();
    55     psMetadataAddStr(listsurveyArgs,  PS_LIST_TAIL, "-survey_name", 0, "search by survey name (LIKE comparision)", NULL);
     55    psMetadataAddStr(listsurveyArgs,  PS_LIST_TAIL, "-surveyName", 0, "select by survey name (LIKE comparision)", NULL);
    5656    psMetadataAddU64(listsurveyArgs,  PS_LIST_TAIL, "-limit",       0, "limit result set to N items", 0);
    5757    psMetadataAddBool(listsurveyArgs, PS_LIST_TAIL, "-simple",      0, "use the simple output format", false);
     
    5959    // -definerelease
    6060    psMetadata *definereleaseArgs = psMetadataAlloc();
    61     psMetadataAddS32(definereleaseArgs, PS_LIST_TAIL, "-set_survey_id", 0,      "define survey ID (required)", 0);
    62     psMetadataAddStr(definereleaseArgs, PS_LIST_TAIL, "-set_release_name", 0,   "define release name (required)", NULL);
    63     psMetadataAddS32(definereleaseArgs, PS_LIST_TAIL, "-set_dataRelease", 0,    "define dataRelease", -1);
    64     psMetadataAddStr(definereleaseArgs, PS_LIST_TAIL, "-set_state", 0,          "define survey state", NULL);
     61    psMetadataAddS32(definereleaseArgs, PS_LIST_TAIL, "-set_surveyID", 0,      "define survey ID (required)", 0);
     62    psMetadataAddStr(definereleaseArgs, PS_LIST_TAIL, "-set_releaseName", 0,   "define release name (required)", NULL);
     63    psMetadataAddS32(definereleaseArgs, PS_LIST_TAIL, "-set_dataRelease", 0,   "define dataRelease", -1);
     64    psMetadataAddStr(definereleaseArgs, PS_LIST_TAIL, "-set_state", 0,         "define survey state", NULL);
    6565
    6666    // -uptdaterelease
    6767    psMetadata *updatereleaseArgs = psMetadataAlloc();
    6868
    69     // release_name and/or rel_id is required. This is handled in updatereleaseMode
    70     psMetadataAddStr(updatereleaseArgs, PS_LIST_TAIL, "-release_name", 0,       "select by release name", NULL);
     69    // releaseName and/or rel_id is required. This is handled in updatereleaseMode
     70    psMetadataAddStr(updatereleaseArgs, PS_LIST_TAIL, "-releaseName", 0,        "select by release name", NULL);
    7171    psMetadataAddS32(updatereleaseArgs, PS_LIST_TAIL, "-rel_id", 0,             "select by release ID", 0);
    7272
     
    7575
    7676//    psMetadataAddS32(updatereleaseArgs, PS_LIST_TAIL, "-set_surveyID", 0,       "define surveyID (required)", 0);
    77 //    psMetadataAddStr(updatereleaseArgs, PS_LIST_TAIL, "-set_release_name", 0,    "define release name (required)", NULL);
     77//    psMetadataAddStr(updatereleaseArgs, PS_LIST_TAIL, "-set_releaseName", 0,    "define release name (required)", NULL);
    7878//    psMetadataAddS32(updatereleaseArgs, PS_LIST_TAIL, "-set_dataRelease", 0,    "define dataRelease", -1);
    7979
     
    8181    // -listrelease
    8282    psMetadata *listreleaseArgs = psMetadataAlloc();
    83     psMetadataAddStr(listreleaseArgs,  PS_LIST_TAIL, "-survey_name", 0, "search by survey name (LIKE comparision)", NULL);
    84     psMetadataAddStr(listreleaseArgs,  PS_LIST_TAIL, "-release_name", 0, "search by survey name (LIKE comparision)", NULL);
    85     psMetadataAddStr(listreleaseArgs,  PS_LIST_TAIL, "-state",       0, "search by release state", NULL);
     83    psMetadataAddStr(listreleaseArgs,  PS_LIST_TAIL, "-surveyName", 0,  "select by survey name (LIKE comparision)", NULL);
     84    psMetadataAddStr(listreleaseArgs,  PS_LIST_TAIL, "-releaseName", 0, "select by survey name (LIKE comparision)", NULL);
     85    psMetadataAddStr(listreleaseArgs,  PS_LIST_TAIL, "-state",       0, "select by release state", NULL);
     86    psMetadataAddS32(listreleaseArgs, PS_LIST_TAIL,  "-rel_id", 0,      "select by release ID", 0);
     87
    8688    psMetadataAddU64(listreleaseArgs,  PS_LIST_TAIL, "-limit",       0, "limit result set to N items", 0);
    8789    psMetadataAddBool(listreleaseArgs, PS_LIST_TAIL, "-simple",      0, "use the simple output format", false);
    8890
    8991    psMetadata *definerelexpArgs = psMetadataAlloc();
    90     psMetadataAddStr(definerelexpArgs,  PS_LIST_TAIL, "-release_name", 0, "search by survey name (LIKE comparision)", NULL);
     92    psMetadataAddStr(definerelexpArgs,  PS_LIST_TAIL, "-releaseName", 0, "select by survey name (LIKE comparision)", NULL);
    9193
    9294    psMetadata *updaterelexpArgs = psMetadataAlloc();
    93     psMetadataAddStr(updaterelexpArgs,  PS_LIST_TAIL, "-release_name", 0, "search by survey name (LIKE comparision)", NULL);
     95    psMetadataAddStr(updaterelexpArgs,  PS_LIST_TAIL, "-releaseName", 0, "select by survey name (LIKE comparision)", NULL);
    9496
    9597    psMetadata *listrelexpArgs = psMetadataAlloc();
    96     psMetadataAddStr(listrelexpArgs,  PS_LIST_TAIL, "-release_name", 0, "search by survey name (LIKE comparision)", NULL);
     98    psMetadataAddStr(listrelexpArgs,  PS_LIST_TAIL, "-releaseName", 0, "select by survey name (LIKE comparision)", NULL);
    9799
    98100
Note: See TracChangeset for help on using the changeset viewer.