forked from canonical/snapd
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
osutil: add KernelCommandLineKeyValue; boot: refactor ModeAnd...FromK…
…ernelCommandLine (canonical#9659) * boot/cmdline.go: add TODO about using strutil.KernelCommandLineSplit Signed-off-by: Ian Johnson <ian.johnson@canonical.com> * strutil/cmdline.go: add GetKernelCommandLineKeyValue This complements KernelCommandLineSplit, but goes further, checking for a specific key-value pair in the kernel command line parameters, and returning the value if found. This will be useful across the codebase for places where we want to check one specific kernel command line parameter key-value pair. Signed-off-by: Ian Johnson <ian.johnson@canonical.com> * logger/logger.go: use GetKernelCommandLineKeyValue directly This is a bit more straight forward to read IMHO and potentially reduces some looping over the parameters as we break as soon as we find snapd.debug in the positive case where it is set. Signed-off-by: Ian Johnson <ian.johnson@canonical.com> * strutil,osutil: move kernel commandline helpers to osutil * boot: tweak TODO now that we use osutil.KernelCommandLineSplit * many: refactor ModeAnd...FromKernelCommandLine and KernelCommandLineKeyValue Refactor GetKernelCommandLineKeyValue to KernelCommandLineKeyValue which returns a map of the specified keys that were found on the kernel command line that have values. It also no longer takes the command line string as an argument and instead parses the command line itself. The above necessitates moving the mocking function for where to find /proc/cmdline to osutil as well and adjusting many tests for this. Finally, with all of this in place we can refactor boot.ModeAndRecoverySystemFromKernelCommandLine to use the osutil helpers and not duplicate parsing logic in the boot package. This does result in a slight change in behavior where now duplicated kernel command line parameters are not a fatal condition, but instead the last definition is used. Also adjust some tests to mock an empty proc/cmdline to avoid using the host's version when running tests. Signed-off-by: Ian Johnson <ian.johnson@canonical.com> * osutil, many: rename to KernelCommandLineKeyValues Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> * boot: disallow non empty system label without a mode Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> * osutil: tweak handling of cmdline keys Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> * osutil: mv cmdline to kcmdline Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> * osutil: comment tweak Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> * logger: further tweaks Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> Co-authored-by: Michael Vogt <mvo@ubuntu.com> Co-authored-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com>
- Loading branch information
1 parent
4ebca62
commit 2e2b3aa
Showing
12 changed files
with
225 additions
and
87 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.