aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorTom Wilkie <tom.wilkie@gmail.com>2007-03-29 17:09:49 +0100
committerTom Wilkie <tom.wilkie@gmail.com>2007-03-29 17:09:49 +0100
commit5e7badb94112bdaed853eed349b40a3f1fbfeb0d (patch)
tree4b1b24b373c4e6898f080bc4ad06cafb49044e5c /tools
parent90bc7dea0e4996f8bfe2952d53943182ee75eef3 (diff)
downloadxen-5e7badb94112bdaed853eed349b40a3f1fbfeb0d.tar.gz
xen-5e7badb94112bdaed853eed349b40a3f1fbfeb0d.tar.bz2
xen-5e7badb94112bdaed853eed349b40a3f1fbfeb0d.zip
Let xm commands use domids with XenAPI
signed-off-by: Tom Wilkie <tom.wilkie@gmail.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/python/xen/xm/main.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/tools/python/xen/xm/main.py b/tools/python/xen/xm/main.py
index 35d6305b36..34a3a5d516 100644
--- a/tools/python/xen/xm/main.py
+++ b/tools/python/xen/xm/main.py
@@ -560,11 +560,21 @@ def err(msg):
def get_single_vm(dom):
if serverType == SERVER_XEN_API:
uuids = server.xenapi.VM.get_by_name_label(dom)
- n = len(uuids)
- if n > 0:
+ if len(uuids) > 0:
return uuids[0]
- else:
- raise OptionError("Domain '%s' not found." % dom)
+
+ try:
+ domid = int(dom)
+ uuids = [server.xenapi.VM.get_domid(vm_ref)
+ for vm_ref in server.xenapi.VM.get_all()
+ if int(server.xenapi.VM.get_domid(vm_ref)) == domid]
+ except:
+ pass
+
+ if len(uuids) > 0:
+ return uuids[0]
+
+ raise OptionError("Domain '%s' not found." % dom)
else:
dominfo = server.xend.domain(dom, False)
return dominfo['uuid']