diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2009-04-27 15:42:38 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2009-04-27 15:42:38 +0100 |
commit | 55a21ac0878b1e3c418775c424c514e662fb30a7 (patch) | |
tree | 5133159fcbdc3fae96ff93f54ac1c6bcb680eba0 | |
parent | 0d5ae43e5ff9bda4b7bdb1ab71b0a58a1b8e6857 (diff) | |
download | xen-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.py | 3 | ||||
-rw-r--r-- | tools/python/xen/xend/XendDomain.py | 1 | ||||
-rw-r--r-- | tools/python/xen/xm/main.py | 5 |
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) |