瀏覽代碼

utils: get linux-kernels from storage API

Frédéric Pierret (fepitre) 4 年之前
父節點
當前提交
044d91d73e
共有 1 個文件被更改,包括 7 次插入3 次删除
  1. 7 3
      qubesmanager/utils.py

+ 7 - 3
qubesmanager/utils.py

@@ -146,9 +146,13 @@ class KernelVersion:  # pylint: disable=too-few-public-methods
 
 
 def prepare_kernel_choice(widget, holder, propname, default, *args, **kwargs):
-    # TODO get from storage API (pool 'linux-kernel') (suggested by @marmarta)
-    kernels = sorted(os.listdir('/var/lib/qubes/vm-kernels'),
-                     key=KernelVersion)
+    try:
+        app = holder.app
+    except AttributeError:
+        app = holder
+    kernels = [kernel.vid for kernel in app.pools['linux-kernel'].volumes]
+    kernels = sorted(kernels, key=KernelVersion)
+
     return prepare_choice(
         widget, holder, propname, kernels, default, *args, **kwargs)