[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[PATCH 3/3] Carry rdloaddriver= parameters through to the boot loader config.



Handle multiple rdloaddriver= parameters in the cmdlineDict.  In cases
where we already have a key, convert the value to a set and add the new
value to it.  Start new keys with just the value.

In the boot loader code, take cmdlineDict values that are sets, convert
them to lists, and join them to a single string separated by commas
before writing them to the argument list.

Related: rhbz#689029
---
 booty/bootloaderInfo.py |    7 +++++--
 flags.py                |   14 +++++++++++++-
 2 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/booty/bootloaderInfo.py b/booty/bootloaderInfo.py
index 3e17d7c..64e7ce1 100644
--- a/booty/bootloaderInfo.py
+++ b/booty/bootloaderInfo.py
@@ -163,7 +163,7 @@ class KernelArguments:
         # look for kernel arguments we know should be preserved and add them
         ourargs = ["speakup_synth", "apic", "noapic", "apm", "ide", "noht",
                    "acpi", "video", "pci", "nodmraid", "nompath", "nomodeset",
-                   "noiswmd", "fips"]
+                   "noiswmd", "fips", "rdloaddriver"]
 
         if iutil.isS390():
             ourargs.append("cio_ignore")
@@ -174,7 +174,10 @@ class KernelArguments:
 
             val = flags.cmdline.get(arg, "")
             if val:
-                newArgs.append("%s=%s" % (arg, val))
+                if type(val) == type(set()):
+                    newArgs.append("%s=%s" % (arg, ','.join(list(val)),))
+                else:
+                    newArgs.append("%s=%s" % (arg, val,))
             else:
                 newArgs.append(arg)
 
diff --git a/flags.py b/flags.py
index e01ec63..afb56e2 100644
--- a/flags.py
+++ b/flags.py
@@ -61,7 +61,19 @@ class Flags:
                 key = i
                 val = None
 
-            cmdlineDict[key] = val
+            if key.lower() == "rdloaddriver":
+                key = key.lower()
+
+            if cmdlineDict.has_key(key):
+                if type(cmdlineDict[key]) == type(set()):
+                    cmdlineDict[key].add(val)
+                else:
+                    tmpset = set()
+                    tmpset.add(cmdlineDict[key])
+                    tmpset.add(val)
+                    cmdlineDict[key] = tmpset
+            else:
+                cmdlineDict[key] = val
 
         return cmdlineDict
 
-- 
1.7.1


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]