diff --git a/misc/qvm-features-request b/misc/qvm-features-request index 4d21c2b..09acd13 100755 --- a/misc/qvm-features-request +++ b/misc/qvm-features-request @@ -29,6 +29,12 @@ import sys import qubesdb + +def is_active(service): + status = subprocess.call(["systemctl", "is-active", "--quiet", service]) + return status == 0 + + class FeatureRequestAction(argparse.Action): '''Action for argument parser that stores a property.''' # pylint: disable=redefined-builtin,too-few-public-methods @@ -66,7 +72,8 @@ parser.add_argument('features', def main(args=None): args = parser.parse_args(args) - + if not is_active("qubes-qrexec-agent"): + return qdb = qubesdb.QubesDB() for feature, value in args.features.items(): qdb.write('/features-request/' + feature, value) diff --git a/package-managers/dnf-qubes-hooks.py b/package-managers/dnf-qubes-hooks.py index 473553d..3a957fd 100644 --- a/package-managers/dnf-qubes-hooks.py +++ b/package-managers/dnf-qubes-hooks.py @@ -28,6 +28,10 @@ import subprocess PLUGIN_CONF = 'qubes-hooks' +def is_active(service): + status = subprocess.call(["systemctl", "is-active", "--quiet", service]) + return status == 0 + class QubesHooks(dnf.Plugin): name = 'qubes-hooks' @@ -37,6 +41,8 @@ class QubesHooks(dnf.Plugin): self.log = logging.getLogger('dnf') def resolved(self): + if not is_active("qubes-qrexec-agent"): + return # in case of no action to do, transaction() hook won't be called; # report updates availability here - especially when everything is up # to date - to clear updates-available flag @@ -53,6 +59,8 @@ class QubesHooks(dnf.Plugin): ]) def transaction(self): + if not is_active("qubes-qrexec-agent"): + return if LooseVersion(dnf.const.VERSION) < '2.0.0': config = self.read_config(self.base.conf, PLUGIN_CONF) else: