- shutdown = self._node_shutdown.start(timer_actor=self._timer,
- cloud_client=self._new_cloud(),
- cloud_node=cloud_node).proxy()
- self.shutdowns[cloud_node.id] = shutdown
+ if record.arvados_node is None:
+ self._begin_node_shutdown(record.actor, cancellable=False)
+
+ def node_finished_shutdown(self, shutdown_actor):
+ success, cloud_node = self._get_actor_attrs(shutdown_actor, 'success',
+ 'cloud_node')
+ shutdown_actor.stop()
+ cloud_node_id = cloud_node.id
+ if not success:
+ del self.shutdowns[cloud_node_id]
+ elif cloud_node_id in self.booted:
+ self.booted.pop(cloud_node_id).actor.stop()
+ del self.shutdowns[cloud_node_id]