Add --dracut-arg support to lorax
Use it to override the default dracut arguments (displayed as part of the --help output). If you want to extend the default arguments they all need to be passed in on the cmdline as well. eg. --dracut-arg='--xz' --dracut-arg='--install /.buildstamp' ... Resolves: rhbz#1452220
This commit is contained in:
parent
6f2494f9d5
commit
22392b64fc
@ -57,6 +57,8 @@ except ImportError:
|
|||||||
else:
|
else:
|
||||||
vernum = pylorax.version.num
|
vernum = pylorax.version.num
|
||||||
|
|
||||||
|
DRACUT_DEFAULT = ["--xz", "--install", "/.buildstamp", "--no-early-microcode", "--add", "fips"]
|
||||||
|
|
||||||
# List of drivers to remove on ppc64 arch to keep initrd < 32MiB
|
# List of drivers to remove on ppc64 arch to keep initrd < 32MiB
|
||||||
REMOVE_PPC64_DRIVERS = "floppy scsi_debug nouveau radeon cirrus mgag200"
|
REMOVE_PPC64_DRIVERS = "floppy scsi_debug nouveau radeon cirrus mgag200"
|
||||||
REMOVE_PPC64_MODULES = "drm plymouth"
|
REMOVE_PPC64_MODULES = "drm plymouth"
|
||||||
@ -157,7 +159,8 @@ class Lorax(BaseLoraxClass):
|
|||||||
add_template_vars=None,
|
add_template_vars=None,
|
||||||
add_arch_templates=None,
|
add_arch_templates=None,
|
||||||
add_arch_template_vars=None,
|
add_arch_template_vars=None,
|
||||||
template_tempdir=None):
|
template_tempdir=None,
|
||||||
|
user_dracut_args=None):
|
||||||
|
|
||||||
assert self._configured
|
assert self._configured
|
||||||
|
|
||||||
@ -311,7 +314,13 @@ class Lorax(BaseLoraxClass):
|
|||||||
workdir=self.workdir)
|
workdir=self.workdir)
|
||||||
|
|
||||||
logger.info("rebuilding initramfs images")
|
logger.info("rebuilding initramfs images")
|
||||||
dracut_args = ["--xz", "--install", "/.buildstamp", "--no-early-microcode", "--add", "fips"]
|
if not user_dracut_args:
|
||||||
|
dracut_args = DRACUT_DEFAULT
|
||||||
|
else:
|
||||||
|
dracut_args = []
|
||||||
|
for arg in user_dracut_args:
|
||||||
|
dracut_args += arg.split(" ", 1)
|
||||||
|
|
||||||
anaconda_args = dracut_args + ["--add", "anaconda pollcdrom"]
|
anaconda_args = dracut_args + ["--add", "anaconda pollcdrom"]
|
||||||
|
|
||||||
# ppc64 cannot boot an initrd > 32MiB so remove some drivers
|
# ppc64 cannot boot an initrd > 32MiB so remove some drivers
|
||||||
@ -322,6 +331,8 @@ class Lorax(BaseLoraxClass):
|
|||||||
# upgrade.img
|
# upgrade.img
|
||||||
anaconda_args.extend(["--omit", REMOVE_PPC64_MODULES])
|
anaconda_args.extend(["--omit", REMOVE_PPC64_MODULES])
|
||||||
|
|
||||||
|
logger.info("dracut args = %s", dracut_args)
|
||||||
|
logger.info("anaconda args = %s", anaconda_args)
|
||||||
treebuilder.rebuild_initrds(add_args=anaconda_args)
|
treebuilder.rebuild_initrds(add_args=anaconda_args)
|
||||||
|
|
||||||
if doupgrade:
|
if doupgrade:
|
||||||
|
@ -67,7 +67,7 @@ except ImportError:
|
|||||||
|
|
||||||
VERSION = "{0}-{1}".format(os.path.basename(sys.argv[0]), vernum)
|
VERSION = "{0}-{1}".format(os.path.basename(sys.argv[0]), vernum)
|
||||||
|
|
||||||
# Default parameters for rebuilding initramfs, override with --dracut-args
|
# Default parameters for rebuilding initramfs, override with --dracut-arg
|
||||||
DRACUT_DEFAULT = ["--xz", "--add", "livenet dmsquash-live convertfs pollcdrom",
|
DRACUT_DEFAULT = ["--xz", "--add", "livenet dmsquash-live convertfs pollcdrom",
|
||||||
"--omit", "plymouth", "--no-hostonly", "--no-early-microcode"]
|
"--omit", "plymouth", "--no-hostonly", "--no-early-microcode"]
|
||||||
|
|
||||||
|
@ -41,6 +41,7 @@ import yum
|
|||||||
# handler setup. We already set one up so we don't need it to run.
|
# handler setup. We already set one up so we don't need it to run.
|
||||||
yum.logginglevels._added_handlers = True
|
yum.logginglevels._added_handlers = True
|
||||||
import pylorax
|
import pylorax
|
||||||
|
from pylorax import DRACUT_DEFAULT
|
||||||
|
|
||||||
VERSION = "{0}-{1}".format(os.path.basename(sys.argv[0]), pylorax.vernum)
|
VERSION = "{0}-{1}".format(os.path.basename(sys.argv[0]), pylorax.vernum)
|
||||||
|
|
||||||
@ -149,6 +150,14 @@ def main(args):
|
|||||||
optional.add_option("--noverifyssl", action="store_true", default=False,
|
optional.add_option("--noverifyssl", action="store_true", default=False,
|
||||||
help="Do not verify SSL certificates")
|
help="Do not verify SSL certificates")
|
||||||
|
|
||||||
|
# dracut arguments
|
||||||
|
dracut_group = OptionGroup(parser, "dracut arguments")
|
||||||
|
dracut_group.add_option("--dracut-arg", action="append", dest="dracut_args",
|
||||||
|
help="Argument to pass to dracut when "
|
||||||
|
"rebuilding the initramfs. Pass this "
|
||||||
|
"once for each argument. NOTE: this "
|
||||||
|
"overrides the default. (default: %s)" % (DRACUT_DEFAULT,) )
|
||||||
|
|
||||||
# add the option groups to the parser
|
# add the option groups to the parser
|
||||||
parser.add_option_group(required)
|
parser.add_option_group(required)
|
||||||
parser.add_option_group(optional)
|
parser.add_option_group(optional)
|
||||||
@ -232,7 +241,8 @@ def main(args):
|
|||||||
add_template_vars=parsed_add_template_vars,
|
add_template_vars=parsed_add_template_vars,
|
||||||
add_arch_templates=opts.add_arch_templates,
|
add_arch_templates=opts.add_arch_templates,
|
||||||
add_arch_template_vars=parsed_add_arch_template_vars,
|
add_arch_template_vars=parsed_add_arch_template_vars,
|
||||||
remove_temp=True)
|
remove_temp=True,
|
||||||
|
user_dracut_args=opts.dracut_args)
|
||||||
|
|
||||||
|
|
||||||
def get_yum_base_object(installroot, repositories, mirrorlists=[], repo_files=[],
|
def get_yum_base_object(installroot, repositories, mirrorlists=[], repo_files=[],
|
||||||
|
Loading…
Reference in New Issue
Block a user