'''Change list of memory nodes for CT This function changes CT affinity for memory and migrates CT's memory accordingly ''' try: self._cpusetcg.set_memory_migrate(True) self._cpusetcg.set_node_list(nodes) except IOError as err: raise Error('Cgroup write failed: %s' % err) def pin_cpu_list(self, cpus): '''Change list of CPUs for CT This function changes CT affinity for CPUs ''' try: self._cpusetcg.set_cpu_list(cpus) except IOError as err: raise Error('Cgroup write failed: %s' % err) class ServiceCTImpl(ABSVEImpl): VE_TYPE = VE_TYPE_SERVICE register_ve_impl(CTImpl) register_ve_impl(ServiceCTImpl)
except libvirtError as err: raise Error(str(err)) @property def nr_cpus(self): try: self._nr_cpus = self._libvirt_domain.vcpusFlags(AFFECT_LIVE) return self._nr_cpus except libvirtError: return getattr(self, "_nr_cpus", -1) class VMLinImpl(VMImpl): VE_TYPE = VE_TYPE_VM_LINUX class VMWinImpl(VMImpl): VE_TYPE = VE_TYPE_VM_WINDOWS def get_stats(self): stats = super(VMWinImpl, self).get_stats() if stats['memavail'] < 0: stats['memavail'] = stats['memfree'] return stats register_ve_impl(VMImpl) register_ve_impl(VMLinImpl) register_ve_impl(VMWinImpl)