3 from __future__ import absolute_import, print_function
5 from . import clientactor
8 class ArvadosNodeListMonitorActor(clientactor.RemotePollLoopActor):
9 """Actor to poll the Arvados node list.
11 This actor regularly polls the list of Arvados node records, and
12 sends it to subscribers.
14 LOGGER_NAME = 'arvnodeman.arvados_nodes'
16 def is_common_error(self, exception):
17 return isinstance(exception, config.ARVADOS_ERRORS)
19 def _item_key(self, node):
22 def _send_request(self):
23 return self._client.nodes().list(limit=10000).execute()['items']
26 class CloudNodeListMonitorActor(clientactor.RemotePollLoopActor):
27 """Actor to poll the cloud node list.
29 This actor regularly polls the cloud to get a list of running compute
30 nodes, and sends it to subscribers.
32 LOGGER_NAME = 'arvnodeman.cloud_nodes'
34 def is_common_error(self, exception):
35 return self._client.is_cloud_exception(exception)
37 def _item_key(self, node):
40 def _send_request(self):
41 return self._client.list_nodes()