IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 21, 2014, 7:27:10 PM (12 years ago)
Author:
eugene
Message:

add doneprep option

Location:
tags/ipp-pv3-20140717/ippTools
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • tags/ipp-pv3-20140717/ippTools/share/Makefile.am

    r36981 r37283  
    509509        remotetool_definebyquery_stack.sql \
    510510        remotetool_dropcomponent.sql \
     511        remotetool_listcomponent.sql \
     512        remotetool_doneprep.sql \
    511513        remotetool_updatepoll.sql
  • tags/ipp-pv3-20140717/ippTools/src/remotetool.c

    r37277 r37283  
    2121static bool listrunMode(pxConfig *config);
    2222static bool listcomponentMode(pxConfig *config);
     23
     24// list remoteRuns with all remoteComponents in state 'prep_done' or 'prep_fail'
     25static bool doneprepMode(pxConfig *config);
    2326
    2427// Update
     
    5053    MODECASE(REMOTETOOL_MODE_DEFINEBYQUERY,   definebyqueryMode);
    5154    MODECASE(REMOTETOOL_MODE_LISTRUN,         listrunMode);
     55    MODECASE(REMOTETOOL_MODE_DONEPREP,         doneprepMode);
    5256    MODECASE(REMOTETOOL_MODE_LISTCOMPONENT,   listcomponentMode);
    5357    MODECASE(REMOTETOOL_MODE_DROPCOMPONENT,   dropcomponentMode);
     
    281285  PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
    282286
    283 
    284287  psArray *remRuns = NULL;
    285288  remRuns = psDBSelectRows(config->dbh, "remoteRun", where, limit);
     
    300303
    301304  PXOPT_COPY_S64(config->args, where, "-remote_id", "remote_id", "==");
     305  PXOPT_COPY_S64(config->args, where, "-stage_id",  "stage_id",  "==");
     306  PXOPT_COPY_S64(config->args, where, "-jobs",      "jobs",      "==");
     307
     308  PXOPT_COPY_STR(config->args, where, "-state", "remoteComponent.state", "==");
     309  PXOPT_COPY_STR(config->args, where, "-label", "remoteRun.label", "==");
     310
    302311  PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
    303 
    304   psArray *remComps = NULL;
    305   remComps = psDBSelectRows(config->dbh, "remoteComponent", where, 0);
    306 
    307   if (!ippdbPrintMetadatas(stdout, remComps, "remoteComponent", !simple)) {
     312  PXOPT_LOOKUP_S16(limit,   config->args, "-limit",  false, false);
     313
     314  psString query = pxDataGet("remotetool_listcomponent.sql");
     315  if (!query) {
     316      psError(PXTOOLS_ERR_SYS,false, "failed to retreive SQL statement");
     317      return(false);
     318  }
     319
     320  if (psListLength(where->list)) {
     321      psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     322      psStringAppend(&query, " WHERE %s", whereClause);
     323      psFree(whereClause);
     324  }
     325  psFree(where);
     326
     327  if (limit) {
     328    psString limitString = psDBGenerateLimitSQL(limit);
     329    psStringAppend(&query, " %s", limitString);
     330    psFree(limitString);
     331  }
     332
     333  if (!p_psDBRunQuery(config->dbh, query)) {
     334      psError(PS_ERR_UNKNOWN, false, "database error");
     335      psFree(query);
     336      return false;
     337  }
     338  psFree(query);
     339
     340  psArray *output = p_psDBFetchResult(config->dbh);
     341  if (!output) {
     342      psError(PS_ERR_UNKNOWN, false, "database error");
     343      return false;
     344  }
     345  if (!psArrayLength(output)) {
     346    psTrace("remotetool", PS_LOG_INFO, "no rows found");
     347    psFree(output);
     348    return true;
     349  }
     350
     351  if (!ippdbPrintMetadatas(stdout, output, "remoteComponent", !simple)) {
    308352    psError(PS_ERR_UNKNOWN, false, "failed to print array");
    309     psFree(remComps);
    310     return false;
    311   }
    312   psFree(remComps);
     353    psFree(output);
     354    return false;
     355  }
     356  psFree(output);
     357
     358  return true;
     359}
     360
     361// List
     362static bool doneprepMode(pxConfig *config)
     363{
     364  psMetadata *where = psMetadataAlloc();
     365
     366  PXOPT_COPY_S64(config->args, where, "-remote_id", "remote_id", "==");
     367  PXOPT_COPY_S64(config->args, where, "-job_id", "job_id", "==");
     368
     369  PXOPT_COPY_STR(config->args, where, "-stage",  "stage",  "==");
     370  PXOPT_COPY_STR(config->args, where, "-state", "remoteRun.state", "==");
     371  PXOPT_COPY_STR(config->args, where, "-label",  "label",  "==");
     372
     373  PXOPT_LOOKUP_S16(limit,   config->args, "-limit",  false, false);
     374  PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     375
     376  psString query = pxDataGet("remotetool_doneprep.sql");
     377  if (!query) {
     378      psError(PXTOOLS_ERR_SYS,false, "failed to retreive SQL statement");
     379      return(false);
     380  }
     381
     382  psString whereDone = NULL;
     383  psString whereJobs = NULL;
     384  if (psListLength(where->list)) {
     385      psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     386      psStringAppend(&whereDone, " \n AND %s", whereClause);
     387      psStringAppend(&whereJobs, " \n WHERE %s", whereClause);
     388      psFree(whereClause);
     389  }
     390
     391  if (limit) {
     392    psString limitString = psDBGenerateLimitSQL(limit);
     393    psStringAppend(&query, " %s", limitString);
     394    psFree(limitString);
     395  }
     396
     397  // fprintf (stderr, "query: %s\n", query);
     398  // fprintf (stderr, "whereDone: %s\n", whereDone);
     399  // fprintf (stderr, "whereJobs: %s\n", whereJobs);
     400
     401  if (!p_psDBRunQueryF(config->dbh, query, whereDone, whereJobs)) {
     402      psError(PS_ERR_UNKNOWN, false, "database error");
     403      psFree(whereDone);
     404      psFree(whereJobs);
     405      psFree(query);
     406      return false;
     407  }
     408  psFree(whereDone);
     409  psFree(whereJobs);
     410  psFree(query);
     411
     412  psArray *output = p_psDBFetchResult(config->dbh);
     413  if (!output) {
     414      psError(PS_ERR_UNKNOWN, false, "database error");
     415      return false;
     416  }
     417  if (!psArrayLength(output)) {
     418    psTrace("remotetool", PS_LOG_INFO, "no rows found");
     419    psFree(output);
     420    return true;
     421  }
     422
     423  if (!ippdbPrintMetadatas(stdout, output, "remoteRun", !simple)) {
     424    psError(PS_ERR_UNKNOWN, false, "failed to print array");
     425    psFree(output);
     426    return false;
     427  }
     428  psFree(output);
    313429
    314430  return true;
  • tags/ipp-pv3-20140717/ippTools/src/remotetool.h

    r37277 r37283  
    1212  REMOTETOOL_MODE_DEFINEBYQUERY,
    1313  REMOTETOOL_MODE_LISTRUN,
     14  REMOTETOOL_MODE_DONEPREP,
    1415  REMOTETOOL_MODE_LISTCOMPONENT,
    1516  REMOTETOOL_MODE_DROPCOMPONENT,
     
    1718  REMOTETOOL_MODE_UPDATEPOLL,
    1819  REMOTETOOL_MODE_UPDATECOMPONENT,
    19   REMOTETOOL_MODE_REVERTRUN,   
    20   REMOTETOOL_MODE_REVERTAUTH,   
     20  REMOTETOOL_MODE_REVERTRUN,
     21  REMOTETOOL_MODE_REVERTAUTH,
    2122} remotetoolMode;
    2223
  • tags/ipp-pv3-20140717/ippTools/src/remotetoolConfig.c

    r37277 r37283  
    4040  ADD_OPT(Bool, definebyqueryArgs, "-pretend",       "pretend to do this.", 0);
    4141  ADD_OPT(Bool, definebyqueryArgs,"-simple",         "simple print format",0);
    42  
     42
    4343  // -listrun
    4444  psMetadata *listrunArgs = psMetadataAlloc();
     
    5959  ADD_OPT(S16, listrunArgs,  "-limit",             "limit to number of runs to display", 0);
    6060
     61  // -doneprep
     62  psMetadata *doneprepArgs = psMetadataAlloc();
     63  ADD_OPT(S64, doneprepArgs, "-remote_id",          "run to list", 0);
     64  ADD_OPT(S64, doneprepArgs, "-job_id",             "job_id", 0);
     65  ADD_OPT(Str, doneprepArgs, "-stage",              "stage to return", NULL);
     66  ADD_OPT(Str, doneprepArgs, "-state",              "state to return", NULL);
     67  ADD_OPT(Str, doneprepArgs, "-label",              "remRun label to use", NULL);
     68
     69  ADD_OPT(Bool, doneprepArgs, "-simple",            "simple print format", false);
     70  ADD_OPT(S16, doneprepArgs,  "-limit",             "limit to number of runs to display", 0);
     71
    6172  // -listcomponents
    62   psMetadata *listcomponentArgs = psMetadataAlloc();
    63   ADD_OPT(S64, listcomponentArgs, "-remote_id",             "run to list", 0);
    64   ADD_OPT(S16, listcomponentArgs, "-limit",              "limit to number of runs to display", 0);
     73  psMetadata   *listcomponentArgs = psMetadataAlloc();
     74  ADD_OPT(S64,  listcomponentArgs, "-remote_id",         "run to list", 0);
     75  ADD_OPT(S64,  listcomponentArgs, "-stage_id",          "run to list", 0);
     76  ADD_OPT(S32,  listcomponentArgs, "-jobs",              "run to list", 0);
     77  ADD_OPT(Str,  listcomponentArgs, "-state",             "run to list", NULL);
     78  ADD_OPT(S16,  listcomponentArgs, "-limit",             "limit to number of runs to display", 0);
    6579  ADD_OPT(Bool, listcomponentArgs, "-simple",            "simple print format", false);
     80  ADD_OPT(Str,  listcomponentArgs, "-label",             "label to use", NULL);
    6681
    6782  // -dropcomponent
     
    6984  ADD_OPT(S64, dropcomponentArgs, "-remote_id",         "run to update", 0);
    7085  ADD_OPT(S64, dropcomponentArgs, "-stage_id",          "stage_id to remote", 0);
    71  
     86
    7287  // -updaterun
    7388  psMetadata *updaterunArgs = psMetadataAlloc();
     
    8398  psMetadata *updatepollArgs = psMetadataAlloc();
    8499  ADD_OPT(S64, updatepollArgs, "-remote_id",            "run to update", 0);
    85  
     100
    86101  // -updatecomponent
    87102  psMetadata  *updatecomponentArgs = psMetadataAlloc();
     
    97112  ADD_OPT(Str, revertrunArgs, "-label",      "remRun label to use", NULL);
    98113  ADD_OPT(S16, revertrunArgs, "-fault",              "fault code", 0);
    99  
     114
    100115  // -revertauth
    101116  psMetadata *revertauthArgs = psMetadataAlloc();
     
    108123  PXOPT_ADD_MODE("-definebyquery",     "", REMOTETOOL_MODE_DEFINEBYQUERY,   definebyqueryArgs);
    109124  PXOPT_ADD_MODE("-listrun",           "", REMOTETOOL_MODE_LISTRUN,         listrunArgs);
     125  PXOPT_ADD_MODE("-doneprep",          "", REMOTETOOL_MODE_DONEPREP,        doneprepArgs);
    110126  PXOPT_ADD_MODE("-listcomponent",     "", REMOTETOOL_MODE_LISTCOMPONENT,   listcomponentArgs);
    111127  PXOPT_ADD_MODE("-dropcomponent",     "", REMOTETOOL_MODE_DROPCOMPONENT,   dropcomponentArgs);
Note: See TracChangeset for help on using the changeset viewer.