diff --git a/qubesmgmt/tests/tools/qvm_remove.py b/qubesmgmt/tests/tools/qvm_remove.py new file mode 100644 index 0000000..3ede6f4 --- /dev/null +++ b/qubesmgmt/tests/tools/qvm_remove.py @@ -0,0 +1,35 @@ +# -*- encoding: utf8 -*- +# +# The Qubes OS Project, http://www.qubes-os.org +# +# Copyright (C) 2017 Marek Marczykowski-Górecki +# +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License along +# with this program; if not, see . + +import qubesmgmt.tests +import qubesmgmt.tests.tools +import qubesmgmt.tools.qvm_remove + + +class TC_00_qvm_remove(qubesmgmt.tests.QubesTestCase): + def test_000_single(self): + self.app.expected_calls[ + ('dom0', 'mgmt.vm.List', None, None)] = \ + b'0\x00some-vm class=AppVM state=Running\n' + self.app.expected_calls[ + ('some-vm', 'mgmt.vm.Remove', None, None)] = \ + b'0\x00\n' + qubesmgmt.tools.qvm_remove.main(['some-vm'], app=self.app) + self.assertAllCalled() diff --git a/qubesmgmt/tools/qvm_remove.py b/qubesmgmt/tools/qvm_remove.py new file mode 100644 index 0000000..488e029 --- /dev/null +++ b/qubesmgmt/tools/qvm_remove.py @@ -0,0 +1,42 @@ +# +# The Qubes OS Project, http://www.qubes-os.org +# +# Copyright (C) 2017 Marek Marczykowski-Górecki +# +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# + +''' Remove domains from the system ''' + +import sys + +from qubesmgmt.tools import QubesArgumentParser + +parser = QubesArgumentParser(description=__doc__, + want_app=True, + vmname_nargs='+') + + +def main(args=None, app=None): # pylint: disable=missing-docstring + args = parser.parse_args(args, app=app) + for vm in args.domains: + del args.app.domains[vm.name] + + return 0 + + +if __name__ == '__main__': + sys.exit(main())