aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
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']