diff --git a/qubesmgmt/tools/qvm_pause.py b/qubesmgmt/tools/qvm_pause.py index 6180b80..2cf1880 100644 --- a/qubesmgmt/tools/qvm_pause.py +++ b/qubesmgmt/tools/qvm_pause.py @@ -36,10 +36,15 @@ def main(args=None, app=None): ''' args = parser.parse_args(args, app=app) + exit_code = 0 for domain in args.domains: - domain.pause() + try: + domain.pause() + except (IOError, OSError, qubesmgmt.exc.QubesException) as e: + exit_code = 1 + parser.print_error(str(e)) - return 0 + return exit_code if __name__ == '__main__': diff --git a/qubesmgmt/tools/qvm_shutdown.py b/qubesmgmt/tools/qvm_shutdown.py index 3cbc96c..eefecc1 100644 --- a/qubesmgmt/tools/qvm_shutdown.py +++ b/qubesmgmt/tools/qvm_shutdown.py @@ -28,6 +28,7 @@ import sys import time import qubesmgmt.tools +import qubesmgmt.exc parser = qubesmgmt.tools.QubesArgumentParser( description=__doc__, vmname_nargs='+') @@ -52,8 +53,10 @@ def main(args=None, app=None): # pylint: disable=missing-docstring args = parser.parse_args(args, app=app) for vm in args.domains: - if not vm.is_halted(): + try: vm.shutdown(force=args.force) + except qubesmgmt.exc.QubesVMNotStartedError: + pass if not args.wait: return diff --git a/qubesmgmt/tools/qvm_unpause.py b/qubesmgmt/tools/qvm_unpause.py index ccea83a..b944366 100644 --- a/qubesmgmt/tools/qvm_unpause.py +++ b/qubesmgmt/tools/qvm_unpause.py @@ -37,10 +37,15 @@ def main(args=None, app=None): ''' args = parser.parse_args(args, app=app) + exit_code = 0 for domain in args.domains: - domain.unpause() + try: + domain.unpause() + except (IOError, OSError, qubesmgmt.exc.QubesException) as e: + exit_code = 1 + parser.print_error(str(e)) - return 0 + return exit_code if __name__ == '__main__':