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.")
|
help="Size of root filesystem in GiB. Defaults to 2.")
|
||||||
optional.add_argument("--noverifyssl", action="store_true", default=False,
|
optional.add_argument("--noverifyssl", action="store_true", default=False,
|
||||||
help="Do not verify SSL certificates")
|
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 arguments
|
||||||
dracut_group = parser.add_argument_group("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,
|
dnfbase = get_dnf_base_object(installtree, opts.source, opts.mirrorlist, opts.repos,
|
||||||
opts.enablerepos, opts.disablerepos,
|
opts.enablerepos, opts.disablerepos,
|
||||||
dnftempdir, opts.proxy, opts.version, opts.cachedir,
|
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:
|
if dnfbase is None:
|
||||||
print("error: unable to create the dnf base object", file=sys.stderr)
|
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,
|
def get_dnf_base_object(installroot, sources, mirrorlists=None, repos=None,
|
||||||
enablerepos=None, disablerepos=None,
|
enablerepos=None, disablerepos=None,
|
||||||
tempdir="/var/tmp", proxy=None, releasever="29",
|
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
|
""" Create a dnf Base object and setup the repositories and installroot
|
||||||
|
|
||||||
:param string installroot: Full path to the 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)
|
os.mkdir(logdir)
|
||||||
|
|
||||||
dnfbase = dnf.Base()
|
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 = dnfbase.conf
|
||||||
conf.logdir = logdir
|
conf.logdir = logdir
|
||||||
conf.cachedir = cachedir
|
conf.cachedir = cachedir
|
||||||
|
Loading…
Reference in New Issue
Block a user