예제 #1
0
파일: ct.py 프로젝트: OpenVZ/vcmmd
        '''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)
예제 #2
0
파일: vm.py 프로젝트: OpenVZ/vcmmd
        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)