return (time.time() - timestamp) < fresh_time
def arvados_node_missing(arvados_node, fresh_time):
- return not timestamp_fresh(arvados_timestamp(arvados_node["last_ping_at"]), fresh_time)
+ """Indicate if cloud node corresponding to the arvados
+ node is "missing".
+
+ If True, this means the node has not pinged the API server within the timeout
+ period. If False, the ping is up to date. If the node has never pinged,
+ returns None.
+ """
+ if arvados_node["last_ping_at"] is None:
+ return None
+ else:
+ return not timestamp_fresh(arvados_timestamp(arvados_node["last_ping_at"]), fresh_time)
class ShutdownTimer(object):
"""Keep track of a cloud node's shutdown windows.