cosmetic - slightly changed message when a freezer cgroup file can't be figured out
[nodemanager.git] / coresched_lxc.py
index d48e2bb..50b5330 100644 (file)
@@ -185,7 +185,7 @@ class CoreSched:
                     lastCpu = cpu
 
                     logger.log("CoreSched: allocating unit " + str(cpu) + " to slice " + name)
-                    reservations[name] = reservations.get(name,[]) + [cpu]
+                    reservations[name] = reservations.get(name, []) + [cpu]
 
                     # now find a memory node to go with the cpu
                     if memSchedule:
@@ -193,7 +193,7 @@ class CoreSched:
                         if mem != None:
                             mems.remove(mem)
                             logger.log("CoreSched: allocating memory node " + str(mem) + " to slice " + name)
-                            mem_reservations[name] = mem_reservations.get(name,[]) + [mem]
+                            mem_reservations[name] = mem_reservations.get(name, []) + [mem]
                         else:
                             logger.log("CoreSched: failed to find memory node for cpu" + str(cpu))
 
@@ -226,9 +226,9 @@ class CoreSched:
             # note that if a reservation is [], then we don't need to add
             # bestEffort cores to it, since it is bestEffort by default.
 
-            if reservations.get(name,[]) != []:
+            if reservations.get(name, []) != []:
                 reservations[name] = reservations[name] + reservations["_default"]
-                mem_reservations[name] = mem_reservations.get(name,[]) + mem_reservations["_default"]
+                mem_reservations[name] = mem_reservations.get(name, []) + mem_reservations["_default"]
                 logger.log("CoreSched: adding besteffort units to " + name + ". new units = " + str(reservations[name]))
 
         self.reserveUnits(self.cgroup_var_name, reservations)
@@ -240,14 +240,19 @@ class CoreSched:
     def freezeUnits (self, var_name, freezeList):
         for (slicename, freeze) in freezeList.items():
             try:
-                logger.verbose("CoreSched: setting freezer for " + slicename + " to " + freeze)
                 cgroup_path = cgroups.get_cgroup_path(slicename, 'freezer')
+                logger.verbose("CoreSched: setting freezer for {} to {} - path={} var={}"
+                               .format(slicename,freeze, cgroup_path, var_name))
                 cgroup = os.path.join(cgroup_path, var_name)
+                if not cgroup:
+                    logger.log("Warning: Could not spot 'freezer' cgroup file for slice {} - ignored".format(slicename))
+                    break
 
                 if glo_coresched_simulate:
                         print "F", cgroup
                 else:
-                    file(cgroup, "w").write(freeze)
+                    with open(cgroup, "w") as f:
+                        f.write(freeze)
             except Exception as e:
                 # the cgroup probably didn't exit...
                 logger.log("CoreSched: exception while setting freeze for {} ({})".format(slicename, e))
@@ -396,12 +401,12 @@ if __name__=="__main__":
     print "cpus:", x.listToRange(x.get_cpus())
     print "sibling map:"
     for item in x.get_cpus():
-        print " ", item, ",".join([str(y) for y in x.cpu_siblings.get(item,[])])
+        print " ", item, ",".join([str(y) for y in x.cpu_siblings.get(item, [])])
 
     print "mems:", x.listToRange(x.get_mems())
     print "cpu to memory map:"
     for item in x.get_mems():
-        print " ", item, ",".join([str(y) for y in x.mems_map.get(item,[])])
+        print " ", item, ",".join([str(y) for y in x.mems_map.get(item, [])])
 
     rspec_sl_test1 = {"cpu_cores": "1"}
     rec_sl_test1 = {"_rspec": rspec_sl_test1}