From f17f80ee9d753bfd1be635731cd88f50d61ba891 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Tue, 9 Aug 2016 04:22:05 +0200 Subject: [PATCH] qubes/tools: add qvm-template-commit This tool is called from /etc/xen/scripts/block-origin script at VM shutdown. --- doc/manpages/qvm-template-commit.rst | 8 +++++ qubes/tools/qvm_template_commit.py | 52 ++++++++++++++++++++++++++++ rpm_spec/core-dom0.spec | 1 + 3 files changed, 61 insertions(+) create mode 100644 qubes/tools/qvm_template_commit.py diff --git a/doc/manpages/qvm-template-commit.rst b/doc/manpages/qvm-template-commit.rst index 38ab9400..fd554068 100644 --- a/doc/manpages/qvm-template-commit.rst +++ b/doc/manpages/qvm-template-commit.rst @@ -15,6 +15,14 @@ Options Show this help message and exit +.. option:: --verbose, -v + + Increase verbosity. + +.. option:: --quiet, -q + + Decrease verbosity. + Authors ======= | Joanna Rutkowska diff --git a/qubes/tools/qvm_template_commit.py b/qubes/tools/qvm_template_commit.py new file mode 100644 index 00000000..f89b148a --- /dev/null +++ b/qubes/tools/qvm_template_commit.py @@ -0,0 +1,52 @@ +#!/usr/bin/python2 -O +# vim: fileencoding=utf-8 + +# +# The Qubes OS Project, https://www.qubes-os.org/ +# +# Copyright (C) 2010-2015 Joanna Rutkowska +# Copyright (C) 2015 Wojtek Porczyk +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 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 General Public License for more details. +# +# You should have received a copy of the GNU 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. +# + +'''qvm-template-commit - Commit disk changes''' + +import sys +import qubes + + +parser = qubes.tools.QubesArgumentParser(vmname_nargs=1, + description='commit VM disk changes; this tool isn\'t intended to manual ' + 'use') + + +def main(args=None): + '''Main routine of :program:`qvm-pause`. + + :param list args: Optional arguments to override those delivered from \ + command line. + ''' + + args = parser.parse_args(args) + args.app.offline_mode = True + for domain in args.domains: + domain.storage.commit() + + return 0 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/rpm_spec/core-dom0.spec b/rpm_spec/core-dom0.spec index 682f1f02..138efe6a 100644 --- a/rpm_spec/core-dom0.spec +++ b/rpm_spec/core-dom0.spec @@ -262,6 +262,7 @@ fi %{python_sitelib}/qubes/tools/qvm_run.py* %{python_sitelib}/qubes/tools/qvm_shutdown.py* %{python_sitelib}/qubes/tools/qvm_start.py* +%{python_sitelib}/qubes/tools/qvm_template_commit.py* %{python_sitelib}/qubes/tools/qvm_unpause.py* %dir %{python_sitelib}/qubes/ext