From 32538fa5eccc42442c70f8de09e376c2f271ddce Mon Sep 17 00:00:00 2001 From: Malte Leip Date: Wed, 29 May 2019 20:32:13 +0200 Subject: [PATCH] qvm-prefs: add --hide-default option --- doc/manpages/qubes-prefs.rst | 4 ++++ doc/manpages/qvm-prefs.rst | 4 ++++ qubesadmin/tests/tools/qubes_prefs.py | 5 +++++ qubesadmin/tests/tools/qvm_prefs.py | 5 +++++ qubesadmin/tools/qubes_prefs.py | 2 -- qubesadmin/tools/qvm_prefs.py | 13 ++++++++----- 6 files changed, 26 insertions(+), 7 deletions(-) diff --git a/doc/manpages/qubes-prefs.rst b/doc/manpages/qubes-prefs.rst index 803b1b1..4a4296b 100644 --- a/doc/manpages/qubes-prefs.rst +++ b/doc/manpages/qubes-prefs.rst @@ -19,6 +19,10 @@ Options List available properties with short descriptions and exit. +.. option:: --hide-default + + Do not show properties that are set to the default value. + .. option:: --verbose, -v Increase verbosity. diff --git a/doc/manpages/qvm-prefs.rst b/doc/manpages/qvm-prefs.rst index afd89d7..8a90f13 100644 --- a/doc/manpages/qvm-prefs.rst +++ b/doc/manpages/qvm-prefs.rst @@ -19,6 +19,10 @@ Options List available properties with short descriptions and exit. +.. option:: --hide-default + + Do not show properties that are set to the default value. + .. option:: --verbose, -v Increase verbosity. diff --git a/qubesadmin/tests/tools/qubes_prefs.py b/qubesadmin/tests/tools/qubes_prefs.py index 4403f14..9d1ebf4 100644 --- a/qubesadmin/tests/tools/qubes_prefs.py +++ b/qubesadmin/tests/tools/qubes_prefs.py @@ -39,6 +39,11 @@ class TC_00_qubes_prefs(qubesadmin.tests.QubesTestCase): self.assertEqual(stdout.getvalue(), 'prop1 D value1\n' 'prop2 - value2\n') + with qubesadmin.tests.tools.StdoutBuffer() as stdout: + self.assertEqual(0, qubesadmin.tools.qubes_prefs.main([ + '--hide-default'], app=self.app)) + self.assertEqual(stdout.getvalue(), + 'prop2 - value2\n') self.assertAllCalled() def test_002_set_property(self): diff --git a/qubesadmin/tests/tools/qvm_prefs.py b/qubesadmin/tests/tools/qvm_prefs.py index 08b153f..4d1e3ea 100644 --- a/qubesadmin/tests/tools/qvm_prefs.py +++ b/qubesadmin/tests/tools/qvm_prefs.py @@ -44,6 +44,11 @@ class TC_00_qvm_prefs(qubesadmin.tests.QubesTestCase): self.assertEqual(stdout.getvalue(), 'prop1 D value1\n' 'prop2 - value2\n') + with qubesadmin.tests.tools.StdoutBuffer() as stdout: + self.assertEqual(0, qubesadmin.tools.qvm_prefs.main([ + 'dom0','--hide-default'], app=self.app)) + self.assertEqual(stdout.getvalue(), + 'prop2 - value2\n') self.assertAllCalled() def test_001_no_vm(self): diff --git a/qubesadmin/tools/qubes_prefs.py b/qubesadmin/tools/qubes_prefs.py index 9a68187..2e354c3 100644 --- a/qubesadmin/tools/qubes_prefs.py +++ b/qubesadmin/tools/qubes_prefs.py @@ -20,8 +20,6 @@ ''' Manipulate global properties.''' -# TODO list only non-default properties - from __future__ import print_function import sys diff --git a/qubesadmin/tools/qvm_prefs.py b/qubesadmin/tools/qvm_prefs.py index e90daeb..d016135 100644 --- a/qubesadmin/tools/qvm_prefs.py +++ b/qubesadmin/tools/qvm_prefs.py @@ -19,7 +19,6 @@ # with this program; if not, see . ''' Manipulate VM properties.''' -# TODO list only non-default properties from __future__ import print_function @@ -41,6 +40,10 @@ def get_parser(vmname_nargs=1): action='store_true', help='list all available properties with short descriptions and exit') + parser.add_argument('--hide-default', + action='store_true', + help='Do not show properties that are set to the default value.') + parser.add_argument('--get', '-g', action='store_true', help='Ignored; for compatibility with older scripts.') @@ -101,12 +104,12 @@ def process_actions(parser, args, target): name=prop, width=width)) continue - if target.property_is_default(prop): - print('{name:{width}s} D {value!s}'.format( - name=prop, width=width, value=value)) - else: + if not target.property_is_default(prop): print('{name:{width}s} - {value!s}'.format( name=prop, width=width, value=value)) + elif not args.hide_default: + print('{name:{width}s} D {value!s}'.format( + name=prop, width=width, value=value)) return 0 else: