From 76cc1f845980a8875a4621472a8b8264b7881aae Mon Sep 17 00:00:00 2001 From: Kelly Brazil Date: Wed, 22 Feb 2023 21:14:00 -0800 Subject: [PATCH 1/6] Add plugin parser functionality to JC Filter Plugin The parse function was added in jc v1.18.0 which allows plugin parsers to be used. This change will try the new API if available, else fallback to the old API so there is no change in behavior. --- plugins/filter/jc.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/filter/jc.py b/plugins/filter/jc.py index 742d4147a12..0a95c8b3757 100644 --- a/plugins/filter/jc.py +++ b/plugins/filter/jc.py @@ -138,8 +138,14 @@ def jc_filter(data, parser, quiet=True, raw=False): raise AnsibleError('You need to install "jc" as a Python library on the Ansible controller prior to running jc filter') try: - jc_parser = importlib.import_module('jc.parsers.' + parser) - return jc_parser.parse(data, quiet=quiet, raw=raw) + # new API (jc v1.18.0 and higher) allows use of plugin parsers + if hasattr(jc, 'parse'): + return jc.parse(parser, data, quiet=quiet, raw=raw) + + # old API (jc v1.17.7 and lower) + else: + jc_parser = importlib.import_module('jc.parsers.' + parser) + return jc_parser.parse(data, quiet=quiet, raw=raw) except Exception as e: raise AnsibleFilterError('Error in jc filter plugin: %s' % e) From 1a719e9b365ab243773b9c0ce3a91db4cabb7658 Mon Sep 17 00:00:00 2001 From: Kelly Brazil Date: Wed, 22 Feb 2023 21:44:49 -0800 Subject: [PATCH 2/6] remove whitespace from blank line --- plugins/filter/jc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/filter/jc.py b/plugins/filter/jc.py index 0a95c8b3757..3aa8d20a5fc 100644 --- a/plugins/filter/jc.py +++ b/plugins/filter/jc.py @@ -141,7 +141,7 @@ def jc_filter(data, parser, quiet=True, raw=False): # new API (jc v1.18.0 and higher) allows use of plugin parsers if hasattr(jc, 'parse'): return jc.parse(parser, data, quiet=quiet, raw=raw) - + # old API (jc v1.17.7 and lower) else: jc_parser = importlib.import_module('jc.parsers.' + parser) From 432e8b22d36f4137fce5e6421d09a1257cc3ef01 Mon Sep 17 00:00:00 2001 From: Kelly Brazil Date: Thu, 23 Feb 2023 06:29:08 -0800 Subject: [PATCH 3/6] Add changelog fragment for JC plugin parser support --- changelogs/fragments/6043-jc_plugin_parser_support | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 changelogs/fragments/6043-jc_plugin_parser_support diff --git a/changelogs/fragments/6043-jc_plugin_parser_support b/changelogs/fragments/6043-jc_plugin_parser_support new file mode 100644 index 00000000000..35fac11bbdf --- /dev/null +++ b/changelogs/fragments/6043-jc_plugin_parser_support @@ -0,0 +1,2 @@ +minor_changes: + - JC Filter Plugin - added the ability to use parser plugins (https://github.com/ansible-collections/community.general/pull/6043) From 87f5bc3e61f5445f0843ce3314f963f56ba9c818 Mon Sep 17 00:00:00 2001 From: Kelly Brazil Date: Thu, 23 Feb 2023 06:50:38 -0800 Subject: [PATCH 4/6] add .yml extension to file name --- ...jc_plugin_parser_support => 6043-jc_plugin_parser_support.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename changelogs/fragments/{6043-jc_plugin_parser_support => 6043-jc_plugin_parser_support.yml} (100%) diff --git a/changelogs/fragments/6043-jc_plugin_parser_support b/changelogs/fragments/6043-jc_plugin_parser_support.yml similarity index 100% rename from changelogs/fragments/6043-jc_plugin_parser_support rename to changelogs/fragments/6043-jc_plugin_parser_support.yml From 11ec161354b5b8d71d4224027798507f7aaab6f1 Mon Sep 17 00:00:00 2001 From: Kelly Brazil Date: Thu, 23 Feb 2023 06:56:39 -0800 Subject: [PATCH 5/6] Formatting --- changelogs/fragments/6043-jc_plugin_parser_support.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelogs/fragments/6043-jc_plugin_parser_support.yml b/changelogs/fragments/6043-jc_plugin_parser_support.yml index 35fac11bbdf..ace9c47326f 100644 --- a/changelogs/fragments/6043-jc_plugin_parser_support.yml +++ b/changelogs/fragments/6043-jc_plugin_parser_support.yml @@ -1,2 +1,2 @@ minor_changes: - - JC Filter Plugin - added the ability to use parser plugins (https://github.com/ansible-collections/community.general/pull/6043) + - jc filter plugin - added the ability to use parser plugins (https://github.com/ansible-collections/community.general/pull/6043) From 646d0cffae450202c242554d7f55f94abfd610b5 Mon Sep 17 00:00:00 2001 From: Kelly Brazil Date: Thu, 23 Feb 2023 06:57:54 -0800 Subject: [PATCH 6/6] add period at end --- changelogs/fragments/6043-jc_plugin_parser_support.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelogs/fragments/6043-jc_plugin_parser_support.yml b/changelogs/fragments/6043-jc_plugin_parser_support.yml index ace9c47326f..3684f32fe49 100644 --- a/changelogs/fragments/6043-jc_plugin_parser_support.yml +++ b/changelogs/fragments/6043-jc_plugin_parser_support.yml @@ -1,2 +1,2 @@ minor_changes: - - jc filter plugin - added the ability to use parser plugins (https://github.com/ansible-collections/community.general/pull/6043) + - jc filter plugin - added the ability to use parser plugins (https://github.com/ansible-collections/community.general/pull/6043).