get_plugins() fails with multi-key error when duplicate plugin exists
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Python Jenkins |
New
|
Undecided
|
Unassigned |
Bug Description
Version: 1.0.2
Issue: get_plugins() fails with multi-key error when duplicate plugin exists
Description:
* When calling get_plugins() on a Jenkins with a duplicate plugin, the method throws KeyError exception.
* For example, say a Jenkins host has 2 different versions of plugin P1 with shortName as 'short-plugin-name' and longName as 'Long Plugin Name' installed.
* get_plugins() will throw the following error:
Traceback (most recent call last):
File "plugin_
get_
File "plugin_
get_
File "plugin_
jenkins_
File "/usr/local/
plugins_
File "/usr/local/
raise KeyError(', '.join(str(key) for key in keys))
KeyError: 'short-plugin-name, Long Plugin Name'
Analysis:
* Upon checking the code I see that the method returns a multi-key dictionary:
plugins_data = multi_key_
for plugin_data in plugins_
keys = (str(plugin_
return plugins_data
* The key for which is generated using shortName AND longName.
* When calling get_plugins(), the multi-key dictionary could not be generated as the second time it encounters the plugin with same shortName and longName resulting in the KeyError.
Recommendation:
* It feels more appropriate to have shortName/longName AND version as a dictionary.
Changed in python-jenkins: | |
assignee: | nobody → Sj (sj2801) |
assignee: | Sj (sj2801) → nobody |