From a5d2f1b40df323d0d8e6513f4cdb31d8dc95e991 Mon Sep 17 00:00:00 2001 From: Thomas Bellman <bellman@lysator.liu.se> Date: Mon, 30 Apr 2018 10:55:41 +0200 Subject: [PATCH] Allow users to override the guessed bootloader. Add a parameter 'provider' to the kernel_option definition, allowing users to specify which bootloader is in use. --- manifests/kernel_option.pp | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/manifests/kernel_option.pp b/manifests/kernel_option.pp index 6bb1464..f2ba642 100644 --- a/manifests/kernel_option.pp +++ b/manifests/kernel_option.pp @@ -1,12 +1,13 @@ -# Copyright © 2017 Thomas Bellman, Linköping, Sweden +# Copyright © 2017-2018 Thomas Bellman, Linköping, Sweden # Licensed under the GNU LGPL v3+; see the README file for more information. /* * Set or remove a kernel commandline option. * - * Which bootloader is in use will be guessed. The heuristics for that - * are not very good. + * Depending on the details of the bootloader, the option might be set/unset + * for all kernels, or just for all Linux kernels. There is currently no + * way to control this. * * Parameters: * - name Kernel commandline option to set or remove. @@ -20,12 +21,21 @@ * like "console=ttyS0". * Since only ensure => absent is implemented, the value * parameter is currently ignored. + * + * - provider The bootloader in use. Supported values are 'grub0' and + * 'grub2'. If not specified, the bootloader will be guessed + * based on the operating system. + * The grub2 provider currently only supports removing options. */ -define bootloader::kernel_option($ensure='present', $value=undef) +define bootloader::kernel_option( + $ensure='present', $value=undef, $provider=undef) { - include bootloader::guess - - $bootloader = $bootloader::guess::bootloader + if ($provider) { + $bootloader = $provider + } else { + include bootloader::guess + $bootloader = $bootloader::guess::bootloader + } case $bootloader { 'grub0': { -- GitLab