00001 #ifdef gjk_s_komentari
00002
00003
00004
00005
00006 #include <stdarg.h>
00007 #if !defined(osx_platform)
00008 #include <values.h>
00009 #endif
00010 #include "apiHeaderAll.h"
00011 #include "objStat.h"
00012 #include "miscUtil.h"
00013 #include "reDataObjOpr.h"
00014 #include "reGlobalsExtern.h"
00015 #include "reDataRel.h"
00016
00017 #endif
00018
00019 #include "objStat.h"
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058 int
00059 msiChkRechkRecompChkSum4DatObjVol2 (msParam_t *coll, msParam_t * inpParam2, msParam_t * inpParam3, msParam_t *outParam, ruleExecInfo_t *rei)
00060 {
00061 rsComm_t *rsComm;
00062 collInp_t collInp, *myCollInp;
00063 int iErr=0, i, continueInx, status;
00064 transStat_t *transStat = NULL;
00065 genQueryInp_t genQueryInp;
00066 genQueryOut_t *genQueryOut = NULL;
00067 dataObjInp_t dataObjInp;
00068 time_t t1;
00069 char strOut[MAX_NAME_LEN * MAX_NAME_LEN], *strTimeDiff, myGlbPar1[MAX_NAME_LEN]="";
00070 long lMin=55, lMax=100;
00071 int iCountMin = 0, iCountMax = 0, iCountMid = 0;
00072
00073 RE_TEST_MACRO (" Calling msiChkRechkRecompChkSum4DatObjVol2")
00074
00075 if (rei == NULL || rei->rsComm == NULL) {
00076 rodsLog (LOG_ERROR,
00077 "msiChkRechkRecompChkSum4DatObjVol2: input rei or rsComm is NULL");
00078 return (SYS_INTERNAL_NULL_INPUT_ERR);
00079 }
00080
00081 rsComm = rei->rsComm;
00082
00083
00084 rei->status = parseMspForCollInp (coll, &collInp,
00085 &myCollInp, 0);
00086 if (rei->status < 0) {
00087 rodsLogAndErrorMsg (LOG_ERROR, &rsComm->rError, rei->status,
00088 "msiChkRechkRecompChkSum4DatObjVol2: input inpParam1 error. status = %d", rei->status);
00089 sprintf (strOut,
00090 "usage 'foo iRODS_collection size_min size_max', ERROR: msiChkRechkRecompChkSum4DatObjVol2(), input inpParam1 error\n");
00091 rodsLog (LOG_ERROR,
00092 "msiChkRechkRecompChkSum4DatObjVol2(), input inpParam1 error.");
00093 i = fillStrInMsParam (outParam, strOut);
00094
00095 return (rei->status);
00096 }
00097
00098
00099 if ((strTimeDiff = parseMspForStr (inpParam2)) != NULL)
00100 {
00101 lMin = strtol (strTimeDiff, (char **) NULL, 10);
00102 }
00103 else
00104 {
00105 sprintf (strOut,
00106 "usage 'foo iRODS_collection size_min size_max', ERROR: msiChkRechkRecompChkSum4DatObjVol2(), input inpParam2 error\n");
00107 rodsLog (LOG_ERROR,
00108 "msiChkRechkRecompChkSum4DatObjVol2(), input inpParam2 error.");
00109 i = fillStrInMsParam (outParam, strOut);
00110 return (-1);
00111 }
00112
00113
00114 if ((strTimeDiff = parseMspForStr (inpParam3)) != NULL)
00115 {
00116 lMax = strtol (strTimeDiff, (char **) NULL, 10);
00117 }
00118 else
00119 {
00120 sprintf (strOut,
00121 "usage 'foo iRODS_collection size_min size_max', ERROR: msiChkRechkRecompChkSum4DatObjVol2(), input inpParam3 error\n");
00122 rodsLog (LOG_ERROR,
00123 "msiChkRechkRecompChkSum4DatObjVol2(), input inpParam3 error.");
00124 i = fillStrInMsParam (outParam, strOut);
00125 return (-1);
00126 }
00127
00128
00129
00130
00131 #ifdef no17
00132 {
00133 rodsObjStat_t *rodsObjStatOut;
00134 int status7;
00135
00136
00137
00138
00139
00140 if (rsComm == NULL) {
00141 rodsLog (LOG_ERROR, "getDataObjACL: input rsComm is NULL");
00142 return (SYS_INTERNAL_NULL_INPUT_ERR);
00143 }
00144
00145
00146
00147 status7 = rsObjStat(rsComm, dataObjInp.objPath, &rodsObjStatOut);
00148 printf ("GJK-P P.007.2.2b dataObjInp.objPath=(%s), status7=(%d)\n", dataObjInp.objPath, status7);
00149 }
00150 #endif
00151
00152
00153 #ifdef stat2
00154
00155 dataObjInp_t dataObjInp, *myDataObjInp;
00156 rodsObjStat_t *rodsObjStatOut = NULL;
00157
00158 RE_TEST_MACRO (" Calling msiObjStat")
00159
00160 if (rei == NULL || rei->rsComm == NULL) {
00161 rodsLog (LOG_ERROR,
00162 "msiObjStat: input rei or rsComm is NULL");
00163 return (SYS_INTERNAL_NULL_INPUT_ERR);
00164 }
00165
00166 rsComm = rei->rsComm;
00167
00168
00169 rei->status = parseMspForDataObjInp (inpParam1, &dataObjInp,
00170 &myDataObjInp, 0);
00171
00172 if (rei->status < 0) {
00173 rodsLogAndErrorMsg (LOG_ERROR, &rsComm->rError, rei->status,
00174 "msiObjStat: input inpParam1 error. status = %d", rei->status);
00175 return (rei->status);
00176 }
00177 else {
00178 printf("GJKaaa myGlbPar1=(%s), myDataObjInp->objPath=(%s)\n", myGlbPar1, myDataObjInp->objPath);
00179 rstrcpy(myGlbPar1, myDataObjInp->objPath, MAX_NAME_LEN);
00180 printf("GJKaab myGlbPar1=(%s), myDataObjInp->objPath=(%s)\n", myGlbPar1, myDataObjInp->objPath);
00181
00182 }
00183
00184 #if 0
00185 rei->status = __rsObjStat (rsComm, myDataObjInp, 1, &rodsObjStatOut);
00186 #endif
00187 rei->status = rsObjStat (rsComm, myDataObjInp, &rodsObjStatOut);
00188
00189 if (rei->status >= 0) {
00190 fillMsParam (outParam, NULL, RodsObjStat_MS_T, rodsObjStatOut, NULL);
00191 } else {
00192 rodsLogAndErrorMsg (LOG_ERROR, &rsComm->rError, rei->status,
00193 "msiObjStat: rsObjStat failed for %s, status = %d",
00194 myDataObjInp->objPath,
00195 rei->status);
00196 }
00197 #endif //stat2
00198
00199
00200 memset (&genQueryInp, 0, sizeof (genQueryInp));
00201 memset (&genQueryOut, 0, sizeof (genQueryOut));
00202
00203 addInxIval (&genQueryInp.selectInp, COL_COLL_NAME, 1);
00204 addInxIval (&genQueryInp.selectInp, COL_DATA_NAME, 1);
00205 addInxIval (&genQueryInp.selectInp, COL_DATA_SIZE, 1);
00206
00207 addInxIval (&genQueryInp.selectInp, COL_D_DATA_CHECKSUM, 1);
00208 addInxIval (&genQueryInp.selectInp, COL_D_MODIFY_TIME, 1);
00209 addInxIval (&genQueryInp.selectInp, COL_D_CREATE_TIME, 1);
00210
00211 addInxIval (&genQueryInp.selectInp, COL_COLL_TYPE, 1);
00212
00213 addInxIval (&genQueryInp.selectInp, COL_DATA_SIZE, 1);
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225 status = rsQueryDataObjInCollReCur (rsComm, myCollInp->collName,
00226 &genQueryInp, &genQueryOut, NULL, 1);
00227
00228
00229 printf("GJK- begin 0001.0.1 status=(%d), myCollInp->collName=(%s)\n", status, myCollInp->collName);
00230
00231 printf("GJKa2a myGlbPar1=(%s), myCollInp->collName=(%s)\n", myGlbPar1, myCollInp->collName);
00232 rstrcpy(myGlbPar1, myCollInp->collName, MAX_NAME_LEN);
00233 printf("GJKa2b myGlbPar1=(%s), myCollInp->collName=(%s)\n", myGlbPar1, myCollInp->collName);
00234
00235 if (status < 0 && status != CAT_NO_ROWS_FOUND) {
00236 rodsLogAndErrorMsg (LOG_ERROR, &rsComm->rError, rei->status,
00237 "msiChkRechkRecompChkSum4DatObjVol2: msiChkRechkRecompChkSum4DatObjVol2 error for %s, stat=%d",
00238 myCollInp->collName, status);
00239 rei->status=status;
00240 return (rei->status);
00241 }
00242
00243 while (rei->status >= 0) {
00244 sqlResult_t *subColl, *dataObj, *sqlDatSize;
00245
00246
00247 subColl = getSqlResultByInx (genQueryOut, COL_COLL_NAME);
00248 dataObj = getSqlResultByInx (genQueryOut, COL_DATA_NAME);
00249
00250
00251 sqlDatSize = getSqlResultByInx (genQueryOut, COL_COLL_NAME);
00252
00253
00254 if (sqlDatSize == NULL) {
00255 printf ("GJK-P P.003.2.2 ERROR sqlDatSize == NULL, dataObjInp.objPath=(%s), genQueryOut->rowCnt=(%d), i=(%d)\n", dataObjInp.objPath, genQueryOut->rowCnt, i);
00256 }
00257 else {
00258 printf ("GJK-P P.003.2.2 OK sqlDatSize != NULL, dataObjInp.objPath=(%s), genQueryOut->rowCnt=(%d), i=(%d)\n", dataObjInp.objPath, genQueryOut->rowCnt, i);
00259 }
00260
00261 if (subColl == NULL) {
00262 printf ("GJK-P P.004.2.2 ERROR subColl == NULL, dataObjInp.objPath=(%s), genQueryOut->rowCnt=(%d), i=(%d)\n", dataObjInp.objPath, genQueryOut->rowCnt, i);
00263
00264 if (dataObj == NULL) {
00265 printf ("GJK-P P.004.2.3 ERROR dataObj == NULL, dataObjInp.objPath=(%s), genQueryOut->rowCnt=(%d), i=(%d)\n", dataObjInp.objPath, genQueryOut->rowCnt, i);
00266
00267
00268 rodsLog (LOG_ERROR,
00269 "msiChkRechkRecompChkSum4DatObjVol2: msiChkRechkRecompChkSum4DatObjVol2 failed, (%s) is not an iRODS data object (dataObj == NULL), istatus=%d, rei->status=%d", myCollInp->collName, status, rei->status);
00270 rei->status=UNMATCHED_KEY_OR_INDEX;
00271 return (rei->status);
00272 }
00273 else {
00274
00275 iErr = intChkRechkRecompChkSum4DatObjVol2 (rsComm, dataObjInp.objPath, t1, rei);
00276
00277
00278 }
00279 rodsLog (LOG_ERROR,
00280 "msiChkRechkRecompChkSum4DatObjVol2: msiChkRechkRecompChkSum4DatObjVol2 failed, (%s) is not an iRODS collection, rei->status=%d", myCollInp->collName, rei->status);
00281 rei->status=UNMATCHED_KEY_OR_INDEX;
00282 return (rei->status);
00283 }
00284
00285 if ((dataObj = getSqlResultByInx (genQueryOut, COL_DATA_NAME))
00286 == NULL) {
00287 rodsLog (LOG_ERROR,
00288 "msiChkRechkRecompChkSum4DatObjVol2: msiChkRechkRecompChkSum4DatObjVol2 for COL_DATA_NAME failed");
00289 rei->status=UNMATCHED_KEY_OR_INDEX;
00290 return (rei->status);
00291 }
00292
00293 for (i = 0; i < genQueryOut->rowCnt; i++) {
00294 char *tmpSubColl, *tmpDataName, *tmpDataSize;
00295
00296
00297
00298
00299
00300
00301 tmpSubColl = &subColl->value[subColl->len * i];
00302 tmpDataName = &dataObj->value[dataObj->len * i];
00303 tmpDataSize = &sqlDatSize->value[sqlDatSize->len * i];
00304
00305 snprintf (dataObjInp.objPath, MAX_NAME_LEN, "%s/%s",
00306 tmpSubColl, tmpDataName);
00307
00308 #define no18
00309 #ifdef no18
00310 {
00311 rodsObjStat_t *rodsObjStatOut;
00312 int status7;
00313 genQueryInp_t genQueryInp7;
00314 dataObjInp_t myDataObjInp7;
00315
00316
00317 if (rsComm == NULL) {
00318 rodsLog (LOG_ERROR, "msiChkRechkRecompChkSum4DatObjVol2(): input rsComm is NULL");
00319 return (SYS_INTERNAL_NULL_INPUT_ERR);
00320 }
00321
00322 memset (&genQueryInp7, 0, sizeof (genQueryInp_t));
00323 memset (&myDataObjInp7, 0, sizeof (dataObjInp_t));
00324 rstrcpy(myDataObjInp7.objPath, dataObjInp.objPath, MAX_NAME_LEN);
00325
00326
00327
00328
00329 status7 = rsObjStat(rsComm, &myDataObjInp7, &rodsObjStatOut);
00330
00331
00332
00333 if ((long)rodsObjStatOut->objSize <= lMin) iCountMin++;
00334 if ((long)rodsObjStatOut->objSize >= lMax) iCountMax++;
00335 if ((long)rodsObjStatOut->objSize > lMin && (long)rodsObjStatOut->objSize < lMax) iCountMid++;
00336
00337
00338
00339 }
00340 #endif
00341
00342
00343
00344
00345
00346
00347
00348
00349
00350
00351
00352
00353
00354
00355
00356
00357
00358
00359
00360
00361
00362
00363
00364
00365
00366
00367
00368
00369
00370
00371
00372 if (1 != genQueryOut->rowCnt)
00373 {
00374
00375
00376 }
00377 #ifdef gjk009
00378 tmpChksumStr = NULL;
00379
00380 if ((chksumStr = getSqlResultByInx (genQueryOut, COL_D_DATA_CHECKSUM)) == NULL)
00381 {
00382 rodsLog (LOG_ERROR,
00383 "printLsLong: getSqlResultByInx for COL_D_DATA_CHECKSUM failed GJK-(%s)",
00384 objPath);
00385
00386 }
00387 else
00388 {
00389 tmpChksumStr = &chksumStr->value[chksumStr->len * iIterSqlQuery];
00390 printf("GJK-P P.994.5.5. in intChkRechkRecompChkSum4DatObjVol2(), msiGJKExportRecursiveCollMeta(), objPath=(%s), tmpChksumStr=(%s)\n", objPath, tmpChksumStr);
00391 }
00392
00393 tmpChksumStr = NULL;
00394 strModTime = NULL;
00395
00396 if ((modTimVal = getSqlResultByInx (genQueryOut, COL_D_MODIFY_TIME)) == NULL)
00397 {
00398 rodsLog (LOG_ERROR, "printLsLong: getSqlResultByInx for COL_D_MODIFY_TIME failed GJK-(%s)", objPath);
00399
00400 }
00401 else
00402 {
00403 strModTime = &modTimVal->value[modTimVal->len * iIterSqlQuery];
00404 printf ("GJK-P P.994.5.5. in intChkRechkRecompChkSum4DatObjVol2(), msiGJKExportRecursiveCollMeta(), objPath=(%s), strModTime=(%s)\n",
00405 objPath, strModTime);
00406 }
00407
00408 tmpChksumStr = NULL;
00409 strCreaTime = NULL;
00410
00411 if ((creaTimVal = getSqlResultByInx (genQueryOut, COL_D_CREATE_TIME)) == NULL)
00412 {
00413 rodsLog (LOG_ERROR,
00414 "printLsLong: getSqlResultByInx for COL_D_CREATE_TIME failed GJK-(%s)",
00415 objPath);
00416
00417 }
00418 else
00419 {
00420 strCreaTime = &creaTimVal->value[creaTimVal->len * iIterSqlQuery];
00421 printf
00422 ("GJK-P P.994.5.5. in intChkRechkRecompChkSum4DatObjVol2(), msiGJKExportRecursiveCollMeta(), objPath=(%s), strCreaTime=(%s)\n",
00423 objPath, strCreaTime);
00424 }
00425 #endif
00426
00427
00428
00429
00430 rei->status = 0;
00431 if (rei->status<0)
00432 {
00433 rodsLogAndErrorMsg (LOG_ERROR, &rsComm->rError, rei->status,
00434 "msiChkRechkRecompChkSum4DatObjVol2: rsDataObjRepl failed %s, status = %d",
00435 (&dataObjInp)->objPath,
00436 rei->status);
00437 }
00438 else {
00439
00440
00441 }
00442 if (transStat != NULL) {
00443 free (transStat);
00444 }
00445 }
00446
00447 continueInx = genQueryOut->continueInx;
00448 freeGenQueryOut (&genQueryOut);
00449 if (continueInx > 0) {
00450
00451 genQueryInp.continueInx = continueInx;
00452 rei->status = rsGenQuery (rsComm, &genQueryInp, &genQueryOut);
00453 } else {
00454 break;
00455 }
00456 }
00457
00458 clearKeyVal (&dataObjInp.condInput);
00459
00460 #define vystup1
00461 #ifdef vystup1
00462 (void) snprintf (strOut, 255,
00463 "%d data objects are within the size range, %d data objects are smaller than %ld bytes and %d data objects are larger than %ld bytes in the input '%s' collection\n", iCountMid, iCountMin, lMin, iCountMax, lMax, myGlbPar1);
00464 i = fillStrInMsParam (outParam, strOut);
00465 printf("GJK end strOut=(%s)\n", strOut);
00466 #else
00467
00468
00469 if (rei->status >= 0) {
00470 fillIntInMsParam (outParam, rei->status);
00471 } else {
00472 rodsLogAndErrorMsg (LOG_ERROR, &rsComm->rError, rei->status,
00473 "dataObjInp: msiChkRechkRecompChkSum4DatObjVol2 failed (should have catched earlier) %s, status = %d",
00474 (&dataObjInp)->objPath,
00475 rei->status);
00476 }
00477 #endif
00478 return (rei->status);
00479 }
00480
00481
00482
00483
00484
00485
00486
00487
00488 int
00489 msiChkRechkRecompChkSum4DatObjVol2222 (msParam_t * inpParam1, msParam_t * inpParam2, msParam_t * outParam1, ruleExecInfo_t * rei)
00490 {
00491 rsComm_t *rsComm;
00492 collInp_t collInpCache, *ptrInpColl;
00493 int iErr = 0, i = 0;
00494 int iCountUserDefinedMetadata = 0;
00495 char strOut[MAX_NAME_LEN * MAX_NAME_LEN], *strTimeDiff;
00496 long lTmp = 0;
00497 time_t t1;
00498
00499
00500 RE_TEST_MACRO ("RE_TEST_MACRO, begin of msiChkRechkRecompChkSum4DatObjVol2");
00501
00502 printf ("GJK-P P.2222.0.1. in msiChkRechkRecompChkSum4DatObjVol2()\n");
00503
00504 rsComm = rei->rsComm;
00505
00506
00507 rei->status = parseMspForCollInp (inpParam1, &collInpCache, &ptrInpColl, 0);
00508
00509 if (rei->status < 0)
00510 {
00511 rodsLog (LOG_ERROR,
00512 "msiChkRechkRecompChkSum4DatObjVol2(), input inpParam1 error. status = %d",
00513 rei->status);
00514 return (rei->status);
00515 }
00516
00517
00518 if ((strTimeDiff = parseMspForStr (inpParam2)) != NULL)
00519 {
00520 lTmp = strtol (strTimeDiff, (char **) NULL, 10);
00521 t1 = (time_t) lTmp;
00522 }
00523 else
00524 {
00525 sprintf (strOut,
00526 "ERROR: msiChkRechkRecompChkSum4DatObjVol2(), input inpParam2 error\n");
00527 rodsLog (LOG_ERROR,
00528 "msiChkRechkRecompChkSum4DatObjVol2(), input inpParam2 error.");
00529 i = fillStrInMsParam (outParam1, strOut);
00530 return (-1);
00531 }
00532
00533 printf
00534 ("GJK-P P.2222.0.2. in msiChkRechkRecompChkSum4DatObjVol2(), ptrInpColl->collName=(%s), t1=%ld\n",
00535 ptrInpColl->collName, t1);
00536
00537 iErr = intChkRechkRecompChkSum4DatObjVol2 (rsComm, ptrInpColl->collName, t1, rei);
00538
00539
00540 sprintf (strOut,
00541 "OK msiChkRechkRecompChkSum4DatObjVol2(), iCountUserDefinedMetadata=%d, t1=(%ld), iErr=%d\n",
00542 iCountUserDefinedMetadata, t1, iErr);
00543 i = fillStrInMsParam (outParam1, strOut);
00544
00545
00546 printf
00547 ("GJK-P P.2222.0.9. in msiChkRechkRecompChkSum4DatObjVol2(), iCountUserDefinedMetadata=%d, iErr=%d\n",
00548 iCountUserDefinedMetadata, iErr);
00549
00550 return (iErr);
00551 }
00552
00553 int
00554 intChkRechkRecompChkSum4DatObjVol2 (rsComm_t * rsComm, char *strFullDataPath,
00555 time_t tTime, ruleExecInfo_t * rei)
00556 {
00557 int iCountUserDefinedMetadata = 0;
00558 genQueryInp_t genQueryInp;
00559 genQueryOut_t *genQueryOut;
00560 sqlResult_t *chksumStr, *modTimVal, *creaTimVal, *sqltColDataSize;
00561 char *objPath = 0;
00562 int iIterSqlQuery = 0;
00563 char *tmpChksumStr, *strModTime, *strCreaTime;
00564 char collQCond[MAX_NAME_LEN];
00565
00566 char *strColDataSize ;
00567
00568 printf
00569 ("GJK-P P.994.12.1. in intChkRechkRecompChkSum4DatObjVol2(), strFullDataPath=(%s)\n",
00570 strFullDataPath);
00571
00572 #ifdef gjk004
00573
00574 if ((long) tTime < 0)
00575 {
00576 rodsLog (LOG_ERROR,
00577 "ERROR in intChkRechkRecompChkSum4DatObjVol2, tTime=(%ld) < 0",
00578 tTime);
00579 return (-1);
00580 }
00581
00582 if (strFullDataPath == NULL || strlen (strFullDataPath) < 1)
00583 {
00584 rodsLog (LOG_ERROR,
00585 "ERROR in intChkRechkRecompChkSum4DatObjVol2, strFullDataPath=(%s) is strange ",
00586 strFullDataPath);
00587 return (-2);
00588 }
00589
00590 strncpy (ptrInpColl.collName, strFullDataPath, MAX_NAME_LEN);
00591 iErr =
00592 intGetDataObjChksumsTimeStampsFromAVUVol2 (&ptrInpColl, aAVUarray,
00593 &iCountUserDefinedMetadata, strOut,
00594 rei);
00595
00596 printf ("GJK-P P.994.7.0.a strOut=(%s)", strOut);
00597 iTotalAVUs = iCountUserDefinedMetadata;
00598 for (i = 0; i < iTotalAVUs; i++)
00599 {
00600 lTmp = strtol (aAVUarray[i].value, (char **) NULL, 10);
00601 if (lMax < lTmp)
00602 lMax = lTmp;
00603 }
00604
00605 if (iTotalAVUs > 0 && ((tTime - lMax) <= 0))
00606 {
00607 printf
00608 ("GJK-P P.994.7.1. in intChkRechkRecompChkSum4DatObjVol2(), mam uz AVU a je novejsi, iTotalAVUs=%d, lMax=%ld, Time=%ld, timeDiff=%ld\n",
00609 iTotalAVUs, lMax, tTime, (tTime - lMax));
00610 rodsLog (LOG_NOTICE,
00611 "GJK-P P.994.7.1. in intChkRechkRecompChkSum4DatObjVol2(), mam uz AVU a je novejsi, iTotalAVUs=%d, lMax=%ld, Time=%ld, timeDiff=%ld\n",
00612 iTotalAVUs, lMax, tTime, (tTime - lMax));
00613 return (0);
00614 }
00615 else
00616 {
00617 if (iTotalAVUs > 0)
00618 {
00619 dataObjInp_t dataObjInp;
00620 char *dataObjChksumStr = NULL;
00621 dataObjInfo_t *dataObjInfoHead = NULL;
00622
00623
00624 memset (&dataObjInp, 0, sizeof (dataObjInp));
00625
00626 rstrcpy (dataObjInp.objPath, strFullDataPath, MAX_NAME_LEN);
00627
00628
00629 memset (&dataObjInp.condInput, 0, sizeof (keyValPair_t));
00630 addKeyVal (&dataObjInp.condInput, VERIFY_CHKSUM_KW, "");
00631
00632 rei->status =
00633 _rsDataObjChksum (rsComm, &dataObjInp, &dataObjChksumStr,
00634 &dataObjInfoHead);
00635 printf
00636 ("GJK-P P.994.27.1. in intChkRechkRecompChkSum4DatObjVol2(), mam uz AVU a je starsi, prepocti chksumu, porovnej a register novy cas, iTotalAVUs=%d, lMax=%ld, Time=%ld, timeDiff=%ld\n",
00637 iTotalAVUs, lMax, tTime, (tTime - lMax));
00638 rodsLog (LOG_NOTICE,
00639 "GJK-P P.994.27.1. in intChkRechkRecompChkSum4DatObjVol2(), mam uz AVU a je starsi, prepocti chksumu, porovnej a register novy cas, iTotalAVUs=%d, lMax=%ld, Time=%ld, timeDiff=%ld\n",
00640 iTotalAVUs, lMax, tTime, (tTime - lMax));
00641
00642 (void) time (&t1);
00643 if (rei->status != 0)
00644 {
00645 rodsLog (LOG_ERROR,
00646 "GJK-P P.994.27.1b. ERROR in intChkRechkRecompChkSum4DatObjVol2() in _rsDataObjChksum(), iRODS object (%s), returned check sum (%s)\n",
00647 dataObjInp.objPath, dataObjChksumStr);
00648 return (-2);
00649 }
00650
00651 iErr =
00652 intAddChkSumDateAvuMetadataVol2 (rei->rsComm, strFullDataPath, t1,
00653 &status);
00654 if (iErr != 0)
00655 {
00656 rodsLog (LOG_ERROR,
00657 "GJK-P P.994.27.1c. ERROR in intChkRechkRecompChkSum4DatObjVol2() in intAddChkSumDateAvuMetadataVol2(), iRODS object (%s), returned check status %d\n",
00658 ` strFullDataPath, status);
00659 return (-3);
00660 }
00661 printf
00662 ("GJK-P P.994.17.1. in intChkRechkRecompChkSum4DatObjVol2(),mam uz AVU a je starsi, prepocti chksumu, porovnej a register novy cas, iTotalAVUs=%d, lMax=%ld, tTime=%ld, iErr=%d, t1=%ld, rei->status=%d, dataObjInp.objPath=(%s), *dataObjChksumStr=(%s)\n",
00663 iTotalAVUs, lMax, (long) tTime, iErr, (long) t1, rei->status,
00664 dataObjInp.objPath, dataObjChksumStr);
00665 return (iErr);
00666 }
00667 else
00668 {
00669 printf
00670 ("GJK-P P.994.27.1. in intChkRechkRecompChkSum4DatObjVol2(), nemam uz AVU, prepocti chksumu, porovnej a register novy cas, iTotalAVUs=%d, lMax=%ld, Time=%ld, timeDiff=%ld\n",
00671 iTotalAVUs, lMax, tTime, (tTime - lMax));
00672 rodsLog (LOG_NOTICE,
00673 "GJK-P P.994.27.1. in intChkRechkRecompChkSum4DatObjVol2(), nemam uz AVU, prepocti chksumu, porovnej a register novy cas, iTotalAVUs=%d, lMax=%ld, Time=%ld, timeDiff=%ld\n",
00674 iTotalAVUs, lMax, tTime, (tTime - lMax));
00675 iTotalAVUs = iTotalAVUs;
00676 }
00677 }
00678
00679 #endif
00680
00681
00682
00683 memset (&genQueryInp, 0, sizeof (genQueryInp_t));
00684 memset (&genQueryOut, 0, sizeof (genQueryOut_t));
00685 genAllInCollQCond (strFullDataPath, collQCond);
00686
00687 addInxIval (&genQueryInp.selectInp, COL_D_DATA_CHECKSUM, 1);
00688 addInxIval (&genQueryInp.selectInp, COL_D_MODIFY_TIME, 1);
00689 addInxIval (&genQueryInp.selectInp, COL_D_CREATE_TIME, 1);
00690
00691
00692 addInxIval (&genQueryInp.selectInp, COL_COLL_TYPE, 1);
00693
00694 addInxIval (&genQueryInp.selectInp, COL_DATA_SIZE, 1);
00695
00696
00697
00698
00699
00700
00701
00702 genQueryInp.maxRows = MAX_SQL_ROWS;
00703
00704
00705
00706
00707 rei->status = rsGenQuery (rsComm, &genQueryInp, &genQueryOut);
00708
00709 printf
00710 ("GJK-P P.994.0.2. in intChkRechkRecompChkSum4DatObjVol2(), rei->status=(%d), strFullDataPath=(%s), iCountUserDefinedMetadata=(%d), genQueryOut->rowCnt=(%d)\n",
00711 rei->status, strFullDataPath, iCountUserDefinedMetadata, genQueryOut->rowCnt);
00712
00713
00714
00715 if (rei->status != CAT_NO_ROWS_FOUND)
00716 { int i;
00717 dataObjInp_t destDataObjInp;
00718
00719
00720
00721
00722 printf
00723 ("GJK-P P.994.3.3. in intChkRechkRecompChkSum4DatObjVol2(), rei->status=(%d), genQueryOut->rowCnt=(%d), strFullDataPath=(%s)\n",
00724 rei->status, genQueryOut->rowCnt, strFullDataPath);
00725
00726
00727 for (i=0; i < genQueryOut->rowCnt; i++) {
00728
00729 #ifdef gjkl005
00730
00731 memset (&srcDataObjInp, 0, sizeof (dataObjInp_t));
00732 memset (&destDataObjInp, 0, sizeof (dataObjInp_t));
00733
00734
00735 subCollName = genQueryOut->sqlResult[0].value;
00736 subCollName += i*genQueryOut->sqlResult[0].len;
00737
00738
00739 fileName = genQueryOut->sqlResult[1].value;
00740 fileName += i*genQueryOut->sqlResult[1].len;
00741
00742
00743 snprintf(srcDataObjInp.objPath, MAX_NAME_LEN, "%s/%s", subCollName, fileName);
00744
00745
00746 snprintf(destDataObjInp.objPath, MAX_NAME_LEN, "%s%s/%s", destColl, subCollName+strlen(srcColl), fileName);
00747 #endif
00748
00749 printf ("GJK-P P.009.1.2. in intChkRechkRecompChkSum4DatObjVol2(), i=(%d), destDataObjInp.objPath=(%s)\n", i, destDataObjInp.objPath);
00750
00751 }
00752
00753 if (1 != genQueryOut->rowCnt)
00754 {
00755 printf
00756 ("GJK-P P.994.4.4. in intChkRechkRecompChkSum4DatObjVol2(), rei->status=(%d), genQueryOut->rowCnt=(%d), strFullDataPath=(%s)\n",
00757 rei->status, genQueryOut->rowCnt, strFullDataPath);
00758
00759 }
00760
00761 tmpChksumStr = NULL;
00762
00763 if ((chksumStr = getSqlResultByInx (genQueryOut, COL_D_DATA_CHECKSUM)) == NULL)
00764 {
00765 rodsLog (LOG_ERROR,
00766 "printLsLong: getSqlResultByInx for COL_D_DATA_CHECKSUM failed GJK-(%s)",
00767 objPath);
00768
00769 }
00770 else
00771 {
00772 tmpChksumStr = &chksumStr->value[chksumStr->len * iIterSqlQuery];
00773 printf("GJK-P P.994.5.5. in intChkRechkRecompChkSum4DatObjVol2(), msiGJKExportRecursiveCollMeta(), objPath=(%s), tmpChksumStr=(%s)\n", objPath, tmpChksumStr);
00774 }
00775
00776 tmpChksumStr = NULL;
00777 strModTime = NULL;
00778
00779 if ((modTimVal = getSqlResultByInx (genQueryOut, COL_D_MODIFY_TIME)) == NULL)
00780 {
00781 rodsLog (LOG_ERROR, "printLsLong: getSqlResultByInx for COL_D_MODIFY_TIME failed GJK-(%s)", objPath);
00782
00783 }
00784 else
00785 {
00786 strModTime = &modTimVal->value[modTimVal->len * iIterSqlQuery];
00787 printf ("GJK-P P.994.5.5. in intChkRechkRecompChkSum4DatObjVol2(), msiGJKExportRecursiveCollMeta(), objPath=(%s), strModTime=(%s)\n",
00788 objPath, strModTime);
00789 }
00790
00791 tmpChksumStr = NULL;
00792 strCreaTime = NULL;
00793
00794 if ((creaTimVal = getSqlResultByInx (genQueryOut, COL_D_CREATE_TIME)) == NULL)
00795 {
00796 rodsLog (LOG_ERROR,
00797 "printLsLong: getSqlResultByInx for COL_D_CREATE_TIME failed GJK-(%s)",
00798 objPath);
00799
00800 }
00801 else
00802 {
00803 strCreaTime = &creaTimVal->value[creaTimVal->len * iIterSqlQuery];
00804 printf
00805 ("GJK-P P.994.5.5. in intChkRechkRecompChkSum4DatObjVol2(), msiGJKExportRecursiveCollMeta(), objPath=(%s), strCreaTime=(%s)\n",
00806 objPath, strCreaTime);
00807 }
00808
00809 #ifdef gjk003
00810 zzzz if ((dataSize = getSqlResultByInx (myGenQueryOut, COL_DATA_SIZE)) == NULL) {
00811 setSqlResultValue (&dataObjSqlResult->dataSize, COL_DATA_SIZE, "-1",
00812 myGenQueryOut->rowCnt);
00813 } else {
00814 dataObjSqlResult->dataSize = *dataSize;
00815 }
00816 miscUtil.c
00817 zzzz
00818 #endif
00819
00820 tmpChksumStr = NULL;
00821
00822 if ((chksumStr = getSqlResultByInx (genQueryOut, COL_D_DATA_CHECKSUM)) == NULL)
00823 {
00824 rodsLog (LOG_ERROR,
00825 "printLsLong: getSqlResultByInx for COL_D_DATA_CHECKSUM failed GJK-(%s)",
00826 objPath);
00827
00828 }
00829 else
00830 {
00831 tmpChksumStr = &chksumStr->value[chksumStr->len * iIterSqlQuery];
00832 printf ("GJK-P P.994.5.5. in intChkRechkRecompChkSum4DatObjVol2(), msiGJKExportRecursiveCollMeta(), objPath=(%s), COL_D_DATA_CHECKSUM=tmpChksumStr=(%s)\n", objPath, tmpChksumStr);
00833 }
00834
00835 strColDataSize = NULL;
00836 tmpChksumStr = NULL;
00837
00838 sqltColDataSize = getSqlResultByInx (genQueryOut, COL_DATA_SIZE);
00839 if (sqltColDataSize == NULL )
00840 {
00841 rodsLog (LOG_ERROR,
00842 "printLsLong: getSqlResultByInx for COL_DATA_SIZE failed GJK-(%s)",
00843 objPath);
00844
00845 }
00846 else
00847 {
00848 strColDataSize = &sqltColDataSize->value[sqltColDataSize->len * iIterSqlQuery];
00849 printf("GJK-P P.007.5.5. in intChkRechkRecompChkSum4DatObjVol2(), getSqlResultByInx for COL_DATA_SIZE OK, msiGJKExportRecursiveCollMeta(), objPath=(%s), strColDataSize=(%s)\n", objPath, strColDataSize);
00850 }
00851
00852 printf ("GJK-P P.994.6.6. (tady je moje maso AAA ZZZ) in intChkRechkRecompChkSum4DatObjVol2(), rei->status=(%d), genQueryOut->rowCnt=(%d), strFullDataPath=(%s), strColDataSize=(%s), tmpChksumStr=(%s), iIterSqlQuery=(%d)\n",
00853 rei->status, genQueryOut->rowCnt, strFullDataPath, strColDataSize, tmpChksumStr, iIterSqlQuery);
00854
00855
00856
00857
00858
00859
00860
00861 #ifdef gjk003
00862 if (iCountUserDefinedMetadata > 0)
00863 {
00864
00865
00866
00867 rodsLog (LOG_NOTICE,
00868 "GJK-P P.994.0.1. in intChkRechkRecompChkSum4DatObjVol2(), mam check sum cas a tedy nedelej nic, after GJKgetDataObjPSmeta((%s) rsComm\n",
00869 objPath);
00870 printf
00871 ("GJK-P P.994.0.1. in intChkRechkRecompChkSum4DatObjVol2(), mam check sum cas a tedy nedelej nic, after GJKgetDataObjPSmeta((%s) rsComm\n",
00872 objPath);
00873 }
00874 else
00875 {
00876 rodsLog (LOG_NOTICE,
00877 "GJK-P P.994.0.2. in intChkRechkRecompChkSum4DatObjVol2(), nemam check sum cas, after GJKgetDataObjPSmeta(%s), rsComm\n",
00878 objPath);
00879 printf
00880 ("GJK-P P.994.0.2. in intChkRechkRecompChkSum4DatObjVol2(), nemam check sum cas, after GJKgetDataObjPSmeta(%s), rsComm\n",
00881 objPath);
00882 if (strlen (tmpChksumStr) ==
00883 strlen ("6d75827809277a1d50c0ed742764a82c") && 1 == 1)
00884 {
00885
00886
00887
00888
00889 rodsLog (LOG_NOTICE,
00890 "GJK-P P.994.99.2. in intChkRechkRecompChkSum4DatObjVol2(), nemam check sum cas, mam check sum hodnotu, after GJKgetDataObjPSmeta(%s), rsComm\n",
00891 objPath);
00892 }
00893 else
00894 {
00895
00896
00897
00898
00899 rodsLog (LOG_NOTICE,
00900 "GJK-P P.994.99.2. in intChkRechkRecompChkSum4DatObjVol2(), nemam check sum cas, mam check sum hodnotu, after GJKgetDataObjPSmeta(%s), rsComm\n",
00901 objPath);
00902
00903 printf ("GJK-P P.994.0.4. in intChkRechkRecompChkSum4DatObjVol2(), after GJKgetDataObjPSmeta(%s), rsComm\n",
00904 objPath);
00905 }
00906 printf ("GJK-P P.994.0.5. in intChkRechkRecompChkSum4DatObjVol2(), after GJKgetDataObjPSmeta((%s), rsComm\n",
00907 objPath);
00908 }
00909 #endif
00910
00911 printf ("GJK-P P.994.0.6. in intChkRechkRecompChkSum4DatObjVol2(), after GJKgetDataObjPSmeta((%s), rsComm\n",
00912 objPath);
00913 }
00914 printf ("GJK-P P.994.0.8. in intChkRechkRecompChkSum4DatObjVol2()\n");
00915 return(0);
00916 }
00917
00918 int intAddChkSumDateAvuMetadataVol2 (rsComm_t * rsComm, char *objPath, time_t t1, int *iStatus)
00919 {
00920 modAVUMetadataInp_t modAVUMetadataInp;
00921 char mytime[256], *chrPtr1;
00922
00923 chrPtr1 = strrchr (objPath, '/');
00924 if( NULL == chrPtr1 ) {
00925 rodsLog( LOG_ERROR, "intAddChkSumDateAvuMetadataVol2 :: failed to find separator in objPath" );
00926 return -1;
00927 }
00928
00929 printf
00930 ("GJK-P P.1.0.1. in intGetDataObjChksumsTimeStampsFromAVUVol2(), chrPtr1=(%s), objPath=(%s)\n",
00931 chrPtr1, objPath);
00932 if (chrPtr1 != NULL && *chrPtr1 == '/' && chrPtr1[strlen (chrPtr1) - 1] == '/')
00933 *chrPtr1 = 0;
00934
00935 if( NULL == chrPtr1 ) {
00936 rodsLog( LOG_ERROR, "intAddChkSumDateAvuMetadataVol2 :: failed to find separator in objPath" );
00937 return -1;
00938 }
00939 printf("GJK-P P.1.0.2. in intGetDataObjChksumsTimeStampsFromAVUVol2(), chrPtr1=(%s), objPath=(%s)\n",chrPtr1, objPath);
00940
00941
00942
00943 memset (&modAVUMetadataInp, 0, sizeof (modAVUMetadataInp));
00944
00945 modAVUMetadataInp.arg0 = "add";
00946 modAVUMetadataInp.arg1 = "-d";
00947 modAVUMetadataInp.arg2 = objPath;
00948 modAVUMetadataInp.arg3 = "MD5checkSumDataStamp";
00949
00950 (void)
00951 printf
00952 ("GJK-P P.123.0.1. in intAddChkSumDateAvuMetadataVol2(), after rsModAVUMetadata((%s), rsComm\n",
00953 objPath);
00954 #if defined(osx_platform)
00955 if ((long) t1 < 190509697L || (long) t1 > LONG_MAX)
00956 #else
00957 if ((long) t1 < 190509697L || (long) t1 > MAXLONG)
00958 #endif
00959 {
00960 (void) rodsLog (LOG_ERROR,
00961 "The Unix time (%d) is out of reasonable bounds for intAddChkSumDateAvuMetadataVol2() for iRODS data object (%s) ",
00962 (int) t1, objPath);
00963 return (-1);
00964 }
00965 (void) snprintf (mytime, 255, "%d", (int) t1);
00966 modAVUMetadataInp.arg4 = mytime;
00967 modAVUMetadataInp.arg5 = "UnixTimeInSeconds";
00968 *iStatus = rsModAVUMetadata (rsComm, &modAVUMetadataInp);
00969 (void)
00970 printf
00971 ("GJK-P P.123.0.2. in intAddChkSumDateAvuMetadataVol2(), after rsModAVUMetadata((%s), rsComm\n",
00972 objPath);
00973 if (0 != *iStatus)
00974 (void) rodsLog (LOG_ERROR,
00975 "intAddChkSumDateAvuMetadataVol2() rsModAVUMetadata failed objPath=(%s)",
00976 objPath);
00977 else
00978 {
00979 (void)
00980 printf
00981 ("GJK-P P.123.0.3. in intAddChkSumDateAvuMetadataVol2(), after rsModAVUMetadata((%s), sComm, mytime=%ld, *iStatus=%d\n",
00982 objPath, (long)mytime, *iStatus);
00983 }
00984 (void)
00985 printf
00986 ("GJK-P P.123.0.4. OK in intAddChkSumDateAvuMetadataVol2(), after rsModAVUMetadata((%s), rsComm, *iStatus=%d\n",
00987 objPath, *iStatus);
00988
00989 return (*iStatus);
00990 }
00991
00992 int
00993 intFindChkSumDateAvuMetadataVol2 (int status, genQueryOut_t * genQueryOut,
00994 char *fullName, UserDefinedMetadata_t UAVArray[],
00995 int *iCountUserDefinedMetadata)
00996 {
00997 int i = 0, j = 0, iResult = 0;
00998 size_t size;
00999
01000 *iCountUserDefinedMetadata = 0;
01001
01002 printf
01003 ("GJK 300.0.0. intFindChkSumDateAvuMetadataVol2, fullName=(%s), i=%d, status=%d\n",
01004 fullName, i, status);
01005
01006
01007
01008 if (status != 0)
01009 {
01010 rodsLog (LOG_ERROR, "rsGenQuery");
01011 }
01012 else
01013 {
01014 if (status != CAT_NO_ROWS_FOUND)
01015 {
01016 for (i = 0; i < (genQueryOut->rowCnt - 0); i++)
01017 {
01018
01019
01020
01021
01022
01023 for (j = 0; j < (genQueryOut->attriCnt - 0); j++)
01024 {
01025 char *tResult;
01026
01027
01028
01029
01030 tResult = genQueryOut->sqlResult[j].value;
01031
01032
01033
01034 tResult += i * genQueryOut->sqlResult[j].len;
01035
01036
01037
01038
01039 if (j < 2 || strlen (tResult))
01040 {
01041 size = genQueryOut->sqlResult[j].len + 2;
01042
01043
01044 }
01045
01046
01047
01048
01049
01050 switch (j)
01051 {
01052 case 0:
01053 strncpy (UAVArray[*iCountUserDefinedMetadata].attribute,
01054 tResult, 256);
01055 break;
01056 case 1:
01057 strncpy (UAVArray[*iCountUserDefinedMetadata].value,
01058 tResult, 256);
01059 break;
01060 case 2:
01061 strncpy (UAVArray[*iCountUserDefinedMetadata].units,
01062 tResult, 256);
01063 break;
01064 default:
01065 break;
01066 }
01067
01068
01069
01070 }
01071
01072 *iCountUserDefinedMetadata = *iCountUserDefinedMetadata + 1;
01073 }
01074 }
01075 }
01076 iResult = *iCountUserDefinedMetadata;
01077 printf
01078 ("GJK 333.3.3. intFindChkSumDateAvuMetadataVol2, i=%d, j=%d, iCountUserDefinedMetadata=%d, iResult=%d\n",
01079 i, j, *iCountUserDefinedMetadata, iResult);
01080 return (iResult);
01081 }
01082
01083 int
01084 msiAddDataObjChksumsTimeStampsToAVUVol2 (msParam_t * inpParam1,
01085 msParam_t * outParam1,
01086 ruleExecInfo_t * rei)
01087 {
01088 rsComm_t *rsComm;
01089 time_t t1;
01090 collInp_t collInpCache, *ptrInpColl;
01091 int iErr = 0, i = 0, iStatus;
01092 int iCountUserDefinedMetadata = 0;
01093 char strOut[MAX_NAME_LEN * MAX_NAME_LEN];
01094
01095
01096 RE_TEST_MACRO
01097 ("RE_TEST_MACRO, begin of msiAddDataObjChksumsTimeStampsToAVUVol2");
01098
01099 printf
01100 ("GJK-P P.1.0.0. in msiAddDataObjChksumsTimeStampsToAVUVol2(), GJK msiAddDataObjChksumsTimeStampsToAVUVol2: GJK Calling msiGetDataObjChksumsTimeStampsFromAVUVol2\n");
01101
01102 rsComm = rei->rsComm;
01103
01104
01105
01106 printf
01107 ("GJK-P P.991.0.0. in msiAddDataObjChksumsTimeStampsToAVUVol2(), GJK msiAddDataObjChksumsTimeStampsToAVUVol2: GJK Calling msiGetDataObjChksumsTimeStampsFromAVUVol2\n");
01108
01109
01110 rei->status = parseMspForCollInp (inpParam1, &collInpCache, &ptrInpColl, 0);
01111
01112 if (rei->status < 0)
01113 {
01114 rodsLog (LOG_ERROR,
01115 "msiGetDataObjChksumsTimeStampsFromAVUVol2(), input inpParam1 error. status = %d",
01116 rei->status);
01117 return (rei->status);
01118 }
01119
01120 (void) time (&t1);
01121 iErr =
01122 intAddChkSumDateAvuMetadataVol2 (rei->rsComm, ptrInpColl->collName, t1,
01123 &iStatus);
01124 (void) snprintf (strOut, 255,
01125 "|MD5checkSumDataStamp|%d|UnixTimeInSeconds|\n", (int) t1);
01126 i = fillStrInMsParam (outParam1, strOut);
01127
01128 printf
01129 ("GJK-P P.111.0.7. in msiGetDataObjChksumsTimeStampsFromAVUVol2(), GJK msiGetDataObjChksumsTimeStampsFromAVUVol2: GJK Calling msiGetDataObjChksumsTimeStampsFromAVUVol2, iErr=%d, iCountUserDefinedMetadata=%d\n",
01130 iErr, iCountUserDefinedMetadata);
01131
01132 return (iErr);
01133 }
01134
01135
01136
01137
01138
01139
01140
01141 int msiGJK2 (msParam_t * inpParam1, msParam_t * outParam1, ruleExecInfo_t * rei)
01142 {
01143 rsComm_t *rsComm;
01144 collInp_t collInpCache, *ptrInpColl;
01145 int iErr = 0, iI = 0, i = 0;
01146 UserDefinedMetadata_t aAVUarray[1024];
01147 int iCountUserDefinedMetadata = 0;
01148 char strOut[MAX_NAME_LEN * MAX_NAME_LEN], strTmp[1024];
01149
01150
01151 RE_TEST_MACRO
01152 ("RE_TEST_MACRO, begin of msiGetDataObjChksumsTimeStampsFromAVUVol2");
01153
01154 printf
01155 ("GJK-P P.1.0.0. in msiGetDataObjChksumsTimeStampsFromAVUVol2(), GJK msiGetDataObjChksumsTimeStampsFromAVUVol2: GJK Calling msiGetDataObjChksumsTimeStampsFromAVUVol2\n");
01156
01157 rsComm = rei->rsComm;
01158
01159
01160 rei->status = parseMspForCollInp (inpParam1, &collInpCache, &ptrInpColl, 0);
01161
01162 if (rei->status < 0)
01163 {
01164 rodsLog (LOG_ERROR,
01165 "msiGetDataObjChksumsTimeStampsFromAVUVol2(), input inpParam1 error. status = %d",
01166 rei->status);
01167 return (rei->status);
01168 }
01169
01170 iErr =
01171 intGetDataObjChksumsTimeStampsFromAVUVol2 (ptrInpColl, aAVUarray,
01172 &iCountUserDefinedMetadata, strOut,
01173 rei);
01174
01175 printf
01176 ("GJK-P P.111.0.7. in msiGetDataObjChksumsTimeStampsFromAVUVol2(), GJK msiGetDataObjChksumsTimeStampsFromAVUVol2: GJK Calling msiGetDataObjChksumsTimeStampsFromAVUVol2, iErr=%d, iCountUserDefinedMetadata=%d\n",
01177 iErr, iCountUserDefinedMetadata);
01178
01179 for (iI = 0; iI < iCountUserDefinedMetadata; iI++)
01180 {
01181
01182 snprintf (strTmp, MAX_NAME_LEN, "|%s|%s|%s|\n",
01183 aAVUarray[iI].attribute, aAVUarray[iI].value,
01184 aAVUarray[iI].units);
01185 strncat (strOut, strTmp, MAX_NAME_LEN);
01186 }
01187
01188
01189 i = fillStrInMsParam (outParam1, strOut);
01190
01191
01192
01193 printf
01194 ("GJK-P P.111.0.9. in msiGetDataObjChksumsTimeStampsFromAVUVol2(), GJK msiGetDataObjChksumsTimeStampsFromAVUVol2: GJK Calling msiGetDataObjChksumsTimeStampsFromAVUVol2, iCountUserDefinedMetadata=%d\n",
01195 iCountUserDefinedMetadata);
01196
01197 return (iErr);
01198 }
01199
01200
01201 int
01202 intGetDataObjChksumsTimeStampsFromAVUVol2 (collInp_t * ptrInpColl,
01203 UserDefinedMetadata_t * aAVUarray,
01204 int *iTotalAVUs, char *strOut,
01205 ruleExecInfo_t * rei)
01206 {
01207 char *chrPtr1 =
01208 NULL, strAbsPath[MAX_NAME_LEN], v1[1024], v2[1024], v3[1024],
01209 strDirName[MAX_NAME_LEN], strFileName[MAX_NAME_LEN], *condVal[10],
01210 attrName[256] = "MD5checkSumDataStamp";;
01211 genQueryInp_t genQueryInp;
01212 int i1a[10], i1b[10], i2a[10], iI = 0, iErr = 0, printCount = 0;
01213 genQueryOut_t *genQueryOut;
01214
01215 chrPtr1 = strrchr (ptrInpColl->collName, '/');
01216 printf
01217 ("GJK-P P.21.0.1. in intGetDataObjChksumsTimeStampsFromAVUVol2(), chrPtr1=(%s), ptrInpColl->collName=(%s)\n",
01218 chrPtr1, ptrInpColl->collName);
01219 if (chrPtr1 != NULL && *chrPtr1 == '/'
01220 && (ptrInpColl->collName[strlen (ptrInpColl->collName) - 1] == '/'))
01221 *chrPtr1 = 0;
01222
01223
01224
01225
01226
01227
01228
01229 if( NULL != chrPtr1 ) {
01230 printf("GJK-P P.21.0.2. in intGetDataObjChksumsTimeStampsFromAVUVol2(), chrPtr1=(%s), ptrInpColl->collName=(%s)\n",chrPtr1, ptrInpColl->collName);
01231 }
01232
01233
01234
01235 if ((iI = isData (rei->rsComm, ptrInpColl->collName, NULL)) >= 0)
01236 {
01237 rodsLog (LOG_NOTICE,
01238 "GJK intGetDataObjChksumsTimeStampsFromAVUVol2: input (%s) is data.",
01239 ptrInpColl->collName);
01240 }
01241 else
01242 {
01243 printf
01244 ("GJK-P P.21.0.3. in intGetDataObjChksumsTimeStampsFromAVUVol2(), chrPtr1=(%s), ptrInpColl->collName=(%s), iI=%d\n",
01245 chrPtr1, ptrInpColl->collName, iI);
01246 if ((iI = isColl (rei->rsComm, ptrInpColl->collName, NULL)) < 0)
01247 {
01248 rodsLog (LOG_ERROR,
01249 "iGetDataObjChksumsTimeStampsFromAVU: input object=(%s) is not data or collection. Exiting!",
01250 ptrInpColl->collName);
01251
01252 }
01253 else
01254 {
01255 rodsLog (LOG_ERROR,
01256 "GJK intGetDataObjChksumsTimeStampsFromAVUVol2: input (%s) is a collection.",
01257 ptrInpColl->collName);
01258 return (rei->status);
01259 }
01260 }
01261
01262
01263
01264 if (rei->rsComm == NULL)
01265 {
01266 rodsLog (LOG_ERROR, "GJKgetDataObjPSmeta: input rsComm is NULL");
01267 return (SYS_INTERNAL_NULL_INPUT_ERR);
01268 }
01269
01270 memset (&genQueryInp, 0, sizeof (genQueryInp_t));
01271
01272 i1a[0] = COL_META_DATA_ATTR_NAME;
01273 i1b[0] = 0;
01274 i1a[1] = COL_META_DATA_ATTR_VALUE;
01275 i1b[1] = 0;
01276 i1a[2] = COL_META_DATA_ATTR_UNITS;
01277 i1b[2] = 0;
01278 genQueryInp.selectInp.inx = i1a;
01279 genQueryInp.selectInp.value = i1b;
01280 genQueryInp.selectInp.len = 3;
01281
01282 strncpy (strAbsPath, ptrInpColl->collName, MAX_NAME_LEN);
01283 printf
01284 ("GJK-P P.14.0.11. in intGetDataObjChksumsTimeStampsFromAVUVol2(), strAbsPath=(%s), ptrInpColl->collName=(%s)\n",
01285 strAbsPath, ptrInpColl->collName);
01286
01287 iErr = splitPathByKey (strAbsPath, strDirName, strFileName, '/');
01288
01289 printf
01290 ("GJK-P P.14.0.12. in intGetDataObjChksumsTimeStampsFromAVUVol2(), strAbsPath=(%s), ptrInpColl->collName=(%s), strDirName=(%s), strFileName=(%s), iErr=%d\n",
01291 strAbsPath, ptrInpColl->collName, strDirName, strFileName, iErr);
01292
01293 i2a[0] = COL_COLL_NAME;
01294 sprintf (v1, "='%s'", strDirName);
01295 condVal[0] = v1;
01296
01297 i2a[1] = COL_DATA_NAME;
01298 sprintf (v2, "='%s'", strFileName);
01299 condVal[1] = v2;
01300
01301 i2a[3] = COL_DATA_SIZE;
01302
01303 condVal[3] = v3;
01304
01305
01306 genQueryInp.sqlCondInp.inx = i2a;
01307 genQueryInp.sqlCondInp.value = condVal;
01308 genQueryInp.sqlCondInp.len = 3;
01309
01310 if (attrName != NULL && *attrName != '\0')
01311 {
01312 i2a[2] = COL_META_DATA_ATTR_NAME;
01313 sprintf (v3, "= '%s'", attrName);
01314 condVal[2] = v3;
01315 genQueryInp.sqlCondInp.len++;
01316 }
01317
01318 genQueryInp.maxRows = 100;
01319 genQueryInp.continueInx = 0;
01320 genQueryInp.condInput.len = 0;
01321
01322 printf
01323 ("GJK-P P.14.0.13. in intGetDataObjChksumsTimeStampsFromAVUVol2(), strAbsPath=(%s), ptrInpColl->collName=(%s), v3=(%s), iErr=%d\n",
01324 strAbsPath, ptrInpColl->collName, v3, iErr);
01325
01326
01327 iErr = rsGenQuery (rei->rsComm, &genQueryInp, &genQueryOut);
01328
01329 printf
01330 ("GJK-P P.14.0.14. in intGetDataObjChksumsTimeStampsFromAVUVol2(), strAbsPath=(%s), ptrInpColl->collName=(%s), iErr=%d\n",
01331 strAbsPath, ptrInpColl->collName, iErr);
01332
01333 if (iErr == CAT_NO_ROWS_FOUND)
01334 {
01335 i1a[0] = COL_D_DATA_PATH;
01336 genQueryInp.selectInp.len = 1;
01337 iErr = rsGenQuery (rei->rsComm, &genQueryInp, &genQueryOut);
01338 if (iErr == 0)
01339 {
01340 printf ("GJK GJKgetDataObjPSmeta(), iErr=%d, None\n", iErr);
01341 return (0);
01342 }
01343 if (iErr == CAT_NO_ROWS_FOUND)
01344 {
01345
01346 rodsLog (LOG_NOTICE,
01347 "GJKgetDataObjPSmeta: DataObject %s not found. iErr = %d",
01348 strAbsPath, iErr);
01349 *iTotalAVUs = 0;
01350 return (0);
01351 }
01352 printCount += intFindChkSumDateAvuMetadataVol2 (iErr, genQueryOut, strAbsPath, aAVUarray, iTotalAVUs);
01353 }
01354 else
01355 {
01356 printCount += intFindChkSumDateAvuMetadataVol2 (iErr, genQueryOut, strAbsPath, aAVUarray, iTotalAVUs);
01357 }
01358
01359 while (iErr == 0 && genQueryOut->continueInx > 0)
01360 {
01361 genQueryInp.continueInx = genQueryOut->continueInx;
01362 iErr = rsGenQuery (rei->rsComm, &genQueryInp, &genQueryOut);
01363 printCount += intFindChkSumDateAvuMetadataVol2 (iErr, genQueryOut, strAbsPath, aAVUarray, iTotalAVUs);
01364 }
01365
01366 printf
01367 ("GJK-P P.14.1.15. in intGetDataObjChksumsTimeStampsFromAVUVol2(), strAbsPath=(%s), ptrInpColl->collName=(%s), iErr=%d, *iTotalAVUs=%d\n",
01368 strAbsPath, ptrInpColl->collName, iErr, *iTotalAVUs);
01369
01370 return (*iTotalAVUs);
01371 }