Add the ability to enable DNF plugins for lorax
Pass --dnfplugin='*' to enable all of them. Pass --dnfplugin='plugin-name' to enable one fo them. You can use it multiple times to enable multiple plugins. Globs work as well.
This commit is contained in:
parent
86c4ef5f45
commit
56926baaec
@ -107,6 +107,8 @@ def lorax_parser(dracut_default=""):
|
||||
help="Size of root filesystem in GiB. Defaults to 2.")
|
||||
optional.add_argument("--noverifyssl", action="store_true", default=False,
|
||||
help="Do not verify SSL certificates")
|
||||
optional.add_argument("--dnfplugin", action="append", default=[], dest="dnfplugins",
|
||||
help="Enable a DNF plugin by name/glob, or * to enable all of them.")
|
||||
|
||||
# dracut arguments
|
||||
dracut_group = parser.add_argument_group("dracut arguments")
|
||||
|
@ -98,7 +98,8 @@ def main():
|
||||
dnfbase = get_dnf_base_object(installtree, opts.source, opts.mirrorlist, opts.repos,
|
||||
opts.enablerepos, opts.disablerepos,
|
||||
dnftempdir, opts.proxy, opts.version, opts.cachedir,
|
||||
os.path.dirname(opts.logfile), not opts.noverifyssl)
|
||||
os.path.dirname(opts.logfile), not opts.noverifyssl,
|
||||
opts.dnfplugins)
|
||||
|
||||
if dnfbase is None:
|
||||
print("error: unable to create the dnf base object", file=sys.stderr)
|
||||
@ -146,7 +147,7 @@ def main():
|
||||
def get_dnf_base_object(installroot, sources, mirrorlists=None, repos=None,
|
||||
enablerepos=None, disablerepos=None,
|
||||
tempdir="/var/tmp", proxy=None, releasever="29",
|
||||
cachedir=None, logdir=None, sslverify=True):
|
||||
cachedir=None, logdir=None, sslverify=True, dnfplugins=None):
|
||||
""" Create a dnf Base object and setup the repositories and installroot
|
||||
|
||||
:param string installroot: Full path to the installroot
|
||||
@ -193,6 +194,15 @@ def get_dnf_base_object(installroot, sources, mirrorlists=None, repos=None,
|
||||
os.mkdir(logdir)
|
||||
|
||||
dnfbase = dnf.Base()
|
||||
# Enable DNF pluings
|
||||
# NOTE: These come from the HOST system's environment
|
||||
if dnfplugins:
|
||||
if dnfplugins[0] == "*":
|
||||
# Enable them all
|
||||
dnfbase.init_plugins()
|
||||
else:
|
||||
# Only enable the listed plugins
|
||||
dnfbase.init_plugins(disabled_glob=["*"], enable_plugins=dnfplugins)
|
||||
conf = dnfbase.conf
|
||||
conf.logdir = logdir
|
||||
conf.cachedir = cachedir
|
||||
|
Loading…
Reference in New Issue
Block a user