7454: Add 'size' to arvados_create_kwargs so that it can be included in CustomData.
[arvados.git] / services / nodemanager / arvnodeman / computenode / __init__.py
index f5186074c6bc30c9d2230e91ea12764daddb797b..6e46bc0f4c6283ab0d73da212529299bdec4ba10 100644 (file)
@@ -30,6 +30,19 @@ def arvados_timestamp(timestr):
 def timestamp_fresh(timestamp, fresh_time):
     return (time.time() - timestamp) < fresh_time
 
+def arvados_node_missing(arvados_node, 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.