From eeb4d901a7515daf64cbb054ec36c544a63047fb Mon Sep 17 00:00:00 2001
From: "Chandan Kumar (raukadah)" <chkumar@redhat.com>
Date: Wed, 9 Dec 2020 20:05:18 +0530
Subject: [PATCH] Enable dracut list installed modules

While looking at DIB logs, it is very hard to debug dracut
issues due to missing modules, listing dracut modules will
give an insight.

Related-Bug: #1907457

Signed-off-by: Chandan Kumar (raukadah) <chkumar@redhat.com>
Change-Id: I4d277bdfd648adba5a749d22d905c66b807e249a
---
 .../dracut-regenerate/finalise.d/50-dracut-regenerate | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/diskimage_builder/elements/dracut-regenerate/finalise.d/50-dracut-regenerate b/diskimage_builder/elements/dracut-regenerate/finalise.d/50-dracut-regenerate
index a756d8b6f..89bf9d841 100755
--- a/diskimage_builder/elements/dracut-regenerate/finalise.d/50-dracut-regenerate
+++ b/diskimage_builder/elements/dracut-regenerate/finalise.d/50-dracut-regenerate
@@ -71,7 +71,18 @@ def main():
         kernel_version = "%s" % kernel_search.groups(1)
         ramdisk_path = "/boot/%s" % kernel_set[1].strip()
 
+        # list installed modules of dracut
+        cmdline = ['dracut', '--list-modules']
+        logging.debug("Calling: %s" % cmdline)
+        subp = subprocess.Popen(cmdline, stdout=subprocess.PIPE)
+        out, err = subp.communicate()
+        if subp.returncode:
+            e = subprocess.CalledProcessError(subp.returncode, cmdline)
+            e.output = out
+            raise e
+
         cmdline = ['dracut', '--force']
+
         if modules_to_boot:
             modules_to_boot = ' ' .join(modules_to_boot)
             cmdline += ['--add', modules_to_boot]