Index: /branches/haf_branches/ipp.20100512/ippTasks/Makefile.am
===================================================================
--- /branches/haf_branches/ipp.20100512/ippTasks/Makefile.am	(revision 28100)
+++ /branches/haf_branches/ipp.20100512/ippTasks/Makefile.am	(revision 28101)
@@ -31,4 +31,5 @@
 	dqstats.pro \
 	science.cleanup.pro \
+	minidvodb.pro \
 	nightly_stacks.pro \
 	lossy_compress.pro
Index: /branches/haf_branches/ipp.20100512/ippTasks/minidvodb.pro
===================================================================
--- /branches/haf_branches/ipp.20100512/ippTasks/minidvodb.pro	(revision 28100)
+++ /branches/haf_branches/ipp.20100512/ippTasks/minidvodb.pro	(revision 28101)
@@ -6,27 +6,340 @@
 check.globals
 
-book init minidvodbPending
-
-macro minidvodb.status
-  book listbook minidvodbPending
-end
-
-macro minidvodb.reset
-  book init minidvodbPending
-end
+if (not($?haveBooks))
+ book create MINIDVODB
+ $haveBooks = TRUE
+end
+if (not($?haveSurveyBooks))
+ book create SURVEY_MINIDVODB
+ $haveSurveyBooks = TRUE
+end
+$MINIDVODB_DB = 0
+
+$MINIDVODB_WAIT_DB = 0
+
+book init minidvodbWaitlist
+
+macro minidvodb.wait.status
+  book listbook minidvodbWaitlist
+end
+
+macro minidvodb.wait.reset
+  book init minidvodbWaitlist
+end
+
+
 
 macro minidvodb.create.on
-  task minidvodb.create
+  task minidvodbcreate
     active true
   end
 end
 macro minidvodb.create.off
-  task minidvodb.create
+  task minidvodbcreate
     active false
   end
 end
 
-# this variable will cycle through the known database names
-
-$minidvodb_DB = 0
-$minidvodb_revert_DB = 0
+
+##these are the tasks that check to see if addRun processing is finished
+##for a minidvodb in state wait
+macro minidvodb.wait.on
+  task minidvodb.wait.load
+    active true
+  end
+  task minidvodb.wait.run
+    active true
+  end  
+end
+macro minidvodb.wait.off
+  task minidvodb.wait.load
+    active false
+  end
+  task minidvodb.wait.run
+    active false
+  end  
+end
+
+
+## at some point, I need to add/separate the ones for the survey task  
+macro add.minidvodb
+  if ($0 != 3)
+    echo "USAGE: add.minidvodb (minidvodb_group) (dvodb)"
+    break
+  end
+  book newpage MINIDVODB $1
+  book setword MINIDVODB $1 MINIDVODB_GROUP $1
+  book setword MINIDVODB $1 DVODB $2
+  book setword MINIDVODB $1 STATE PENDING
+end
+
+macro del.minidvodb
+  if ($0 != 2)
+    echo "USAGE: del.minidvodb (minidvodb)"
+    break
+  end
+  book delpage MINIDVODB $1
+end
+
+macro show.minidvodb
+  if ($0 != 1)
+    echo "USAGE: show.minidvodb"
+    break
+  end
+  book listbook MINIDVODB
+end
+
+
+task           minidvodb.wait.load
+  host         local
+
+  periods      -poll $LOADPOLL
+  periods      -exec $LOADEXEC
+  periods      -timeout 30
+  npending     1
+
+  stdout NULL
+  stderr $LOGDIR/minidvodb.wait.run.log
+
+  task.exec
+    book npages MINIDVODB -var N
+    if ($N == 0)
+#      echo "No labels for processing"
+      break
+    endif
+
+    book getpage MINIDVODB 0 -var minidvodb_group -key STATE NEW
+    if ("$minidvodb_group" == "NULL")
+      # All labels have been done --- reset
+#      echo "Resetting labels"
+      for i 0 $N
+        book getpage MINIDVODB $i -var minidvodb_group
+        book setword MINIDVODB $minidvodb_group STATE NEW
+      end
+      book getpage MINIDVODB 0 -var minidvodb_group -key STATE NEW
+
+      # Select different database
+      $MINIDVODB_DB ++
+      if ($MINIDVODB_DB >= $DB:n) set MINIDVODB_DB = 0
+    end
+
+
+
+
+    
+    $run = addtool -checkminidvodbrunaddrun -state waiting
+    $run = $run -minidvodb_group $minidvodb_group
+    if ($DB:n == 0)
+      option DEFAULT
+    else
+      # save the DB name for the exit tasks
+      option $DB:$MINIDVODB_DB
+      $run = $run -dbname $DB:$MINIDVODB_DB
+      $MINIDVODB_DB ++
+      if ($MINIDVODB_DB >= $DB:n) set MINIDVODB_DB = 0
+    end
+    add_poll_args run
+   
+    command $run
+  end
+
+  # success
+  task.exit    0
+    # convert 'stdout' to book format
+    ipptool2book stdout minidvodbWaitlist -key minidvodb_id -uniq -setword dbname $options:0 -setword pantaskState INIT
+    if ($VERBOSE > 2)
+      book listbook minidvodbWaitlist
+    end
+    # delete existing entries in the appropriate pantaskStates
+    process_cleanup minidvodbWaitlist
+  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
+
+
+
+# run the chip_imfile.pl script on pending images
+task           minidvodb.wait.run
+  periods      -poll $RUNPOLL
+  periods      -exec $RUNEXEC
+  periods      -timeout 60
+
+  task.exec
+    # if we are unable to run the 'exec', use a long retry time
+    periods -exec $RUNEXEC
+
+    book npages minidvodbWaitlist -var N
+    if ($N == 0) break
+    if ($NETWORK == 0) break
+    if ($BURNTOOLING == 1) break
+    
+    # look for new images in minidvodbWaitlist (pantaskState == INIT)
+    book getpage minidvodbWaitlist 0 -var pageName -key pantaskState INIT
+    if ("$pageName" == "NULL") break
+
+    book setword minidvodbWaitlist $pageName pantaskState RUN
+    book getword minidvodbWaitlist $pageName minidvodb_id -var MINIDVODB_ID
+    book getword minidvodbWaitlist $pageName state -var STATE
+    stdout $LOGDIR/minidvodb.wait.run.log
+    stderr $LOGDIR/minidvodb.wait.run.log
+
+    $run = addtool -updateminidvodbrun -minidvodb_id $MINIDVODB_ID -set_state to_be_merged  
+    
+   
+if ($DB:n == 0)
+      option DEFAULT
+    else
+      # save the DB name for the exit tasks
+      option $DB:$MINIDVODB_DB
+      $run = $run -dbname $DB:$MINIDVODB_DB
+      $MINIDVODB_DB ++
+      if ($MINIDVODB_DB >= $DB:n) set MINIDVODB_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 minidvodbWaitlist $options:0 $JOB_STATUS
+  end
+
+  # locked list
+  task.exit    crash
+    ### Getting a lot of chip crashes (no idea why), so remove verbosity for now
+    #showcommand crash
+    echo "hostname: $JOB_HOSTNAME"
+
+    # Set a fault code in the database
+    
+    process_exit minidvodbWaitlist $options:0 $EXIT_CRASH_ERR
+  end
+
+  # operation timed out?
+    task.exit    timeout
+	showcommand timeout
+    book setword minidvodbWaitlist $options:0 pantaskState TIMEOUT
+  end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+task minidvodbcreate
+  host local
+ 
+  periods      -poll 10
+  periods      -exec 12000000000000
+  periods      -timeout 30
+    
+   npending     1
+task.exec   
+active false
+
+  stdout $LOGDIR/minidvodb.create.log
+  stderr $LOGDIR/minidvodb.create.log
+
+  # generate diff warp-warp runs
+  #task.exec
+    book npages MINIDVODB -var N
+    if ($N == 0)
+#      echo "No minidvodbs for processing"
+      break
+    endif
+
+    book getpage MINIDVODB 0 -var minidvodb -key STATE NEW
+    if ("$minidvodb" == "NULL")
+      # All labels have been done --- reset
+#      echo "Resetting labels"
+      for i 0 $N
+        book getpage MINIDVODB $i -var label
+        book setword MINIDVODB $minidvodb STATE NEW
+      end
+      book getpage MINIDVODB 0 -var minidvodb -key STATE NEW
+
+      # Select different database
+      $MINIDVODB_DB ++
+      if ($MINIDVODB_DB >= $DB:n) set MINIDVODB_DB = 0
+    end
+
+    book setword MINIDVODB $minidvodb STATE DONE
+    book getword MINIDVODB $minidvodb DVODB -var dvodb
+    
+    $run = minidvodb_createdb.pl 
+    $run = $run --camera GPC1
+    $run = $run --dvodb $dvodb
+    $run = $run --minidvodb_group $minidvodb_group
+    $run = $run --outroot $dvodb
+    $run = $run --redirect-output
+    if ($DB:n == 0)
+      option DEFAULT
+    else
+      $run = $run --dbname $DB:$MINIDVODB_DB
+      option $DB:$MINIDVODB_DB
+    end
+    
+#    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
+
+
