         ;;   )        
         all-slots (map-val (comp set :worker-ports) supervisor-infos)
         existing-slots (assigned-slots storm-cluster-state)
-        ]
-    [(map-val :hostname supervisor-infos)
-     (mapcat
-       (fn [[id slots]]
-         (for [s (set/difference slots (existing-slots id))]
-           [id s]))
-       all-slots)
-      ]))
+        ]    
+    (mapcat
+     (fn [[id slots]]
+       (for [s (set/difference slots (existing-slots id))]
+         [id s]))
+     all-slots)
+    ))
 
 (defn state-spout-parallelism [state-spout-spec]
   (-> state-spout-spec .get_common thrift/parallelism-hint))

              supervisor-ids))
       )))

(defn- available-slots
  [conf storm-cluster-state callback]
  (let [supervisor-ids (.supervisors storm-cluster-state callback)

;; TODO: slots that have dead task should be reused as long as supervisor is active

;; public so it can be mocked out
(defn compute-new-task->node+port [conf storm-id existing-assignment storm-cluster-state callback task-heartbeats-cache]
  (let [available-slots (available-slots conf storm-cluster-state callback)
        existing-assigned (reverse-map (:task->node+port existing-assignment))
        storm-conf (read-storm-conf conf storm-id)
        all-task-ids (set (.task-ids storm-cluster-state storm-id))
        alive-ids (set (alive-tasks conf storm-id storm-cluster-state
