13868: Fallback behavior when arvados_node_size tag is missing
[arvados.git] / services / nodemanager / arvnodeman / jobqueue.py
index 6c7a93466cae95e248be74e4322fcf8e72f47f00..7ca9c9553721f0fa1291273bfeff5f5f9f7d0e78 100644 (file)
@@ -7,7 +7,7 @@ from __future__ import absolute_import, print_function
 
 import logging
 import re
-import subprocess
+import subprocess32 as subprocess
 
 import arvados.util
 
@@ -37,8 +37,11 @@ class ServerCalculator(object):
             self.scratch = 0
             self.cores = 0
             self.bandwidth = 0
-            self.price = 9999999
-            self.preemptable = False
+            # price is multiplied by 1000 to get the node weight
+            # the maximum node weight is                  4294967280
+            # so use invalid node weight 4294967 * 1000 = 4294967000
+            self.price = 4294967
+            self.preemptible = False
             self.extra = {}
 
         def meets_constraints(self, **kwargs):
@@ -58,7 +61,7 @@ class ServerCalculator(object):
                 self.disk = 0
             self.scratch = self.disk * 1000
             self.ram = int(self.ram * node_mem_scaling)
-            self.preemptable = False
+            self.preemptible = False
             for name, override in kwargs.iteritems():
                 if name == 'instance_type': continue
                 if not hasattr(self, name):
@@ -248,5 +251,5 @@ class JobQueueMonitorActor(clientactor.RemotePollLoopActor):
                                    job_uuid,
                                    error)
         self._logger.debug("Calculated wishlist: %s",
-                           ', '.join("%s (preemptable: %s)" % (s.name, s.preemptable) for s in server_list) or "(empty)")
+                           ', '.join(s.id for s in server_list) or "(empty)")
         return super(JobQueueMonitorActor, self)._got_response(server_list)