aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-04-27 15:42:38 +0100
committerKeir Fraser <keir.fraser@citrix.com>2009-04-27 15:42:38 +0100
commit55a21ac0878b1e3c418775c424c514e662fb30a7 (patch)
tree5133159fcbdc3fae96ff93f54ac1c6bcb680eba0
parent0d5ae43e5ff9bda4b7bdb1ab71b0a58a1b8e6857 (diff)
downloadxen-55a21ac0878b1e3c418775c424c514e662fb30a7.tar.gz
xen-55a21ac0878b1e3c418775c424c514e662fb30a7.tar.bz2
xen-55a21ac0878b1e3c418775c424c514e662fb30a7.zip
xend: Fix for op_pincpu in SrvDomain.py
op_pincpu method in SrvDomain.py does not currently work because op_pincpu method gives string objects to a cpumap argument of domain_pincpu method in XendDomain.py though the cpumap argument expects list objects. This patch solves the above problem as follows. op_pincpu method gives string objects to the cpumap argument as is, because op_pincpu method cannot give list objects to the cpumap argument. Instead, domain_pincpu method expects that the cpumap argument is string objects, then domain_pincpu method converts the cpumap argument into list objects. Also, the patch modifies two methods (except for op_pincpu method) calling domain_pincpu method. The methods give string objects to the cpumap argument instead of list objects. Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
-rw-r--r--tools/python/xen/xend/XendAPI.py3
-rw-r--r--tools/python/xen/xend/XendDomain.py1
-rw-r--r--tools/python/xen/xm/main.py5
3 files changed, 4 insertions, 5 deletions
diff --git a/tools/python/xen/xend/XendAPI.py b/tools/python/xen/xend/XendAPI.py
index fb39fd87c7..07e6b2100e 100644
--- a/tools/python/xen/xend/XendAPI.py
+++ b/tools/python/xen/xend/XendAPI.py
@@ -1509,8 +1509,7 @@ class XendAPI(object):
if key.startswith("cpumap"):
vcpu = int(key[6:])
try:
- cpus = map(int, value.split(","))
- xendom.domain_pincpu(xeninfo.getDomid(), vcpu, cpus)
+ xendom.domain_pincpu(xeninfo.getDomid(), vcpu, value)
except Exception, ex:
log.exception(ex)
diff --git a/tools/python/xen/xend/XendDomain.py b/tools/python/xen/xend/XendDomain.py
index b624f786ad..a8ee276df8 100644
--- a/tools/python/xen/xend/XendDomain.py
+++ b/tools/python/xen/xend/XendDomain.py
@@ -1442,6 +1442,7 @@ class XendDomain:
# set the same cpumask for all vcpus
rc = 0
cpus = dominfo.getCpus()
+ cpumap = map(int, cpumap.split(","))
for v in vcpus:
try:
if dominfo._stateGet() in (DOM_STATE_RUNNING, DOM_STATE_PAUSED):
diff --git a/tools/python/xen/xm/main.py b/tools/python/xen/xm/main.py
index a7b375dafa..ae3bc5a914 100644
--- a/tools/python/xen/xm/main.py
+++ b/tools/python/xen/xm/main.py
@@ -1379,7 +1379,7 @@ def xm_vcpu_pin(args):
else:
cpus.append(int(c))
cpus.sort()
- return cpus
+ return ",".join(map(str, cpus))
dom = args[0]
vcpu = args[1]
@@ -1389,9 +1389,8 @@ def xm_vcpu_pin(args):
cpumap = cpu_make_map(args[2])
if serverType == SERVER_XEN_API:
- cpumap = map(str, cpumap)
server.xenapi.VM.add_to_VCPUs_params_live(
- get_single_vm(dom), "cpumap%i" % int(vcpu), ",".join(cpumap))
+ get_single_vm(dom), "cpumap%i" % int(vcpu), cpumap)
else:
server.xend.domain.pincpu(dom, vcpu, cpumap)