From 5301270bff70df7fda203f73d57441f4de48dd68 Mon Sep 17 00:00:00 2001 From: Christian Kellner Date: Fri, 5 Nov 2021 12:23:08 +0000 Subject: [PATCH] stages/rhsm: add support to configure yum plugins Adds support to configure `yum-plugins`, which currently is a full alias for `dnf-plugins`, although this might change in the future, in case dnf options diverge from yum. It allows for both yum and dnf plugins to be configured at the same time since on RHEL 7 both files will be present. --- stages/org.osbuild.rhsm | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/stages/org.osbuild.rhsm b/stages/org.osbuild.rhsm index 4cb3ba93..7d191f75 100755 --- a/stages/org.osbuild.rhsm +++ b/stages/org.osbuild.rhsm @@ -38,7 +38,7 @@ SCHEMA = """ "product-id": { "additionalProperties": false, "type": "object", - "description": "'product-id' DNF plugin configuration", + "description": "'product-id' DNF/YUM plugin configuration", "properties": { "enabled": { "type": "boolean", @@ -49,7 +49,7 @@ SCHEMA = """ "subscription-manager": { "additionalProperties": false, "type": "object", - "description": "'subscription-manager' DNF plugin configuration", + "description": "'subscription-manager' DNF/YUM plugin configuration", "properties": { "enabled": { "type": "boolean", @@ -65,6 +65,9 @@ SCHEMA = """ "dnf-plugins": { "$ref": "#/definitions/plugins" }, + "yum-plugins": { + "$ref": "#/definitions/plugins" + }, "subscription-manager": { "additionalProperties": false, "type": "object", @@ -98,13 +101,13 @@ SCHEMA = """ """ -def configure_dnf_plugins(tree, dnf_plugins_options): - for plugin, plugin_options in dnf_plugins_options.items(): +def configure_plugins(tree, path, plugins_options): + for plugin, plugin_options in plugins_options.items(): # don't touch the configuration file if there is nothing to do if not plugin_options: continue - plugin_conf_path = f"{tree}/etc/dnf/plugins/{plugin}.conf" + plugin_conf_path = f"{tree}/etc/{path}/{plugin}.conf" plugin_conf = iniparse.SafeConfigParser() try: @@ -164,9 +167,12 @@ def configure_rhsm(tree, rhsm_configuration_options): def main(tree, options): dnf_plugins_options = options.get("dnf-plugins", {}) + yum_plugins_options = options.get("yum-plugins", {}) rhsm_configuration = options.get("subscription-manager", {}) - if configure_dnf_plugins(tree, dnf_plugins_options): + if configure_plugins(tree, "dnf/plugins", dnf_plugins_options): + return 1 + if configure_plugins(tree, "yum/pluginconf.d", yum_plugins_options): return 1 if configure_rhsm(tree, rhsm_configuration): return 1