Bug 1297058

Summary: RFE: Please add a means of loading and using plugins to the dnf API
Product: [Fedora] Fedora Reporter: David Shea <dshea>
Component: dnfAssignee: Packaging Maintenance Team <packaging-team-maint>
Status: CLOSED DEFERRED QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: dshea, jsilhan, massi.ergosum, mluscon, packaging-team-maint, pnemade, vmukhame
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-02-22 22:09:09 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description David Shea 2016-01-08 21:59:34 UTC
Description of problem:
Currently plugins are only used when dnf is run through the CLI command, and there is no documented way to load or run plugins from python code. A means of using plugins from non-CLI code is necessary in order for plugins, in particular langpacks, to be used during anaconda installs. 

Version-Release number of selected component (if applicable):
python3-dnf-1.1.5-1.fc24.noarch

Comment 1 Honza Silhan 2016-01-11 13:23:26 UTC
So far we put the shared code of plugins into dnfpluginscorelib.

Comment 2 David Shea 2016-01-11 15:09:01 UTC
Isn't that more for code used by plugins? I'm not trying to write a plugin. I want to use existing plugins. As far as I can tell, the various calls to base.plugins.* in dnf/cli/cli.py and dnf/cli/main.py are what need to happen, but base.plugins and conf.plugins are not part of the API, and I have been having trouble figuring out what needs to happen where in anaconda since these methods are not documented.

Comment 3 Honza Silhan 2016-01-12 13:46:32 UTC
Is there any plugin aside from langpacks you would like to call from Python API?

Comment 4 David Shea 2016-01-12 14:24:17 UTC
(In reply to Jan Silhan from comment #3)
> Is there any plugin aside from langpacks you would like to call from Python
> API?

In Fedora, no. In RHEL, once everything gets to that point, probably. This could also be relevant to creators of spins and remixes, since yum was able to modify the packaging behavior (for all use cases) by including plugins.

Comment 5 Honza Silhan 2016-02-22 22:09:09 UTC
This report was about Anaconda supporting langpacks in DNF backend. The new guideline for langpacks using rich and weak dependencies of RPM will be effective soon [1] and Anaconda has the support already [2].

When another use case come up, feel free to reopen.

[1] https://fedorahosted.org/fpc/ticket/593#comment:18
[2] https://github.com/rhinstaller/anaconda/pull/484