def get_node_list(self): '''Get list of nodes where VM is running NOTE: only for memory ''' try: ret = self._libvirt_domain.numaParameters() except libvirtError as err: raise Error(str(err)) return parse_range_list(ret['numa_nodeset'])
def __init__(self, **kv): self._kv = {} for k, v in kv.iteritems(): if k not in _VEConfigFields: raise TypeError("unexpected keyword argument '%s'" % k) if k not in _VEConfigFields_string: self._kv[str(k)] = int(v) else: if k in ["nodelist", "cpulist"]: self._kv[str(k)] = parse_range_list(str(v)) continue self._kv[str(k)] = str(v)
def init(cls): if cls.__inited: return cls.nodes_ids = cls.get_nodes_ids() cls.cpu_list = {} for n in cls.nodes_ids[:]: node_dir = cls.NUMA_NODE_SYS_PATH % n with open(node_dir + "cpulist") as f: cpu_list = parse_range_list(f.read()) if not cpu_list: cls.nodes_ids.remove(n) continue cls.cpu_list[n] = cpu_list cls.__inited = True
def get_node_list(self): return parse_range_list(self._read_file_str("mems"))
def get_cpu_list(self): return parse_range_list(self._read_file_str("cpus"))
def get_nodes_ids(): with open("/sys/devices/system/node/online") as node_list: return parse_range_list(node_list.read())