diff --git a/changelogs/fragments/572-action-module.yml b/changelogs/fragments/572-action-module.yml new file mode 100644 index 00000000..86e6ad64 --- /dev/null +++ b/changelogs/fragments/572-action-module.yml @@ -0,0 +1,2 @@ +bugfixes: + - "action plugin helper - fix handling of deprecations for ansible-core 2.14.2 (https://github.com/ansible-collections/community.crypto/pull/572)." diff --git a/plugins/plugin_utils/action_module.py b/plugins/plugin_utils/action_module.py index ea7ecc78..3cea94c2 100644 --- a/plugins/plugin_utils/action_module.py +++ b/plugins/plugin_utils/action_module.py @@ -144,9 +144,14 @@ class AnsibleActionModule(object): # warnings and deprecations that do not work in plugins. This is a copy of that code adjusted # for our use-case: for d in self._validation_result._deprecations: - self.deprecate( - "Alias '{name}' is deprecated. See the module docs for more information".format(name=d['name']), - version=d.get('version'), date=d.get('date'), collection_name=d.get('collection_name')) + # Before ansible-core 2.14.2, deprecations were always for aliases: + if 'name' in d: + self.deprecate( + "Alias '{name}' is deprecated. See the module docs for more information".format(name=d['name']), + version=d.get('version'), date=d.get('date'), collection_name=d.get('collection_name')) + # Since ansible-core 2.14.2, a message is present that can be directly printed: + if 'msg' in d: + self.deprecate(d['msg'], version=d.get('version'), date=d.get('date'), collection_name=d.get('collection_name')) for w in self._validation_result._warnings: self.warn('Both option {option} and its alias {alias} are set.'.format(option=w['option'], alias=w['alias']))