2016-03-03 16 views
1

我正在使用Libvirt的python绑定。如何使用libvirt为Xen中的域添加或删除VCPU和内存?Libvirt python添加vCPU和内存

在命令行我使用:

的vCPU:

xm vcpu-set [domain-id] [count in #cores] 

内存:

Memory: xm mem-set [domain-id] [count in MB] 

我如何在Python与libvirt的绑定运行这些命令?不使用子进程。

回答

1
from xen.util.xmlrpcclient import ServerProxy 
server = ServerProxy(serverURI) 
def xm_vcpu_pin(args): 

    def cpu_make_map(cpulist): 
     cpus = [] 
     for c in cpulist.split(','): 
      if c == '': 
       continue 
      if c.find('-') != -1: 
       (x, y) = c.split('-') 
       for i in range(int(x), int(y) + 1): 
        cpus.append(int(i)) 
      else: 
       # remove this element from the list 
       if c[0] == '^': 
        cpus = [x for x in cpus if x != int(c[1:])] 
       else: 
        cpus.append(int(c)) 
     cpus.sort() 
     return ",".join(map(str, cpus)) 

    dom = args[0] 
    vcpu = args[1] 
    cpumap = cpu_make_map(args[2]) 

    server.xend.domain.pincpu(dom, vcpu, cpumap) 

pinning vcpus with python

完整的示例