+ self.freezeUnits("freezer.state", freezeList)
+
+ def freezeUnits (self, var_name, freezeList):
+ for (slicename, freeze) in list(freezeList.items()):
+ try:
+ 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:
+ 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))
+