8460: Send events.
[arvados.git] / services / nodemanager / arvnodeman / daemon.py
index 589b9a1b64d83b434706843854fd64173c07fd49..a809148cdf8cadf37ae6da24a01603ca93fbf2da 100644 (file)
@@ -67,10 +67,6 @@ class _BaseNodeTracker(object):
         return (record for record in self.nodes.itervalues()
                 if getattr(record, self.PAIR_ATTR) is None)
 
-    def paired(self):
-        return (record for record in self.nodes.itervalues()
-                if getattr(record, self.PAIR_ATTR) is not None)
-
 
 class _CloudNodeTracker(_BaseNodeTracker):
     RECORD_ATTR = 'cloud_node'
@@ -429,21 +425,22 @@ class NodeManagerDaemonActor(actor_class):
     @_check_poll_freshness
     def node_can_shutdown(self, node_actor):
         if self._nodes_excess(node_actor.cloud_node.get().size) > 0:
-            print("excess")
             self._begin_node_shutdown(node_actor, cancellable=True)
         elif self.cloud_nodes.nodes.get(node_actor.cloud_node.get().id).arvados_node is None:
             # Node is unpaired, which means it probably exceeded its booting
             # grace period without a ping, so shut it down so we can boot a new
             # node in its place.
-            print("unpaired")
             self._begin_node_shutdown(node_actor, cancellable=False)
         elif node_actor.in_state('down').get():
             # Node is down and unlikely to come back.
             self._begin_node_shutdown(node_actor, cancellable=False)
 
     def node_finished_shutdown(self, shutdown_actor):
-        cloud_node, success, cancel_reason = self._get_actor_attrs(
-            shutdown_actor, 'cloud_node', 'success', 'cancel_reason')
+        try:
+            cloud_node, success, cancel_reason = self._get_actor_attrs(
+                shutdown_actor, 'cloud_node', 'success', 'cancel_reason')
+        except pykka.ActorDeadError:
+            return
         cloud_node_id = cloud_node.id
         record = self.cloud_nodes[cloud_node_id]
         shutdown_actor.stop()