Merge branch 'hvm' of 10.141.1.101:/var/lib/qubes/git/marmarek/core into hvm

This commit is contained in:
Joanna Rutkowska 2012-06-19 15:23:39 +02:00
commit da70b2ac03
3 changed files with 10 additions and 4 deletions

View File

@ -1301,7 +1301,7 @@ class QubesVm(object):
return conf
def run(self, command, verbose = True, autostart = False, notify_function = None, passio = False, passio_popen = False, localcmd = None, wait = False):
def run(self, command, verbose = True, autostart = False, notify_function = None, passio = False, passio_popen = False, localcmd = None, wait = False, gui = True):
"""command should be in form 'user:cmdline'"""
if not self.is_running():
@ -1321,7 +1321,7 @@ class QubesVm(object):
raise QubesException("Not enough memory to start '{0}' VM! Close one or more running VMs and try again.".format(self.name))
xid = self.get_xid()
if os.getenv("DISPLAY") is not None and not self.is_guid_running():
if gui and os.getenv("DISPLAY") is not None and not self.is_guid_running():
self.start_guid(verbose = verbose, notify_function = notify_function)
args = [qrexec_client_path, "-d", str(xid), command]
@ -2406,6 +2406,8 @@ class QubesHVm(QubesVm):
def run(self, command, **kwargs):
if self.qrexec_installed:
if 'gui' in kwargs and kwargs['gui']==False:
command = "nogui:" + command
super(QubesHVm, self).run(command, **kwargs)
else:
raise QubesException("Needs qrexec agent installed in VM to use this function. See also qvm-prefs.")

View File

@ -85,7 +85,7 @@ def vm_run_cmd(vm, cmd, options):
return vm.run(cmd, autostart = options.auto,
verbose = options.verbose,
notify_function = tray_notify_generic if options.tray else None,
passio = options.passio, localcmd = options.localcmd)
passio = options.passio, localcmd = options.localcmd, gui = options.gui)
except QubesException as err:
if options.tray:
tray_notify_error(str(err))
@ -130,6 +130,9 @@ def main():
parser.add_option ("--force", action="store_true", dest="force", default=False,
help="Force operation, even if may damage other VMs (eg shutdown of NetVM)")
parser.add_option ("--nogui", action="store_false", dest="gui", default=True,
help="Run command without gui")
(options, args) = parser.parse_args ()

View File

@ -91,7 +91,8 @@ def main():
print >> sys.stderr, '--> Syncing \'%s\' clock.' % vm.name
try:
vm.run('root:date -u -s "%s"' % date_out, verbose=verbose)
except NotImplementedError:
except Exception as e:
print >> sys.stderr, "ERROR syncing time in VM '%s': %s" % (vm.name, str(e))
pass
main()