--- 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