Browse Source

Merge remote-tracking branch 'origin/pr/301'

* origin/pr/301:
  qvm-features-request: ensure qrexec agent is started
  dnf plugin: don't try to execute qrexec if service is not running
Marek Marczykowski-Górecki 2 years ago
parent
commit
c1c4ed1790
2 changed files with 16 additions and 1 deletions
  1. 8 1
      misc/qvm-features-request
  2. 8 0
      package-managers/dnf-qubes-hooks.py

+ 8 - 1
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)

+ 8 - 0
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: