            (or (service-event? message)
                (service-task-event? message))))
     (subscription [_ message]
-      (let [service-name (or (get-in message [:Actor :Attributes :com.docker.swarm.service.name])
-                             (get-in message [:Actor :Attributes :name]))
+      (let [service-name (service-name message)
             stack-name (du/hypothetical-stack service-name)]
         {:handler :stack-info
          :params  {:name stack-name}}))

       :params  nil})
    (subscribed-data [_ message]
      (api/tasks-memo))))

(def refresh-node-list
  (reify Rule

     :tasks    tasks
     :networks networks}))

(defn- node-info-data
  [node-event-message]
  (let [node-id (node-id node-event-message)
        node (api/node node-id)
        tasks (api/node-tasks node-id)]
    {:node  node
     :tasks tasks}))

(defn- stack-info-data
  [service-event-message]
  (let [service-name (service-name service-event-message)
        stack-name (du/hypothetical-stack service-name)]
    (api/stack stack-name)))

