Index: /branches/haf_add201112/ippTasks/mergedvodb.pro
===================================================================
--- /branches/haf_add201112/ippTasks/mergedvodb.pro	(revision 32987)
+++ /branches/haf_add201112/ippTasks/mergedvodb.pro	(revision 32987)
@@ -0,0 +1,235 @@
+## addstar.pro : globals and support macros : -*- sh -*-
+## this file contains the tasks for running the addstar analysis stage
+## these tasks use the book addPendingExp
+
+# test for required global variables
+check.globals
+
+
+#There is a book for each task, because I don't use labels. 
+
+if (not($?havemergedvodbBooks))
+ book create MERGEDVODB
+ book create MERGEDVODB_MERGE
+  $havemergedvodbBooks = TRUE
+end
+
+$MERGEDVODB_DB = 0
+
+
+$MERGEDVODB_MERGE_DB = 0
+
+book init mergedvodbMergelist
+
+macro mergedvodb.merge.status
+  book listbook mergedvodbMergelist
+end
+
+macro mergedvodb.merge.reset
+  book init mergedvodbMergelist
+end
+
+macro mergedvodb.merge.on
+  task mergedvodb.merge.load
+    active true
+  end
+  task mergedvodb.merge.run
+    active true
+  end  
+end
+macro mergedvodb.merge.off
+  task mergedvodb.merge.load
+    active false
+  end
+  task mergedvodb.merge.run
+    active false
+  end  
+end
+
+## you get no choice - you add all of them in at the same time. you can always turn off the tasks you don't want to run.
+macro add.mergedvodb
+  if ($0 != 5)
+    echo "USAGE: add.mergedvodb (mergedvodb) (minidvodb_group) (camera)"
+    break
+  end
+
+  
+    #merge  
+  book newpage MERGEDVODB_MERGE $1
+  book setword MERGEDVODB_MERGE $1 MERGEDVODB $1
+  book setword MERGEDVODB_MERGE $1 MINIDVODB_GROUP $2
+  book setword MERGEDVODB_MERGE $1 STATE PENDING
+
+end
+
+macro del.mergedvodb
+  if ($0 != 2)
+    echo "USAGE: del.mergedvodb (mergedvodb)"
+    break
+  end
+  book delpage MERGEDVODB_MERGE $1
+end
+
+macro show.mergedvodb
+  if ($0 != 1)
+    echo "USAGE: show.mergedvodb"
+    break
+  end
+  echo "mergedvodb merge"
+  book listbook MERGEDVODB_MERGE
+end
+
+
+task           mergedvodb.merge.load
+  host         local
+
+  periods      -poll $LOADPOLL
+  periods      -exec $LOADEXEC
+  periods      -timeout 30
+  npending     1
+
+  stdout NULL
+  stderr $LOGDIR/mergedvodb.merge.load.log
+
+  task.exec
+    book npages MERGEDVODB_MERGE -var N
+    if ($N == 0)
+#      echo "No labels for processing"
+      break
+    endif
+
+    book getpage MERGEDVODB_MERGE 0 -var mergedvodb -key STATE NEW
+    if ("$mergedvodb" == "NULL")
+      # All labels have been done --- reset
+#      echo "Resetting labels"
+      for i 0 $N
+        book getpage MERGEDVODB_MERGE $i -var mergedvodb
+        book setword MERGEDVODB_MERGE $mergedvodb STATE NEW
+      end
+      book getpage MERGEDVODB_MERGE 0 -var mergedvodb -key STATE NEW
+
+      # Select different database
+      $MERGEDVODB_DB ++
+      if ($MERGEDVODB_DB >= $DB:n) set MERGEDVODB_DB = 0
+    end
+    #finds the minidvodbs in a state of 'to_be_merged' 
+    book setword MERGEVODB_MERGE $mergedvodb STATE DONE
+    $run = mergetool -pendingmerge -limit 1
+    $run = $run -mergedvodb $mergedvodb
+    if ($DB:n == 0)
+      option DEFAULT
+    else
+      # save the DB name for the exit tasks
+      option $DB:$MERGEDVODB_DB
+      $run = $run -dbname $DB:$MERGEDVODB_DB
+      $MERGEDVODB_DB ++
+      if ($MERGEDVODB_DB >= $DB:n) set MERGEDVODB_DB = 0
+    end
+    add_poll_args run
+   
+    command $run
+  end
+
+  # success
+  task.exit    0
+    # convert 'stdout' to book format
+    ipptool2book stdout mergedvodbMergelist -key merge_id -uniq -setword dbname $options:0 -setword pantaskState INIT
+    if ($VERBOSE > 2)
+      book listbook mergedvodbMergelist
+    end
+    # delete existing entries in the appropriate pantaskStates
+    process_cleanup mergedvodbMergelist
+  end
+
+  # locked list
+  task.exit    default
+    showcommand failure
+  end
+
+  task.exit    crash
+    showcommand crash
+  end
+
+  # operation times out?
+  task.exit    timeout
+    showcommand timeout
+  end
+end
+
+
+
+
+task           mergedvodb.merge.run
+  periods      -poll $RUNPOLL
+  periods      -exec $RUNEXEC
+  periods      -timeout 60000
+  
+  #we only want one running at a time
+
+  host         local
+  npending     1
+
+  task.exec
+    # if we are unable to run the 'exec', use a long retry time
+    periods -exec $RUNEXEC
+
+    book npages mergedvodbMergelist -var N
+    if ($N == 0) break
+    
+    # look for new images in minidvodbWaitlist (pantaskState == INIT)
+    book getpage mergedvodbMergelist 0 -var pageName -key pantaskState INIT
+    if ("$pageName" == "NULL") break
+
+    book setword mergedvodbMergelist $pageName pantaskState RUN
+    book getword mergedvodbMergelist $pageName merge_id -var MERGE_ID
+    book getword mergedvodbMergelist $pageName mergedvodb -var MERGEDVODB_GROUP
+    book getword mergedvodbMergelist $pageName mergedvodb_path -var MERGEDVODB_PATH
+    book getword mergedvodbMergelist $pageName minidvodb_path -var MINIDVODB_PATH
+    book getword mergedvodbMergelist $pageName state -var STATE
+    stdout $LOGDIR/mergedvodb.merge.run.log
+    stderr $LOGDIR/mergedvodb.merge.run.log
+
+    $run = mergedvodb_merge.pl --camera GPC1 --mergedvodb $MERGEDVODB_PATH --minidvodb $MINIDVODB_PATH --mergedvodb $MERGEDVODB --merged_id $MERGE_ID
+    
+  if ($DB:n == 0)
+      option DEFAULT
+    else
+      # save the DB name for the exit tasks
+      option $DB:$MERGEDVODB_DB
+      $run = $run --dbname $DB:$MERGEDVODB_DB
+      $MERGEDVODB_DB ++
+      if ($MERGEDVODB_DB >= $DB:n) set MERGEDVODB_DB = 0
+    end
+  # save the pageName for future reference below
+    options $pageName
+
+    # create the command line
+    if ($VERBOSE > 1)
+      echo command $run
+    end
+    # if we are unable to run the 'exec', use a long retry time
+    periods -exec 0.05
+    command $run
+  end
+  # default exit status
+    task.exit    default
+    process_exit mergedvodbMergelist $options:0 $JOB_STATUS
+  end
+
+  # locked list
+  task.exit    crash
+  
+    echo "hostname: $JOB_HOSTNAME"
+
+    # Set a fault code in the database
+    
+    process_exit mergedvodbMergelist $options:0 $EXIT_CRASH_ERR
+  end
+
+  # operation timed out?
+    task.exit    timeout
+	showcommand timeout
+    book setword mergedvodbMergelist $options:0 pantaskState TIMEOUT
+  end
+end
+
Index: /branches/haf_add201112/ippTasks/survey.pro
===================================================================
--- /branches/haf_add201112/ippTasks/survey.pro	(revision 32986)
+++ /branches/haf_add201112/ippTasks/survey.pro	(revision 32987)
@@ -3,22 +3,4 @@
 # test for required global variables
 check.globals
-
-# there is a bug in 'getbook', use a different method below
-# book getbook SURVEY_DIFF -var isBook
-# if ("$isBook" != "SURVEY_DIFF")
-#   book create SURVEY_DIFF
-# end
-# book getbook SURVEY_MAGIC -var isBook
-# if ("$isBook" == "NULL")
-#   book create SURVEY_MAGIC
-# end
-# book getbook SURVEY_DESTREAK -var isBook
-# if ("$isBook" == "NULL")
-#   book create SURVEY_DESTREAK
-# end
-# book getbook SURVEY_DIST -var isBook
-# if ("$isBook" == "NULL")
-#   book create SURVEY_DIST
-# end
 
 if (not($?haveSurveyBooks))
@@ -30,4 +12,5 @@
  book create SURVEY_DIST
  book create SURVEY_ADDSTAR   
+ book create SURVEY_MERGEDVODB
  book create SURVEY_CHIP_BG
  book create SURVEY_WARP_BG
@@ -44,4 +27,5 @@
 $SURVEY_DIST_DB = 0
 $SURVEY_ADDSTAR_DB = 0
+$SURVEY_MERGEDVODB_DB = 0
 $SURVEY_CHIP_BG_DB = 0
 $SURVEY_WARP_BG_DB = 0
@@ -68,4 +52,7 @@
     active true
   end
+  task survey.mergedvodb
+    active true
+  end
   task survey.destreak
     active true
@@ -104,4 +91,7 @@
     active false
   end
+  task survey.mergedvodb
+    active false
+  end  
   task survey.destreak
     active false
@@ -270,4 +260,31 @@
   book listbook SURVEY_ADDSTAR
 end
+
+macro survey.add.mergedvodb
+  if ($0 != 4)
+    echo "USAGE: survey.add.mergedvodb (tag) (mergedvodb) (minidvodb_group)"
+    break
+  end
+  book newpage SURVEY_MERGEDVODB $1
+  book setword SURVEY_MERGEDVODB $1 MERGEDVOD $2
+  book setword SURVEY_MERGEDVODB $1 MINIDVODB_GROUP $3
+end
+
+macro survey.del.mergedvodb
+  if ($0 != 2)
+    echo "USAGE: survey.del.mergedvodb (tag)"
+    break
+  end
+  book delpage SURVEY_MERGEDVODB $1
+end
+
+macro survey.show.mergedvodb
+  if ($0 != 1)
+    echo "USAGE: survey.show.mergedvodb"
+    break
+  end
+  book listbook SURVEY_MERGEDVODB
+end
+
 
 # user functions to manipulate destreak labels
@@ -876,4 +893,79 @@
   end
 end
+
+
+task survey.mergedvodb
+  host local
+ 
+  periods      -poll $SURVEY_POLL
+  periods      -exec $SURVEY_EXEC
+  periods      -timeout $SURVEY_TIMEOUT
+  npending     1
+
+  stdout $LOGDIR/survey.mergedvodb.log
+  stderr $LOGDIR/survey.mergedvodb.log
+
+  task.exec
+    book npages SURVEY_MERGEDVODB -var N
+    if ($N == 0)
+#      echo "No labels for processing"
+      break
+    endif
+
+    book getpage SURVEY_MERGEDVODB 0 -var tag -key STATE NEW
+    if ("$tag" == "NULL")
+      # All labels have been done --- reset
+    # echo "Resetting labels"
+      for i 0 $N
+        book getpage SURVEY_MERGEDVODB $i -var tag
+	book setword SURVEY_MERGEDVODB $tag STATE NEW
+      end
+      book getpage SURVEY_MERGEDVODB 0 -var tag -key STATE NEW
+
+      # Select different database
+      $SURVEY_MERGEDVODB_DB ++
+      if ($SURVEY_MERGEDVODB_DB >= $DB:n) set SURVEY_MERGEDVODB_DB = 0
+    end
+   book setword SURVEY_MERGEDVODB $tag STATE DONE
+   book getword SURVEY_MERGEDVODB $tag MERGEDVODB -var mergedvodb
+   book getword SURVEY_MERGEDVODB $tag MINIDVODB_GROUP -var minidvodb_group
+     
+ #   $run = addtool -definebyquery -destreaked -label $label -set_dvodb $dbodb
+    $run = mergetool 
+    if ($DB:n == 0)
+      option DEFAULT
+    else
+      $run = $run -dbname $DB:$SURVEY_MERGEDVODB_DB
+      option $DB:$SURVEY_MERGEDVODB_DB
+    end
+    
+    $run = $run -definebyquery -mergedvodb $mergedvodb -minidvodb_group $minidvodb_group 
+    # echo $run
+
+  echo $run
+    command $run
+  end
+
+  # success
+   
+  task.exit    0
+#    echo "Success"
+  end
+
+  # locked list
+  task.exit    default
+    showcommand failure
+  end
+
+  task.exit    crash
+    showcommand crash
+  end
+
+  # operation times out?
+  task.exit    timeout
+    showcommand timeout
+  end
+end
+
 
 
