tools/qvm-run: ignore --filter-esc/--no-filter-esc unless --pass-io is given
If no VM output is printed on terminal, those options doesn't make sense anyway. Fixes QubesOS/qubes-issues#3013
This commit is contained in:
parent
e64bd839a5
commit
596eb3d96c
@ -52,7 +52,6 @@ class TC_00_qvm_run(qubesadmin.tests.QubesTestCase):
|
|||||||
self.assertEqual(ret, 0)
|
self.assertEqual(ret, 0)
|
||||||
self.assertEqual(self.app.service_calls, [
|
self.assertEqual(self.app.service_calls, [
|
||||||
('test-vm', 'qubes.VMShell', {
|
('test-vm', 'qubes.VMShell', {
|
||||||
'filter_esc': self.default_filter_esc(),
|
|
||||||
'localcmd': None,
|
'localcmd': None,
|
||||||
'stdout': subprocess.DEVNULL,
|
'stdout': subprocess.DEVNULL,
|
||||||
'stderr': subprocess.DEVNULL,
|
'stderr': subprocess.DEVNULL,
|
||||||
@ -83,7 +82,6 @@ class TC_00_qvm_run(qubesadmin.tests.QubesTestCase):
|
|||||||
self.assertEqual(ret, 0)
|
self.assertEqual(ret, 0)
|
||||||
self.assertEqual(self.app.service_calls, [
|
self.assertEqual(self.app.service_calls, [
|
||||||
('test-vm', 'qubes.VMShell', {
|
('test-vm', 'qubes.VMShell', {
|
||||||
'filter_esc': self.default_filter_esc(),
|
|
||||||
'localcmd': None,
|
'localcmd': None,
|
||||||
'stdout': subprocess.DEVNULL,
|
'stdout': subprocess.DEVNULL,
|
||||||
'stderr': subprocess.DEVNULL,
|
'stderr': subprocess.DEVNULL,
|
||||||
@ -91,7 +89,6 @@ class TC_00_qvm_run(qubesadmin.tests.QubesTestCase):
|
|||||||
}),
|
}),
|
||||||
('test-vm', 'qubes.VMShell', b'command; exit\n'),
|
('test-vm', 'qubes.VMShell', b'command; exit\n'),
|
||||||
('test-vm2', 'qubes.VMShell', {
|
('test-vm2', 'qubes.VMShell', {
|
||||||
'filter_esc': self.default_filter_esc(),
|
|
||||||
'localcmd': None,
|
'localcmd': None,
|
||||||
'stdout': subprocess.DEVNULL,
|
'stdout': subprocess.DEVNULL,
|
||||||
'stderr': subprocess.DEVNULL,
|
'stderr': subprocess.DEVNULL,
|
||||||
@ -238,7 +235,6 @@ class TC_00_qvm_run(qubesadmin.tests.QubesTestCase):
|
|||||||
self.assertEqual(ret, 0)
|
self.assertEqual(ret, 0)
|
||||||
self.assertEqual(self.app.service_calls, [
|
self.assertEqual(self.app.service_calls, [
|
||||||
('test-vm', 'qubes.VMShell', {
|
('test-vm', 'qubes.VMShell', {
|
||||||
'filter_esc': self.default_filter_esc(),
|
|
||||||
'localcmd': 'local-command',
|
'localcmd': 'local-command',
|
||||||
'stdout': None,
|
'stdout': None,
|
||||||
'stderr': None,
|
'stderr': None,
|
||||||
@ -270,7 +266,6 @@ class TC_00_qvm_run(qubesadmin.tests.QubesTestCase):
|
|||||||
}),
|
}),
|
||||||
('test-vm', 'qubes.WaitForSession', b'user'),
|
('test-vm', 'qubes.WaitForSession', b'user'),
|
||||||
('test-vm', 'qubes.VMShell', {
|
('test-vm', 'qubes.VMShell', {
|
||||||
'filter_esc': self.default_filter_esc(),
|
|
||||||
'localcmd': None,
|
'localcmd': None,
|
||||||
'stdout': subprocess.DEVNULL,
|
'stdout': subprocess.DEVNULL,
|
||||||
'stderr': subprocess.DEVNULL,
|
'stderr': subprocess.DEVNULL,
|
||||||
@ -302,7 +297,6 @@ class TC_00_qvm_run(qubesadmin.tests.QubesTestCase):
|
|||||||
}),
|
}),
|
||||||
('test-vm', 'qubes.WaitForSession', b'user'),
|
('test-vm', 'qubes.WaitForSession', b'user'),
|
||||||
('test-vm', 'service.name', {
|
('test-vm', 'service.name', {
|
||||||
'filter_esc': self.default_filter_esc(),
|
|
||||||
'localcmd': None,
|
'localcmd': None,
|
||||||
'stdout': subprocess.DEVNULL,
|
'stdout': subprocess.DEVNULL,
|
||||||
'stderr': subprocess.DEVNULL,
|
'stderr': subprocess.DEVNULL,
|
||||||
@ -318,7 +312,6 @@ class TC_00_qvm_run(qubesadmin.tests.QubesTestCase):
|
|||||||
self.assertEqual(ret, 0)
|
self.assertEqual(ret, 0)
|
||||||
self.assertEqual(self.app.service_calls, [
|
self.assertEqual(self.app.service_calls, [
|
||||||
('$dispvm', 'test.service', {
|
('$dispvm', 'test.service', {
|
||||||
'filter_esc': self.default_filter_esc(),
|
|
||||||
'localcmd': None,
|
'localcmd': None,
|
||||||
'stdout': subprocess.DEVNULL,
|
'stdout': subprocess.DEVNULL,
|
||||||
'stderr': subprocess.DEVNULL,
|
'stderr': subprocess.DEVNULL,
|
||||||
@ -334,7 +327,6 @@ class TC_00_qvm_run(qubesadmin.tests.QubesTestCase):
|
|||||||
self.assertEqual(ret, 0)
|
self.assertEqual(ret, 0)
|
||||||
self.assertEqual(self.app.service_calls, [
|
self.assertEqual(self.app.service_calls, [
|
||||||
('$dispvm:test-vm', 'test.service', {
|
('$dispvm:test-vm', 'test.service', {
|
||||||
'filter_esc': self.default_filter_esc(),
|
|
||||||
'localcmd': None,
|
'localcmd': None,
|
||||||
'stdout': subprocess.DEVNULL,
|
'stdout': subprocess.DEVNULL,
|
||||||
'stderr': subprocess.DEVNULL,
|
'stderr': subprocess.DEVNULL,
|
||||||
@ -356,7 +348,6 @@ class TC_00_qvm_run(qubesadmin.tests.QubesTestCase):
|
|||||||
self.assertEqual(ret, 0)
|
self.assertEqual(ret, 0)
|
||||||
self.assertEqual(self.app.service_calls, [
|
self.assertEqual(self.app.service_calls, [
|
||||||
('disp123', 'test.service', {
|
('disp123', 'test.service', {
|
||||||
'filter_esc': self.default_filter_esc(),
|
|
||||||
'localcmd': None,
|
'localcmd': None,
|
||||||
'stdout': subprocess.DEVNULL,
|
'stdout': subprocess.DEVNULL,
|
||||||
'stderr': subprocess.DEVNULL,
|
'stderr': subprocess.DEVNULL,
|
||||||
@ -378,7 +369,6 @@ class TC_00_qvm_run(qubesadmin.tests.QubesTestCase):
|
|||||||
self.assertEqual(ret, 0)
|
self.assertEqual(ret, 0)
|
||||||
self.assertEqual(self.app.service_calls, [
|
self.assertEqual(self.app.service_calls, [
|
||||||
('disp123', 'test.service', {
|
('disp123', 'test.service', {
|
||||||
'filter_esc': self.default_filter_esc(),
|
|
||||||
'localcmd': None,
|
'localcmd': None,
|
||||||
'stdout': subprocess.DEVNULL,
|
'stdout': subprocess.DEVNULL,
|
||||||
'stderr': subprocess.DEVNULL,
|
'stderr': subprocess.DEVNULL,
|
||||||
@ -406,7 +396,6 @@ class TC_00_qvm_run(qubesadmin.tests.QubesTestCase):
|
|||||||
self.assertEqual(ret, 0)
|
self.assertEqual(ret, 0)
|
||||||
self.assertEqual(self.app.service_calls, [
|
self.assertEqual(self.app.service_calls, [
|
||||||
('test-vm', 'qubes.VMShell', {
|
('test-vm', 'qubes.VMShell', {
|
||||||
'filter_esc': self.default_filter_esc(),
|
|
||||||
'localcmd': None,
|
'localcmd': None,
|
||||||
'stdout': subprocess.DEVNULL,
|
'stdout': subprocess.DEVNULL,
|
||||||
'stderr': subprocess.DEVNULL,
|
'stderr': subprocess.DEVNULL,
|
||||||
|
@ -150,6 +150,8 @@ def main(args=None, app=None):
|
|||||||
# connect process output to stdout/err directly if --pass-io is given
|
# connect process output to stdout/err directly if --pass-io is given
|
||||||
run_kwargs['stdout'] = None
|
run_kwargs['stdout'] = None
|
||||||
run_kwargs['stderr'] = None
|
run_kwargs['stderr'] = None
|
||||||
|
if not args.localcmd and args.filter_esc:
|
||||||
|
run_kwargs['filter_esc'] = True
|
||||||
|
|
||||||
if isinstance(args.app, qubesadmin.app.QubesLocal) and \
|
if isinstance(args.app, qubesadmin.app.QubesLocal) and \
|
||||||
not args.passio and \
|
not args.passio and \
|
||||||
@ -205,13 +207,11 @@ def main(args=None, app=None):
|
|||||||
proc = vm.run_service(args.cmd,
|
proc = vm.run_service(args.cmd,
|
||||||
user=args.user,
|
user=args.user,
|
||||||
localcmd=args.localcmd,
|
localcmd=args.localcmd,
|
||||||
filter_esc=args.filter_esc,
|
|
||||||
**run_kwargs)
|
**run_kwargs)
|
||||||
else:
|
else:
|
||||||
proc = vm.run_service('qubes.VMShell',
|
proc = vm.run_service('qubes.VMShell',
|
||||||
user=args.user,
|
user=args.user,
|
||||||
localcmd=args.localcmd,
|
localcmd=args.localcmd,
|
||||||
filter_esc=args.filter_esc,
|
|
||||||
**run_kwargs)
|
**run_kwargs)
|
||||||
proc.stdin.write(vm.prepare_input_for_vmshell(args.cmd))
|
proc.stdin.write(vm.prepare_input_for_vmshell(args.cmd))
|
||||||
proc.stdin.flush()
|
proc.stdin.flush()
|
||||||
|
Loading…
Reference in New Issue
Block a user