Changeset 29441
- Timestamp:
- Oct 15, 2010, 7:31:09 PM (16 years ago)
- Location:
- branches/haf_branches/ipp.rsync.20101015/ippTools
- Files:
-
- 2 added
- 5 edited
-
share/Makefile.am (modified) (1 diff)
-
share/minidvodbtool_find_minidvodbcopy.sql (added)
-
share/minidvodbtool_queue_minidvodb_id.sql (added)
-
share/minidvodbtool_revertminidvodbcopy.sql (modified) (1 diff)
-
src/minidvodbtool.c (modified) (15 diffs)
-
src/minidvodbtool.h (modified) (1 diff)
-
src/minidvodbtoolConfig.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/haf_branches/ipp.rsync.20101015/ippTools/share/Makefile.am
r29440 r29441 265 265 magicdstool_torevert_diff.sql \ 266 266 minidvodbtool_find_minidvodb_id_dvo.sql \ 267 minidvodbtool_find_minidvodbcopy.sql \ 267 268 minidvodbtool_revertminidvodbcopy.sql \ 268 269 pstamptool_completedreq.sql \ -
branches/haf_branches/ipp.rsync.20101015/ippTools/share/minidvodbtool_revertminidvodbcopy.sql
r29440 r29441 1 DELETE minidvodbCopy2 SETstate = 'new',3 SET fault = 01 UPDATE minidvodbCopy 2 -- SET minidvodbCopy.state = 'new', 3 SET minidvodbCopy.fault = 0 4 4 WHERE 5 5 minidvodbCopy.state = 'new' 6 6 AND minidvodbCopy.fault >0 7 AND addRun.state = 'new' 7 -
branches/haf_branches/ipp.rsync.20101015/ippTools/src/minidvodbtool.c
r29440 r29441 32 32 33 33 static bool definebyqueryMode(pxConfig *config); 34 static bool addminidvodbcopyMode(pxConfig *config);35 34 static bool listminidvodbcopyMode(pxConfig *config); 36 35 static bool revertminidvodbcopyMode(pxConfig *config); … … 58 57 switch (config->mode) { 59 58 MODECASE(ADDTOOL_MODE_DEFINEBYQUERY, definebyqueryMode); 60 MODECASE(ADDTOOL_MODE_ADDMINIDVODBCOPY, addminidvodbcopyMode);61 59 MODECASE(ADDTOOL_MODE_LISTMINIDVODBCOPY, listminidvodbcopyMode); 62 60 MODECASE(ADDTOOL_MODE_REVERTMINIDVODBCOPY, revertminidvodbcopyMode); … … 252 250 253 251 254 static bool addminidvodbcopyMode(pxConfig *config) {255 256 PS_ASSERT_PTR_NON_NULL(config, false);257 258 // required259 PXOPT_LOOKUP_U64(minidvodb_id, config->args, "-minidvodb_id", true, false);260 PXOPT_LOOKUP_STR(mergedvodb_path, config->args, "-mergedvodb_path", true, false);261 PXOPT_LOOKUP_STR(minidvodb_group, config->args, "-minidvodb_group", true, false);262 263 // optional264 PXOPT_LOOKUP_U64(merge_order, config->args, "-merge_order", false, false);265 PXOPT_LOOKUP_F32(dtime_relphot, config->args, "-dtime_relphot", false, false);266 PXOPT_LOOKUP_F32(dtime_resort, config->args, "-dtime_resort", false, false);267 PXOPT_LOOKUP_F32(dtime_merge, config->args, "-dtime_merge", false, false);268 PXOPT_LOOKUP_TIME(epoch, config->args, "-epoch", false, false);269 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false);270 //generate restrictions271 psMetadata *where = psMetadataAlloc();272 PXOPT_COPY_S64(config->args, where, "-minidvodb_id", "minidvodbRun.minidvodb_id", "==");273 274 275 if (!psDBTransaction(config->dbh)) {276 psError(PS_ERR_UNKNOWN, false, "database error");277 return false;278 }279 280 281 psString query = pxDataGet("addtool_find_pendingmergeprocess.sql");282 if (!query) {283 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");284 return false;285 }286 // use psDBGenerateWhereSQL because the SQL yields an intermediate table287 if (psListLength(where->list)) {288 psString whereClaus = psDBGenerateWhereConditionSQL(where, NULL);289 psStringAppend(&query, " AND %s", whereClaus);290 psFree(whereClaus);291 }292 psFree(where);293 294 if (!p_psDBRunQuery(config->dbh, query)) {295 psError(PS_ERR_UNKNOWN, false, "database error");296 psFree(query);297 return false;298 }299 psFree(query);300 301 psArray *output = p_psDBFetchResult(config->dbh);302 if (!output) {303 psError(PS_ERR_UNKNOWN, false, "database error");304 return false;305 }306 if (!psArrayLength(output)) {307 psTrace("addtool", PS_LOG_INFO, "no rows found");308 psFree(output);309 return true;310 }311 /*312 minidvodbRunRow *pendingRow = minidvodbRunObjectFromMetadata(output->data[0]);313 psFree(output); */314 /* minidvodbCopyRow *row = minidvodbCopyRowAlloc(315 pendingRow->minidvodb_id,316 merge_order,317 dtime_resort,318 dtime_relphot,319 dtime_merge,320 epoch,321 mergedvodb_path,322 fault323 );324 325 if (!minidvodbCopyInsertObject(config->dbh, row)) {326 // rollback327 if (!psDBRollback(config->dbh)) {328 psError(PS_ERR_UNKNOWN, false, "database error");329 }330 psError(PS_ERR_UNKNOWN, false, "database error");331 psFree(row);332 psFree(pendingRow);333 return false;334 }335 336 337 */338 /*339 //this finds the # of merged things (for the merge order)340 psString query3 = NULL;341 psStringAppend(&query3, "select count(*) from minidvodbRun join minidvodbCopy using (minidvodb_id) where state = 'merged' and minidvodb_group = '%s';", minidvodb_group);342 343 if (!p_psDBRunQuery(config->dbh, query3)) {344 // rollback345 if (!psDBRollback(config->dbh)) {346 psError(PS_ERR_UNKNOWN, false, "database error");347 }348 psError(PS_ERR_UNKNOWN, false, "database error");349 psFree(query3);350 return false;351 }352 psArray *output2 = p_psDBFetchResult(config->dbh);353 if (!output2) {354 psError(PS_ERR_UNKNOWN, false, "database error");355 return false;356 }357 if (!psArrayLength(output2)) {358 psTrace("addtool", PS_LOG_INFO, "no rows found");359 psFree(output);360 return true;361 }362 bool status;363 psS64 m_order = psMetadataLookupS64(&status, output2->data[0], "count(*)");364 if (!status) {365 366 psAbort("failed to lookup value for count column");367 return false;368 }369 psString final = NULL;370 psStringAppend(&final, "%" PRIu64, m_order);371 //return false;372 psFree(query3);373 psFree(output2);374 375 376 377 //update the merge_order378 379 psString query4 = NULL;380 psStringAppend(&query4, "update minidvodbCopy set merge_order = %"PRIu64,m_order);381 psStringAppend(&query4," where minidvodb_id = %" PRIu64, minidvodb_id);382 printf("%s", query4);383 if (!p_psDBRunQuery(config->dbh, query4)) {384 // rollback385 if (!psDBRollback(config->dbh)) {386 psError(PS_ERR_UNKNOWN, false, "database error");387 }388 psError(PS_ERR_UNKNOWN, false, "database error");389 psFree(query4);390 return false;391 }392 //393 psFree(query4);394 395 396 397 // since there is only one exp per 'new' set mindvodbRun.state = 'merged'398 399 psString query2 = NULL ;400 psStringAppend(&query2, "UPDATE minidvodbRun SET state = 'merged' WHERE minidvodb_id = %'" PRIu64, row->minidvodb_id);401 402 if (!p_psDBRunQuery(config->dbh, query2)) {403 // rollback404 if (!psDBRollback(config->dbh)) {405 psError(PS_ERR_UNKNOWN, false, "database error");406 }407 psError(PS_ERR_UNKNOWN, false, "database error");408 psFree(query2);409 return false;410 }411 412 413 414 415 416 417 418 419 psFree(row);420 psFree(pendingRow);421 422 423 424 425 426 //commit the changes427 if (!psDBCommit(config->dbh)) {428 psError(PS_ERR_UNKNOWN, false, "database error");429 return false;430 }431 432 433 //print the merge_order (why not!)434 printf("%s", final);435 psFree(final);436 */437 return true;438 }439 440 441 442 252 static bool listminidvodbcopyMode(pxConfig *config) { 443 253 psMetadata *where = psMetadataAlloc(); 444 254 PXOPT_COPY_S64(config->args, where, "-minidvodb_id", "minidvodbCopy.minidvodb_id", "=="); 445 PXOPT_COPY_STR(config->args, where, "-minidvodb _name", "minidvodbCopy.minidvodb_name", "==");446 PXOPT_COPY_STR(config->args, where, "- minidvodb_group", "minidvodbCopy.minidvodb_group", "==");255 PXOPT_COPY_STR(config->args, where, "-minidvodbcopy_id", "minidvodbCopy.minidvodbcopy_id", "=="); 256 PXOPT_COPY_STR(config->args, where, "-destination_host", "minidvodbCopy.destination_host", "=="); 447 257 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 448 258 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); … … 454 264 } 455 265 456 psString query = pxDataGet(" addtool_find_minidvodbcopy.sql");266 psString query = pxDataGet("minidvodbtool_find_minidvodbcopy.sql"); 457 267 if (!query) { 458 268 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); … … 486 296 487 297 // order by epoch 488 psStringAppend(&query, " ORDER BY minidvodb _id");298 psStringAppend(&query, " ORDER BY minidvodbcopy_id"); 489 299 490 300 // treat limit == 0 as "no limit" … … 496 306 497 307 if (!p_psDBRunQuery(config->dbh, query)) { 498 psError(PS_ERR_UNKNOWN, false, "database error ");308 psError(PS_ERR_UNKNOWN, false, "database error %s ", query); 499 309 psFree(query); 500 310 return false; … … 531 341 PS_ASSERT_PTR_NON_NULL(config, false); 532 342 PXOPT_COPY_S64(config->args, where, "-minidvodbcopy_id", "minidvodbCopy.minidvodbcopy_id", "=="); 533 PXOPT_COPY_STR(config->args, where, "-destination_host", "destination host", "=="); 343 PXOPT_COPY_S64(config->args, where, "-minidvodb_id", "minidvodbCopy.minidvodb_id", "=="); 344 PXOPT_COPY_STR(config->args, where, "-destination_host", "destination_host", "=="); 534 345 535 346 if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) { … … 546 357 547 358 { 548 psString query = pxDataGet(" addtool_revertminidvodbcopy.sql");359 psString query = pxDataGet("minidvodbtool_revertminidvodbcopy.sql"); 549 360 if (!query) { 550 361 // rollback … … 567 378 // rollback 568 379 if (!psDBRollback(config->dbh)) { 569 psError(PS_ERR_UNKNOWN, false, "database error ");380 psError(PS_ERR_UNKNOWN, false, "database error %s", query); 570 381 } 571 psError(PS_ERR_UNKNOWN, false, "database error ");382 psError(PS_ERR_UNKNOWN, false, "database error %s", query ); 572 383 psFree(query); 573 384 psFree(where); … … 621 432 psString comma = ","; 622 433 if (set_fault) { 623 psStringAppend(&query, " fault = %d", set_fault);434 psStringAppend(&query, " minidvodbCopy.fault = %d", set_fault); 624 435 cnt++; 625 436 } … … 630 441 } 631 442 632 psStringAppend(&query, " minidvodb _rsync_path = %s" , set_rsync_path);443 psStringAppend(&query, " minidvodbCopy.minidvodb_rsync_path = '%s'" , set_rsync_path); 633 444 cnt++; 634 445 } … … 639 450 } 640 451 641 psStringAppend(&query, " destination_host = %s" , set_host);452 psStringAppend(&query, " minidvodbCopy.destination_host = '%s'" , set_host); 642 453 cnt++; 643 454 } … … 649 460 } 650 461 651 psStringAppend(&query, " state = %s" , set_state);462 psStringAppend(&query, " minidvodbCopy.state = '%s'" , set_state); 652 463 cnt++; 653 464 } … … 657 468 psStringAppend(&query, "%s", comma); 658 469 } 659 psStringAppend(&query, " dtime = %f", dtime);470 psStringAppend(&query, " minidvodbCopy.dtime = %f", dtime); 660 471 cnt++; 661 472 } … … 667 478 668 479 if (!p_psDBRunQuery(config->dbh, query)) { 669 psError(PS_ERR_UNKNOWN, false, "database error");480 psError(PS_ERR_UNKNOWN, false, "database error %s", query); 670 481 psFree(query); 671 482 return false; -
branches/haf_branches/ipp.rsync.20101015/ippTools/src/minidvodbtool.h
r29435 r29441 26 26 ADDTOOL_MODE_NONE = 0x0, 27 27 ADDTOOL_MODE_DEFINEBYQUERY, 28 ADDTOOL_MODE_ADDMINIDVODBCOPY,29 28 ADDTOOL_MODE_LISTMINIDVODBCOPY, 30 29 ADDTOOL_MODE_REVERTMINIDVODBCOPY, -
branches/haf_branches/ipp.rsync.20101015/ippTools/src/minidvodbtoolConfig.c
r29440 r29441 60 60 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 61 61 62 psMetadata *addminidvodbcopyArgs = psMetadataAlloc();63 psMetadataAddU64(addminidvodbcopyArgs, PS_LIST_TAIL, "-minidvodb_id", 0, "define minidvodb_id (required)", 0);64 psMetadataAddU64(addminidvodbcopyArgs, PS_LIST_TAIL, "-merge_order", 0, "define merge order", 0);65 psMetadataAddF32(addminidvodbcopyArgs, PS_LIST_TAIL, "-dtime_relphot", 0, "define elapsed time for relphot (seconds)", NAN);66 psMetadataAddF32(addminidvodbcopyArgs, PS_LIST_TAIL, "-dtime_resort", 0, "define elapsed time for resort (seconds)", NAN);67 psMetadataAddF32(addminidvodbcopyArgs, PS_LIST_TAIL, "-dtime_merge", 0, "define elapsed time for DVO merge (seconds)", NAN);68 psMetadataAddTime(addminidvodbcopyArgs, PS_LIST_TAIL, "-epoch", 0, "time merge is finished", NULL);69 psMetadataAddStr(addminidvodbcopyArgs, PS_LIST_TAIL, "-mergedvodb_path",0, "path of merged dvodb", NULL);70 psMetadataAddStr(addminidvodbcopyArgs, PS_LIST_TAIL, "-minidvodb_group",0, "minidvodb_group", NULL);71 psMetadataAddS16(addminidvodbcopyArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0);72 73 62 psMetadata *listminidvodbcopyArgs = psMetadataAlloc(); 74 63 psMetadataAddU64(listminidvodbcopyArgs, PS_LIST_TAIL, "-minidvodb_id", 0, "search by minidvodb_id", 0); 75 psMetadataAddStr(listminidvodbcopyArgs, PS_LIST_TAIL, "-minidvodb _name", 0, "search by minidvodb_name", NULL);76 psMetadataAddStr(listminidvodbcopyArgs, PS_LIST_TAIL, "- minidvodb_group", 0, "search by minidvodb.minidvodb_group", NULL);64 psMetadataAddStr(listminidvodbcopyArgs, PS_LIST_TAIL, "-minidvodbcopy_id", 0, "search by minidvodb_name", NULL); 65 psMetadataAddStr(listminidvodbcopyArgs, PS_LIST_TAIL, "-destination_host", 0, "search by minidvodb.minidvodb_group", NULL); 77 66 psMetadataAddU64(listminidvodbcopyArgs, PS_LIST_TAIL, "-limit", 0, "limit to N items", 0); 78 67 psMetadataAddBool(listminidvodbcopyArgs, PS_LIST_TAIL, "-simple", 0, "simple output", false); … … 81 70 psMetadata *revertminidvodbcopyArgs = psMetadataAlloc(); 82 71 psMetadataAddU64(revertminidvodbcopyArgs, PS_LIST_TAIL, "-minidvodbcopy_id", 0, "search by minidvodbcopy_id", 0); 83 psMetadataAddStr(revertminidvodbcopyArgs, PS_LIST_TAIL, "-destination host", 0, "search by destination_host", NULL); 72 psMetadataAddU64(revertminidvodbcopyArgs, PS_LIST_TAIL, "-minidvodb_id", 0, "search by minidvodb_id", 0); 73 psMetadataAddStr(revertminidvodbcopyArgs, PS_LIST_TAIL, "-destination_host", 0, "search by destination_host", NULL); 84 74 85 75 psMetadata *updateminidvodbcopyArgs = psMetadataAlloc(); … … 103 93 104 94 PXOPT_ADD_MODE("-definebyquery", "create runs from cam stage", ADDTOOL_MODE_DEFINEBYQUERY, definebyqueryArgs); 105 PXOPT_ADD_MODE("-addminidvodbcopy","add a copy minidvodb", ADDTOOL_MODE_ADDMINIDVODBCOPY, addminidvodbcopyArgs); 106 PXOPT_ADD_MODE("-listminidvodbcopy","list copy minidvodbs", ADDTOOL_MODE_LISTMINIDVODBCOPY, listminidvodbcopyArgs); 95 PXOPT_ADD_MODE("-listminidvodbcopy","list copy minidvodbs", ADDTOOL_MODE_LISTMINIDVODBCOPY, listminidvodbcopyArgs); 107 96 PXOPT_ADD_MODE("-revertminidvodbcopy","revert copy minidvobs", ADDTOOL_MODE_REVERTMINIDVODBCOPY, revertminidvodbcopyArgs); 108 97 PXOPT_ADD_MODE("-updateminidvodbcopy","change minidvodb copy properties",ADDTOOL_MODE_UPDATEMINIDVODBCOPY, updateminidvodbcopyArgs);
Note:
See TracChangeset
for help on using the changeset viewer.
