Index: trunk/ippTasks/dist.pro
===================================================================
--- trunk/ippTasks/dist.pro	(revision 26014)
+++ trunk/ippTasks/dist.pro	(revision 26015)
@@ -70,4 +70,41 @@
     active false
   end
+end
+
+macro set.dist.workdir.by.component
+    # component template default varname
+    if ($0 != 5)
+        echo "USAGE: set.workdir.by.component (componentID) (template) (default) (varname)"
+        break
+    end
+    local host component default template varname length start count component_id
+    $component = $1
+    $template = $2
+    $default = $3
+    $varname = $4
+    if ("$template" == "NULL")
+        echo "ERROR: WORKDIR template not set."
+        break
+    end
+    book getword ipphosts distribution count -var count
+    if ("$count" == "NULL")
+        echo "ERROR: disthosts is empty"
+        break
+    end
+    # take last two letters of component id
+    # treat it as an integer and use modulous of length of distribution hosts
+    # to compute a host
+    strlen $component length
+    $start = $length - 2
+    substr $component $start 2 index
+    $component_id = $index % $count
+
+    book getword ipphosts distribution $component_id -var host
+    if ("$host" == "NULL")
+        echo "ERROR: failed to find host for $component"
+        $host = $default
+    end
+
+    strsub $template @HOST@ $host -var $varname
 end
 
@@ -165,5 +202,5 @@
     book getword distToProcess $pageName no_magic -var NO_MAGIC
     book getword distToProcess $pageName magicked -var MAGICKED
-    book getword distToProcess $pageName outdir -var OUTDIR
+    book getword distToProcess $pageName outdir -var OUTDIR_TEMPLATE
     book getword distToProcess $pageName dbname -var DBNAME
 
@@ -187,4 +224,10 @@
 #    set.workdir.by.camera $CAMERA $MAGIC_ID $WORKDIR_TEMPLATE $default_host WORKDIR
 #    host anyhost
+
+    set.dist.workdir.by.component $COMPONENT $OUTDIR_TEMPLATE ipp049 OUTDIR 
+    if ("$OUTDIR" == "NULL")
+        echo ERROR failed to set workdir for $COMPONENT
+        break
+    end
 
     substr $COMPONENT 0 3 COMP_HEAD
@@ -294,5 +337,5 @@
     book getword distToAdvance $pageName stage   -var STAGE
     book getword distToAdvance $pageName stage_id -var STAGE_ID
-    book getword distToAdvance $pageName outdir -var OUTDIR
+    book getword distToAdvance $pageName outdir -var OUTDIR_TEMPLATE
     book getword distToAdvance $pageName clean -var CLEAN
     book getword distToAdvance $pageName dbname -var DBNAME
@@ -304,4 +347,12 @@
     host anyhost
 
+    # using $DIST_ID as the "component" works fine here since we only look
+    # at the last two digits
+    set.dist.workdir.by.component $DIST_ID $OUTDIR_TEMPLATE ipp049 OUTDIR 
+    if ("$OUTDIR" == "NULL")
+        echo ERROR failed to set workdir for $DIST_ID
+        break
+    end
+
     sprintf logfile "%s/dist.advance.%s.log" $OUTDIR $DIST_ID
 #    stdout $logfile
Index: trunk/ippTasks/ipphosts.mhpcc.config
===================================================================
--- trunk/ippTasks/ipphosts.mhpcc.config	(revision 26014)
+++ trunk/ippTasks/ipphosts.mhpcc.config	(revision 26015)
@@ -214,2 +214,12 @@
   ota76  STR  ipp025
 END
+
+ipphosts METADATA
+  camera STR distribution
+  count  S32  5
+  0      STR ipp048
+  1      STR ipp049
+  2      STR ipp050
+  3      STR ipp051
+  4      STR ipp052
+END
Index: trunk/ippTasks/rcserver.pro
===================================================================
--- trunk/ippTasks/rcserver.pro	(revision 26014)
+++ trunk/ippTasks/rcserver.pro	(revision 26015)
@@ -139,6 +139,4 @@
     book getword rcPendingFS $pageName dbname -var DBNAME
 
-#    set.host.for.camera $CAMERA $MAGIC_ID
-#    set.workdir.by.camera $CAMERA $MAGIC_ID $WORKDIR_TEMPLATE $default_host WORKDIR
     host anyhost
 
