[PATCH 1/1] virtinst: Use sudo where root permission is needed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



---
 virtinst/urlfetcher.py | 6 +++---
 virtinst/util.py       | 9 ++++++++-
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/virtinst/urlfetcher.py b/virtinst/urlfetcher.py
index 89943f63..1fcaacd6 100644
--- a/virtinst/urlfetcher.py
+++ b/virtinst/urlfetcher.py
@@ -26,7 +26,6 @@ import os
 import re
 import stat
 import StringIO
-import subprocess
 import tempfile
 import urllib2
 import urlparse
@@ -34,6 +33,7 @@ import urlparse
 import requests
 
 from .osdict import OSDB
+from . import util
 
 
 #########################################################################
@@ -313,7 +313,7 @@ class _MountedURLFetcher(_LocalURLFetcher):
 
         logging.debug("mount cmd: %s", cmd)
         if not self._in_test_suite:
-            ret = subprocess.call(cmd)
+            ret = util.subprocess_call_as_root(cmd)
             if ret != 0:
                 self.cleanupLocation()
                 raise ValueError(_("Mounting location '%s' failed") %
@@ -329,7 +329,7 @@ class _MountedURLFetcher(_LocalURLFetcher):
         try:
             if not self._in_test_suite:
                 cmd = ["/bin/umount", self._srcdir]
-                subprocess.call(cmd)
+                util.subprocess_call_as_root(cmd)
                 try:
                     os.rmdir(self._srcdir)
                 except Exception:
diff --git a/virtinst/util.py b/virtinst/util.py
index 495a0841..48842b47 100644
--- a/virtinst/util.py
+++ b/virtinst/util.py
@@ -22,11 +22,11 @@ import logging
 import os
 import random
 import re
+import subprocess
 import sys
 
 import libvirt
 
-
 def listify(l):
     if l is None:
         return []
@@ -317,3 +317,10 @@ def make_meter(quiet):
     if quiet:
         return progress.BaseMeter()
     return progress.TextMeter(fo=sys.stdout)
+
+def subprocess_call_as_root(cmd):
+    if os.getuid() != 0:
+        from cli import print_stdout
+        print_stdout("Need sudo to run: %s" % cmd)
+        cmd.insert(0, "sudo")
+    return subprocess.call(cmd)
-- 
2.14.1

_______________________________________________
virt-tools-list mailing list
virt-tools-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/virt-tools-list



[Index of Archives]     [Linux Virtualization]     [KVM Development]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux