[virt-tools-list] [PATCH virt-manager] virtinst/cli: don't use hard-coded path for binaries

Pavel Hrdina phrdina at redhat.com
Mon Mar 23 13:39:14 UTC 2015


The binaries could be installed somewhere else and we should not
hard-code the binary paths.  This patch allows non-root user to build
their own virt-viewer/virsh, set the PATH env and run virt-manager
tests.

Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
---

This is required to run ./setup.py test using Jenkins on nodes without root
privileges.  We are building upstream virt-viewer and libvirt by ourself and
installing them to specific path, which is then exported correctly using
environment variables.

 virtinst/cli.py | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/virtinst/cli.py b/virtinst/cli.py
index 642e4eb..59628b6 100644
--- a/virtinst/cli.py
+++ b/virtinst/cli.py
@@ -26,6 +26,7 @@ import os
 import shlex
 import sys
 import traceback
+import subprocess
 
 import libvirt
 
@@ -379,7 +380,7 @@ def _run_console(args):
 
 
 def _gfx_console(guest):
-    args = ["/usr/bin/virt-viewer",
+    args = ["virt-viewer",
             "--connect", guest.conn.uri,
             "--wait", guest.name]
 
@@ -389,7 +390,7 @@ def _gfx_console(guest):
 
 
 def _txt_console(guest):
-    args = ["/usr/bin/virsh",
+    args = ["virsh",
             "--connect", guest.conn.uri,
             "console", guest.name]
 
@@ -428,7 +429,10 @@ def get_console_cb(guest):
         logging.debug("No viewer to launch for graphics type '%s'", gtype)
         return
 
-    if not os.path.exists("/usr/bin/virt-viewer"):
+    try:
+        subprocess.check_output(["virt-viewer", "--version"],
+                                stdout=subprocess.STDOUT)
+    except OSError:
         logging.warn(_("Unable to connect to graphical console: "
                        "virt-viewer not installed. Please install "
                        "the 'virt-viewer' package."))
-- 
2.0.5




More information about the virt-tools-list mailing list