From bcb91594b2cb1d305391426220f7d4fe7866555c Mon Sep 17 00:00:00 2001 From: Pawel Marczewski Date: Fri, 31 Jan 2020 11:25:31 +0100 Subject: [PATCH] qvm-kill: make error message more clear See QubesOS/qubes-issues#5607. --- qubesadmin/tests/tools/qvm_kill.py | 14 ++++++++++++++ qubesadmin/tools/qvm_kill.py | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/qubesadmin/tests/tools/qvm_kill.py b/qubesadmin/tests/tools/qvm_kill.py index b88a7fb..3309bbf 100644 --- a/qubesadmin/tests/tools/qvm_kill.py +++ b/qubesadmin/tests/tools/qvm_kill.py @@ -64,3 +64,17 @@ class TC_00_qvm_kill(qubesadmin.tests.QubesTestCase): 0) self.assertAllCalled() + def test_004_other_error(self): + self.app.expected_calls[ + ('some-vm', 'admin.vm.Kill', None, None)] = \ + b'2\x00QubesVMError\x00\x00Error message\x00' + self.app.expected_calls[ + ('dom0', 'admin.vm.List', None, None)] = \ + b'0\x00some-vm class=AppVM state=Running\n' + with qubesadmin.tests.tools.StderrBuffer() as stderr: + self.assertEqual( + qubesadmin.tools.qvm_kill.main(['some-vm'], app=self.app), + 1) + self.assertAllCalled() + self.assertIn("Failed to kill 'some-vm': Error message", + stderr.getvalue()) diff --git a/qubesadmin/tools/qvm_kill.py b/qubesadmin/tools/qvm_kill.py index c1e5bd7..88dd6d5 100644 --- a/qubesadmin/tools/qvm_kill.py +++ b/qubesadmin/tools/qvm_kill.py @@ -45,7 +45,8 @@ def main(args=None, app=None): pass except (IOError, OSError, qubesadmin.exc.QubesException) as e: exit_code = 1 - parser.print_error(str(e)) + parser.print_error("Failed to kill '{}': {}".format( + domain.name, e)) return exit_code