Index: branches/czw_branch/20100519/ippTasks/Makefile.am
===================================================================
--- branches/czw_branch/20100519/ippTasks/Makefile.am	(revision 28045)
+++ branches/czw_branch/20100519/ippTasks/Makefile.am	(revision 28304)
@@ -20,4 +20,5 @@
 	diff.pro \
 	stack.pro \
+	staticsky.pro \
 	summit.copy.pro \
 	survey.pro \
@@ -31,4 +32,5 @@
 	dqstats.pro \
 	science.cleanup.pro \
+	minidvodb.pro \
 	nightly_stacks.pro \
 	lossy_compress.pro
Index: branches/czw_branch/20100519/ippTasks/addstar.pro
===================================================================
--- branches/czw_branch/20100519/ippTasks/addstar.pro	(revision 28045)
+++ branches/czw_branch/20100519/ippTasks/addstar.pro	(revision 28304)
@@ -45,7 +45,9 @@
 end
 
+
 # this variable will cycle through the known database names
 $addstar_DB = 0
 $addstar_revert_DB = 0
+
 
 # select images ready for addstar analysis
@@ -64,5 +66,5 @@
 
   task.exec
-    if ($LABEL:n == 0) break
+   # if ($LABEL:n == 0) break
     $run = addtool -pendingexp
     if ($DB:n == 0)
@@ -134,4 +136,7 @@
     book getword addPendingExp $pageName reduction -var REDUCTION
     book getword addPendingExp $pageName dvodb  -var DVODB
+    book getword addPendingExp $pageName minidvodb  -var MINIDVODB
+    book getword addPendingExp $pageName minidvodb_name  -var MINIDVODB_NAME
+    book getword addPendingExp $pageName minidvodb_group  -var MINIDVODB_GROUP
     book getword addPendingExp $pageName image_only -var IMAGE_ONLY
     book getword addPendingExp $pageName dbname -var DBNAME
@@ -164,4 +169,11 @@
       $run = $run --image-only
     end
+    if ("$MINIDVODB" == "T")
+    $run = $run --minidvodb
+    $run = $run --minidvodb_group $MINIDVODB_GROUP
+	if (("$MINIDVODB_NAME" != "NULL") && ("$MINIDVODB_NAME" != "(null)"))
+           $run = $run --minidvodb_name $MINIDVODB_NAME #have addstar_run.pl grab the 'active' name if it is NULL
+	end
+    end 
     
     add_standard_args run
Index: branches/czw_branch/20100519/ippTasks/diff.pro
===================================================================
--- branches/czw_branch/20100519/ippTasks/diff.pro	(revision 28045)
+++ branches/czw_branch/20100519/ippTasks/diff.pro	(revision 28304)
@@ -11,4 +11,5 @@
 book init diffSkyfile
 #book init diffCleanup
+book init diffPendingSummary
 
 ### Database lists
@@ -16,4 +17,5 @@
 $diffAdvance_DB = 0
 $diff_revert_DB = 0
+$diffSummary_DB = 0
 #$diffCleanup_DB = 0
 
@@ -27,4 +29,5 @@
 macro diff.reset
   book init diffSkyfile
+  book init diffPendingSummary
 #  book init diffCleanup
 end
@@ -573,5 +576,4 @@
     book getword warpPendingSummary $pageName tess_id -var TESS_DIR
     book getword diffPendingSummary $pageName diff_mode -var DIFF_MODE
-    book getword diffPendingSummary $pageName exp_tag -var EXP_TAG
     book getword diffPendingSummary $pageName state -var RUN_STATE
 
@@ -598,6 +600,6 @@
     basename $TESS_DIR -var TESS_ID
 
-    sprintf outroot "%s/%s/%s/%s.%s.%sdif.%s.%s" $WORKDIR $TESS_ID $SKYCELL_ID $TESS_ID $SKYCELL_ID $DIFF_TAG $DIFF_ID
-        ## generate outroot specific to this exposure
+    ## generate outroot specific to this exposure
+    sprintf outroot "%s/%s/%s/%s.%s.%sdif.%s.summary" $WORKDIR $TESS_ID $SKYCELL_ID $TESS_ID $SKYCELL_ID $DIFF_TAG $DIFF_ID
 
 
Index: branches/czw_branch/20100519/ippTasks/lossy_compress.pro
===================================================================
--- branches/czw_branch/20100519/ippTasks/lossy_compress.pro	(revision 28045)
+++ branches/czw_branch/20100519/ippTasks/lossy_compress.pro	(revision 28304)
@@ -149,9 +149,9 @@
 
 	# specify choice of remote host
-	set.host.for.camera $CAMERA $TMP_CLASS_ID
+	set.host.for.camera $CAMERA $CLASS_ID
 
 	# set logfile name
 	if ("$WORKDIR" == "NULL") 
-	    sprintf logfile "compress_log/%s.%d.lossycomp.%s.log" $EXP_NAME $EXP_ID $CLASS_ID
+	    sprintf logfile "compress_log/%s.%d.lossycomp.%s.log" $EXP_NAME $EXP_ID $TMP_CLASS_ID
 	else 
 	    sprintf logfile "%s/%s/%s.lossycomp.%s.log" $WORKDIR $EXP_TAG $EXP_TAG $TMP_CLASS_ID
@@ -275,9 +275,9 @@
 
 	# specify choice of remote host
-	set.host.for.camera $CAMERA $TMP_CLASS_ID
+	set.host.for.camera $CAMERA $CLASS_ID
 
 	# set logfile name
 	if ("$WORKDIR" == "NULL") 
-	    sprintf logfile "compress_log/%s.%d.lossycomp.%s.log" $EXP_NAME $EXP_ID $CLASS_ID
+	    sprintf logfile "compress_log/%s.%d.lossycomp.%s.log" $EXP_NAME $EXP_ID $TMP_CLASS_ID
 	else 
 	    sprintf logfile "%s/%s/%s.lossycomp.%s.log" $WORKDIR $EXP_TAG $EXP_TAG $TMP_CLASS_ID
Index: branches/czw_branch/20100519/ippTasks/minidvodb.pro
===================================================================
--- branches/czw_branch/20100519/ippTasks/minidvodb.pro	(revision 28304)
+++ branches/czw_branch/20100519/ippTasks/minidvodb.pro	(revision 28304)
@@ -0,0 +1,732 @@
+## 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($?haveBooks))
+ book create MINIDVODB
+ book create MINIDVODB_MERGE
+ book create MINIDVODB_CREATE
+ book create MINIDVODB_ACTIVE   
+ $haveBooks = TRUE
+end
+
+$MINIDVODB_DB = 0
+
+$MINIDVODB_WAIT_DB = 0
+$MINIDVODB_MERGE_DB = 0
+$MINIDVODB_CREATE_DB = 0
+$MINIDVODB_ACTIVE_DB = 0
+
+book init minidvodbWaitlist
+book init minidvodbMergelist
+book init minidvodbCreatelist
+book init minidvodbActivelist
+
+macro minidvodb.create.status
+  book listbook minidvodbCreatelist
+end
+
+macro minidvodb.create.reset
+  book init minidvodbCreatelist
+end
+
+macro minidvodb.active.status
+  book listbook minidvodbActivelist
+end
+
+macro minidvodb.active.reset
+  book init minidvodbActivelist
+end
+
+
+macro minidvodb.wait.status
+  book listbook minidvodbWaitlist
+end
+
+macro minidvodb.wait.reset
+  book init minidvodbWaitlist
+end
+
+macro minidvodb.merge.status
+  book listbook minidvodbMergelist
+end
+
+macro minidvodb.merge.reset
+  book init minidvodbMergelist
+end
+
+#this is the create task, there is no load, it just runs
+macro minidvodb.create.on
+    task minidvodb.create
+    active true
+  end
+end
+macro minidvodb.create.off
+   task minidvodb.create
+    active false
+  end
+end
+##these are the tasks that flip from new -> active
+macro minidvodb.active.on
+  task minidvodb.active.load
+    active true
+  end
+  task minidvodb.active.run
+    active true
+  end  
+end
+macro minidvodb.active.off
+  task minidvodb.active.load
+    active false
+  end
+  task minidvodb.active.run
+    active false
+  end  
+end
+
+##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
+
+##these merge the dbs
+
+macro minidvodb.merge.on
+  task minidvodb.merge.load
+    active true
+  end
+  task minidvodb.merge.run
+    active true
+  end  
+end
+macro minidvodb.merge.off
+  task minidvodb.merge.load
+    active false
+  end
+  task minidvodb.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.minidvodb
+  if ($0 != 5)
+    echo "USAGE: add.minidvodb (minidvodb_group) (dvodb) (interval days) (camera)"
+    break
+  end
+
+  #wait - shoudl be renamed MINIDVODB_WAIT
+  book newpage MINIDVODB $1
+  book setword MINIDVODB $1 MINIDVODB_GROUP $1
+  book setword MINIDVODB $1 DVODB $2
+  book setword MINIDVODB $1 STATE PENDING
+  #merge  
+  book newpage MINIDVODB_MERGE $1
+  book setword MINIDVODB_MERGE $1 MINIDVODB_GROUP $1
+  book setword MINIDVODB_MERGE $1 DVODB $2
+  book setword MINIDVODB_MERGE $1 STATE PENDING
+  #active  
+  book newpage MINIDVODB_ACTIVE $1
+  book setword MINIDVODB_ACTIVE $1 MINIDVODB_GROUP $1
+  book setword MINIDVODB_ACTIVE $1 DVODB $2
+  book setword MINIDVODB_ACTIVE $1 STATE PENDING
+
+  #create  note that camera should be GPC1 for it to work. I couldn't figure out how to easily get this out.
+  book newpage MINIDVODB_CREATE $1
+  book setword MINIDVODB_CREATE $1 MINIDVODB_GROUP $1
+  book setword MINIDVODB_CREATE $1 DVODB $2
+  book setword MINIDVODB_CREATE $1 DVODB_DAYS $3
+  book setword MINIDVODB_CREATE $1 CAMERA $4  
+  book setword MINIDVODB_CREATE $1 STATE PENDING  
+end
+
+macro del.minidvodb
+  if ($0 != 2)
+    echo "USAGE: del.minidvodb (minidvodb)"
+    break
+  end
+  book delpage MINIDVODB $1
+  book delpage MINIDVODB_MERGE $1
+  book delpage MINIDVODB_CREATE $1  
+  book delpage MINIDVODB_ACTIVE $1
+end
+
+macro show.minidvodb
+  if ($0 != 1)
+    echo "USAGE: show.minidvodb"
+    break
+  end
+  echo "minidvodb wait"
+  book listbook MINIDVODB
+  echo "minidvodb merge"
+  book listbook MINIDVODB_MERGE
+  echo "minidvodb create"
+  book listbook MINIDVODB_CREATE 
+  echo "minidvodb_active"
+  book listbook MINIDVODB_ACTIVE
+end
+
+
+
+
+
+
+
+
+task           minidvodb.wait.load
+  host         local
+
+  periods      -poll $LOADPOLL
+  periods      -exec $LOADEXEC
+  periods      -timeout 30
+  npending     1
+
+  stdout NULL
+  stderr $LOGDIR/minidvodb.wait.load.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
+#using check as opposed to list because it sees if it is done with the addRun state yet.  
+    book setword MINIDVODB $minidvodb_group STATE DONE
+    $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
+
+
+
+
+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
+   
+    # 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
+    echo "hostname: $JOB_HOSTNAME"
+    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           minidvodb.merge.load
+  host         local
+
+  periods      -poll $LOADPOLL
+  periods      -exec $LOADEXEC
+  periods      -timeout 30
+  npending     1
+
+  stdout NULL
+  stderr $LOGDIR/minidvodb.merge.load.log
+
+  task.exec
+    book npages MINIDVODB_MERGE -var N
+    if ($N == 0)
+#      echo "No labels for processing"
+      break
+    endif
+
+    book getpage MINIDVODB_MERGE 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_MERGE $i -var minidvodb_group
+        book setword MINIDVODB_MERGE $minidvodb_group STATE NEW
+      end
+      book getpage MINIDVODB_MERGE 0 -var minidvodb_group -key STATE NEW
+
+      # Select different database
+      $MINIDVODB_DB ++
+      if ($MINIDVODB_DB >= $DB:n) set MINIDVODB_DB = 0
+    end
+    #finds the minidvodbs in a state of 'to_be_merged' 
+    book setword MINIDVODB_MERGE $minidvodb_group STATE DONE
+    $run = addtool -listminidvodbrun -state to_be_merged -limit 1
+    $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 minidvodbMergelist -key minidvodb_id -uniq -setword dbname $options:0 -setword pantaskState INIT
+    if ($VERBOSE > 2)
+      book listbook minidvodbMergelist
+    end
+    # delete existing entries in the appropriate pantaskStates
+    process_cleanup minidvodbMergelist
+  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           minidvodb.merge.run
+  periods      -poll $RUNPOLL
+  periods      -exec $RUNEXEC
+  periods      -timeout 20000
+  
+  #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 minidvodbMergelist -var N
+    if ($N == 0) break
+    
+    # look for new images in minidvodbWaitlist (pantaskState == INIT)
+    book getpage minidvodbMergelist 0 -var pageName -key pantaskState INIT
+    if ("$pageName" == "NULL") break
+
+    book setword minidvodbMergelist $pageName pantaskState RUN
+    book getword minidvodbMergelist $pageName minidvodb_id -var MINIDVODB_ID
+    book getword minidvodbMergelist $pageName minidvodb_group -var MINIDVODB_GROUP
+    book getword minidvodbMergelist $pageName mergedvodb_path -var MERGEDVODB_PATH
+    book getword minidvodbMergelist $pageName minidvodb_path -var MINIDVODB_PATH
+    book getword minidvodbMergelist $pageName state -var STATE
+    stdout $LOGDIR/minidvodb.merge.run.log
+    stderr $LOGDIR/minidvodb.merge.run.log
+
+    $run = minidvodb_merge.pl --camera GPC1 --mergedvodb $MERGEDVODB_PATH --minidvodb $MINIDVODB_PATH --minidvodb_group $MINIDVODB_GROUP --minidvodb_id $MINIDVODB_ID
+    
+  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 minidvodbMergelist $options:0 $JOB_STATUS
+  end
+
+  # locked list
+  task.exit    crash
+  
+    echo "hostname: $JOB_HOSTNAME"
+
+    # Set a fault code in the database
+    
+    process_exit minidvodbMergelist $options:0 $EXIT_CRASH_ERR
+  end
+
+  # operation timed out?
+    task.exit    timeout
+	showcommand timeout
+    book setword minidvodbMergelist $options:0 pantaskState TIMEOUT
+  end
+end
+
+
+#this is the complicated script - it creates the minidvodbRuns
+#since none may exist by default, I decided not to have a load.task
+#it calls a perl script, which creates a new one if:
+#there is none in an active state (true if there is none at all)
+#the current one is older than the dvodb_age
+#there are none in new (we have a task that moves it to 'active')
+#the current active one has > 30000 add_ids in it
+
+#also confusing: it succeeds if it doesn't create it (if it doesn't want to create one)
+#and it succeeds if it creates one. (otherwise there would be a lot of false failures,
+# like in replication)
+#it fails if it has problems with one of the addtool commands in the script.
+
+task           minidvodb.create
+  host         local
+
+  periods      -poll $LOADPOLL
+  periods      -exec $LOADEXEC
+  periods      -timeout 240
+  npending     1
+
+  stdout NULL
+  stderr $LOGDIR/minidvodb.create.log
+
+  task.exec
+    
+ periods      -poll 60
+#wait a bit before trying again
+
+    book npages MINIDVODB_CREATE -var N
+    if ($N == 0)
+#      echo "No labels for processing"
+      break
+    endif
+
+    book getpage MINIDVODB_CREATE 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_CREATE $i -var minidvodb_group
+        book setword MINIDVODB_CREATE $minidvodb_group STATE NEW
+      end
+       book getpage MINIDVODB_CREATE 0 -var minidvodb_group -key STATE NEW
+      # Select different database
+      $MINIDVODB_DB ++
+      if ($MINIDVODB_DB >= $DB:n) set MINIDVODB_DB = 0
+    end
+     
+    book setword MINIDVODB_CREATE $minidvodb_group STATE DONE
+    book getword MINIDVODB_CREATE $minidvodb_group DVODB -var dvodb 
+    book getword MINIDVODB_CREATE $minidvodb_group DVODB_DAYS -var dvodb_days
+    book getword MINIDVODB_CREATE $minidvodb_group CAMERA -var camera
+    $run = minidvodb_createdb.pl --camera $camera --outroot $dvodb --dvodb $dvodb --minidvodb_group $minidvodb_group --interval $dvodb_days
+ 
+    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
+    command $run
+  end
+
+  # success
+  task.exit    0
+     if ($VERBOSE > 2)
+      showcommand 
+     end
+   end
+
+  # locked list
+
+  # 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           minidvodb.active.load
+  host         local
+
+  periods      -poll $LOADPOLL
+  periods      -exec $LOADEXEC
+  periods      -timeout 30
+  npending     1
+
+  stdout NULL
+  stderr $LOGDIR/minidvodb.active.load.log
+
+  task.exec
+    book npages MINIDVODB_ACTIVE -var N
+    if ($N == 0)
+#      echo "No labels for processing"
+      break
+    endif
+
+    book getpage MINIDVODB_ACTIVE 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_ACTIVE $i -var minidvodb_group
+        book setword MINIDVODB_ACTIVE $minidvodb_group STATE NEW
+      end
+      book getpage MINIDVODB_ACTIVE 0 -var minidvodb_group -key STATE NEW
+      
+      # Select different database
+      $MINIDVODB_DB ++
+      if ($MINIDVODB_DB >= $DB:n) set MINIDVODB_DB = 0
+    end
+    book setword MINIDVODB_ACTIVE $minidvodb_group STATE DONE
+    
+    $run = addtool -listminidvodbrun -state new
+    $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 minidvodbActivelist -key minidvodb_id -uniq -setword dbname $options:0 -setword pantaskState INIT
+    if ($VERBOSE > 2)
+      book listbook minidvodbActivelist
+    end
+    # delete existing entries in the appropriate pantaskStates
+    process_cleanup minidvodbActivelist
+  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           minidvodb.active.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 minidvodbActivelist -var N
+    if ($N == 0) break
+   
+    # look for new images in minidvodbActivelist (pantaskState == INIT)
+    book getpage minidvodbActivelist 0 -var pageName -key pantaskState INIT
+    if ("$pageName" == "NULL") break
+
+    book setword minidvodbActivelist $pageName pantaskState RUN
+    book getword minidvodbActivelist $pageName minidvodb_group -var MINIDVODB_GROUP
+    stdout $LOGDIR/minidvodb.active.run.log
+    stderr $LOGDIR/minidvodb.active.run.log
+
+    $run = addtool -flipminidvodbrun -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
+# 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 minidvodbActivelist $options:0 $JOB_STATUS
+  end
+
+  # locked list
+  task.exit    crash
+    #showcommand crash
+    echo "hostname: $JOB_HOSTNAME"
+    # Set a fault code in the database
+    
+    process_exit minidvodbActivelist $options:0 $EXIT_CRASH_ERR
+  end
+
+  # operation timed out?
+    task.exit    timeout
+	showcommand timeout
+    book setword minidvodbActivelist $options:0 pantaskState TIMEOUT
+  end
+end
+
Index: branches/czw_branch/20100519/ippTasks/nightly_stacks.pro
===================================================================
--- branches/czw_branch/20100519/ippTasks/nightly_stacks.pro	(revision 28045)
+++ branches/czw_branch/20100519/ippTasks/nightly_stacks.pro	(revision 28304)
@@ -5,4 +5,5 @@
 macro nightly.stacks.on
     ns.initday.on
+    ns.detrends.off
     ns.registration.on
     ns.burntool.on
@@ -13,4 +14,5 @@
 macro nightly.stacks.off
     ns.initday.off
+    ns.detrends.off
     ns.registration.off
     ns.burntool.off
@@ -21,4 +23,5 @@
 macro ns.on
     ns.initday.on
+    ns.detrends.off
     ns.registration.on
     ns.burntool.on
@@ -29,4 +32,5 @@
 macro ns.off
     ns.initday.off
+    ns.detrends.off
     ns.registration.off
     ns.burntool.off
@@ -41,4 +45,10 @@
 end
 
+macro ns.detrends.on
+  task ns.detrends.load
+    active true
+  end
+end
+
 macro ns.registration.on
   task ns.registration.load
@@ -76,4 +86,10 @@
 macro ns.initday.off
   task ns.initday.load
+    active false
+  end
+end
+
+macro ns.detrends.off
+  task ns.detrends.load
     active false
   end
@@ -186,4 +202,39 @@
   #operation times out?
   task.exit    timeout
+    showcommand timeout
+  end
+end
+
+#
+# Queue off any possible detrend verification runs
+#
+task              ns.detrends.load
+  host            local
+  periods         -poll $LOADPOLL
+  periods         -exec $LOADEXEC
+  periods         -timeout 30
+  trange          23:00:00 24:00:00 -nmax 1
+  npending        1
+
+  task.exec
+    stdout $LOGDIR/ns.detrends.log
+    stdout $LOGDIR/ns.detrends.log
+    $today = `date +%Y-%m-%d`
+
+    command automate_stacks.pl --queue_detrends --date $today
+  end
+  
+  task.exit       0
+    # nothign to do here
+  end
+  # locked list
+  task.exit       default
+    showcommand failure
+  end
+  task.exit       crash
+    showcommand crash
+  end
+  # operation times out
+  task.exit       timeout
     showcommand timeout
   end
Index: branches/czw_branch/20100519/ippTasks/stack.pro
===================================================================
--- branches/czw_branch/20100519/ippTasks/stack.pro	(revision 28045)
+++ branches/czw_branch/20100519/ippTasks/stack.pro	(revision 28304)
@@ -349,4 +349,7 @@
 # end
 
+
+
+
 task stack.revert
   host         local
Index: branches/czw_branch/20100519/ippTasks/staticsky.pro
===================================================================
--- branches/czw_branch/20100519/ippTasks/staticsky.pro	(revision 28304)
+++ branches/czw_branch/20100519/ippTasks/staticsky.pro	(revision 28304)
@@ -0,0 +1,253 @@
+## staticsky.pro : tasks for staticsky photometry analysis : -*- sh -*-
+
+## This file contains panTasks definitions for performing the
+## staticsky photometry analysis.  After a staticsky entry (with
+## associated sky_id) is defined, psphotStack is performed (via script
+## staticsky.pl) (tasks in staticskyResult).
+
+# test for required global variables
+check.globals
+
+### Initialise the books containing the tasks to do
+book init staticskyResult
+
+### Database lists
+$staticsky_DB = 0
+$staticsky_revert_DB = 0
+
+### Check status of staticsky tasks
+macro staticsky.status
+  book listbook staticskyResult
+end
+
+### Reset staticsky tasks
+macro staticsky.reset
+  book init staticskyResult
+end
+
+### Turn staticsky tasks on
+macro staticsky.on
+  task staticsky.load
+    active true
+  end
+  task staticsky.run
+    active true
+  end
+  task staticsky.revert
+    active false
+  end
+end
+
+### Turn staticsky tasks off
+macro staticsky.off
+  task staticsky.load
+    active false
+  end
+  task staticsky.run
+    active false
+  end
+  task staticsky.revert
+    active false
+  end
+end
+
+macro staticsky.revert.on
+  task staticsky.revert
+    active true
+  end
+end
+
+macro staticsky.revert.off
+  task staticsky.revert
+    active false
+  end
+end
+
+### Load tasks for staticsky
+### Tasks are loaded into staticskyResult.
+task	       staticsky.load
+  host         local
+
+  periods      -poll $LOADPOLL
+  periods      -exec $LOADEXEC
+  periods      -timeout 30
+  npending     1
+
+  stdout NULL
+  stderr $LOGDIR/staticsky.log
+
+  task.exec
+    if ($LABEL:n == 0) break
+    $run = staticskytool -todo
+    if ($DB:n == 0)
+      option DEFAULT
+    else
+      # save the DB name for the exit tasks
+      option $DB:$staticsky_DB
+      $run = $run -dbname $DB:$staticsky_DB -limit 40
+      $staticsky_DB ++
+      if ($staticsky_DB >= $DB:n) set staticsky_DB = 0
+    end
+    add_poll_args run
+    add_poll_labels run
+    command $run
+  end
+
+  # success
+  task.exit    0
+    # convert 'stdout' to book format
+    ipptool2book stdout staticskyResult -key sky_id -uniq -setword dbname $options:0 -setword pantaskState INIT
+    if ($VERBOSE > 2)
+      book listbook staticskyResult
+    end
+
+    # delete existing entries in the appropriate pantaskStates
+    process_cleanup staticskyResult
+  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 tasks for the staticsky analysis
+### Tasks are taken from staticskyResult.
+task	       staticsky.run
+  periods      -poll $RUNPOLL
+  periods      -exec $RUNEXEC
+  periods      -timeout 10800
+
+  task.exec
+    book npages staticskyResult -var N
+    if ($N == 0) break
+    if ($NETWORK == 0) break
+    if ($BURNTOOLING == 1) break
+
+    # look for new entries in staticskyResult (pantaskState == INIT)
+    book getpage staticskyResult 0 -var pageName -key pantaskState INIT
+    if ("$pageName" == "NULL") break
+
+    book setword staticskyResult $pageName pantaskState RUN
+    book getword staticskyResult $pageName sky_id -var SKY_ID
+    book getword staticskyResult $pageName tess_id -var TESS_DIR
+    book getword staticskyResult $pageName skycell_id -var SKYCELL_ID
+    book getword staticskyResult $pageName workdir -var WORKDIR_TEMPLATE
+    book getword staticskyResult $pageName path_base -var PATH_BASE
+    book getword staticskyResult $pageName reduction -var REDUCTION
+    book getword staticskyResult $pageName dbname -var DBNAME
+    book getword staticskyResult $pageName state -var RUN_STATE
+
+    # move this above when we get camera into the db correctly:
+    # book getword staticskyResult $pageName camera -var CAMERA
+    $CAMERA = GPC1
+
+    # set the host and workdir based on the skycell hash
+    set.host.for.skycell $SKYCELL_ID
+    set.workdir.by.skycell $SKYCELL_ID $WORKDIR_TEMPLATE $default_host WORKDIR
+
+    basename $TESS_DIR -var TESS_ID
+    if ("$PATH_BASE" == "NULL")
+        sprintf outroot "%s/%s/%s/%s.%s.stk.%s" $WORKDIR $TESS_ID $SKYCELL_ID $TESS_ID $SKYCELL_ID $SKY_ID
+    else
+        $outroot = $PATH_BASE
+    end
+
+    stdout $LOGDIR/staticsky.log
+    stderr $LOGDIR/staticsky.log
+
+    $run = staticsky.pl --threads @MAX_THREADS@ --sky_id $SKY_ID --outroot $outroot --redirect-output --camera $CAMERA
+    if ("$REDUCTION" != "NULL")
+      $run = $run --reduction $REDUCTION
+    end
+    add_standard_args run
+
+    # save the pageName for future reference below
+    options $pageName
+
+    # create the command line
+    if ($VERBOSE > 1)
+      echo command $run
+    end
+    command $run
+  end
+
+  # default exit status
+  task.exit    default
+    process_exit staticskyResult $options:0 $JOB_STATUS
+  end
+
+  # locked list
+  task.exit    crash
+    showcommand crash
+    echo "hostname: $JOB_HOSTNAME"
+    book setword staticskyResult $options:0 pantaskState CRASH
+  end
+
+  # operation timed out?
+  task.exit    timeout
+    showcommand timeout
+    book setword staticskyResult $options:0 pantaskState TIMEOUT
+  end
+end
+
+task staticsky.revert
+  host         local
+
+  periods      -poll 60.0
+  periods      -exec 1800.0
+  periods      -timeout 120.0
+  npending     1
+  active false
+  
+  stdout NULL
+  stderr $LOGDIR/revert.log
+
+  task.exec
+    if ($LABEL:n == 0) break
+    # Only revert failures with fault=2 (SYS_ERROR), which tend to be
+    # temporary filesystem problems.  Every other fault type is
+    # interesting and should be kept for debugging (and so it doesn't
+    # continue to occur).
+    $run = staticskytool -revertsumskyfile -fault 2
+    if ($DB:n == 0)
+      option DEFAULT
+    else
+      # save the DB name for the exit tasks
+      option $DB:$staticsky_revert_DB
+      $run = $run -dbname $DB:$staticsky_revert_DB
+      $staticsky_revert_DB ++
+      if ($staticsky_revert_DB >= $DB:n) set staticsky_revert_DB = 0
+    end
+    add_poll_labels run
+    command $run
+  end
+
+  # success
+  task.exit    0
+  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
+
Index: branches/czw_branch/20100519/ippTasks/survey.pro
===================================================================
--- branches/czw_branch/20100519/ippTasks/survey.pro	(revision 28045)
+++ branches/czw_branch/20100519/ippTasks/survey.pro	(revision 28304)
@@ -207,10 +207,11 @@
 
 macro survey.add.addstar
-  if ($0 != 3)
-    echo "USAGE: survey.add.addstar (label) (dvodb)"
+  if ($0 != 4)
+    echo "USAGE: survey.add.addstar (label) (dvodb) (minidvodb_group)"
     break
   end
   book newpage SURVEY_ADDSTAR $1
   book setword SURVEY_ADDSTAR $1 DVODB $2
+  book setword SURVEY_ADDSTAR $1 MINIDVODB_GROUP $3
   book setword SURVEY_ADDSTAR $1 STATE PENDING
 end
@@ -638,4 +639,5 @@
     book setword SURVEY_ADDSTAR $label STATE DONE
     book getword SURVEY_ADDSTAR $label DVODB -var dvodb
+    book getword SURVEY_ADDSTAR $label MINIDVODB_GROUP -var minidvodb_group
   
  #   $run = addtool -definebyquery -destreaked -label $label -set_dvodb $dbodb
@@ -648,5 +650,5 @@
     end
     
-    $run = $run -definebyquery -destreaked -label $label -set_dvodb $dvodb
+    $run = $run -definebyquery -destreaked -label $label -set_dvodb $dvodb -set_minidvodb_group $minidvodb_group -set_minidvodb -set_label $minidvodb_group
     echo $run
     command $run
Index: branches/czw_branch/20100519/ippTasks/warp.pro
===================================================================
--- branches/czw_branch/20100519/ippTasks/warp.pro	(revision 28045)
+++ branches/czw_branch/20100519/ippTasks/warp.pro	(revision 28304)
@@ -13,4 +13,5 @@
 book init warpPendingSkyCell
 book init warpPendingCleanup
+book init warpPendingSummary
 
 ### Database lists
@@ -19,4 +20,5 @@
 $warp_revert_overlap_DB = 0
 $warp_revert_warped_DB = 0
+$warpSummary_DB = 0
 
 ### Check status of warping tasks
@@ -30,4 +32,5 @@
   book init warpInputExp
   book init warpPendingSkyCell
+  book init warpPendingSummary
 end
 
