Skip to content

Commit

Permalink
Support action_plugin in plugin_routing_schema (#82562) (#82582)
Browse files Browse the repository at this point in the history
now validation schema matches reality

Signed-off-by: NilashishC <nilashishchakraborty8@gmail.com>
Co-authored-by: s-hertel <19572925+s-hertel@users.noreply.github.com>
(cherry picked from commit b01f1f2)
  • Loading branch information
NilashishC committed Jan 22, 2024
1 parent 09879cb commit 686fe80
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 12 deletions.
@@ -0,0 +1,4 @@
bugfixes:
- >-
``ansible-test sanity --test runtime-metadata`` - add ``action_plugin`` as a valid field
for modules in the schema (https://github.com/ansible/ansible/pull/82562).
@@ -0,0 +1,4 @@
plugin_routing:
modules:
module:
action_plugin: ns.col.action
@@ -0,0 +1,4 @@
plugin_routing:
lookup:
lookup:
action_plugin: invalid
Expand Up @@ -8,6 +8,16 @@ ansible-test sanity --test validate-modules --color --truncate 0 --failure-ok --
diff -u "${TEST_DIR}/expected.txt" actual-stdout.txt
grep -F -f "${TEST_DIR}/expected.txt" actual-stderr.txt

cd ../col
ansible-test sanity --test runtime-metadata

cd ../failure
if ansible-test sanity --test runtime-metadata 2>&1 | tee out.txt; then
echo "runtime-metadata in failure should be invalid"
exit 1
fi
grep out.txt -e 'extra keys not allowed'

cd ../ps_only

if ! command -V pwsh; then
Expand Down
Expand Up @@ -197,21 +197,26 @@ def validate_metadata_file(path, is_ansible, check_deprecation_dates=False):
avoid_additional_data
)

plugin_routing_schema = Any(
Schema({
('deprecation'): Any(deprecation_schema),
('tombstone'): Any(tombstoning_schema),
('redirect'): fqcr,
}, extra=PREVENT_EXTRA),
plugins_routing_common_schema = Schema({
('deprecation'): Any(deprecation_schema),
('tombstone'): Any(tombstoning_schema),
('redirect'): fqcr,
}, extra=PREVENT_EXTRA)

plugin_routing_schema = Any(plugins_routing_common_schema)

# Adjusted schema for modules only
plugin_routing_schema_modules = Any(
plugins_routing_common_schema.extend({
('action_plugin'): fqcr}
)
)

# Adjusted schema for module_utils
plugin_routing_schema_mu = Any(
Schema({
('deprecation'): Any(deprecation_schema),
('tombstone'): Any(tombstoning_schema),
('redirect'): Any(*string_types),
}, extra=PREVENT_EXTRA),
plugins_routing_common_schema.extend({
('redirect'): Any(*string_types)}
),
)

list_dict_plugin_routing_schema = [{str_type: plugin_routing_schema}
Expand All @@ -220,6 +225,9 @@ def validate_metadata_file(path, is_ansible, check_deprecation_dates=False):
list_dict_plugin_routing_schema_mu = [{str_type: plugin_routing_schema_mu}
for str_type in string_types]

list_dict_plugin_routing_schema_modules = [{str_type: plugin_routing_schema_modules}
for str_type in string_types]

plugin_schema = Schema({
('action'): Any(None, *list_dict_plugin_routing_schema),
('become'): Any(None, *list_dict_plugin_routing_schema),
Expand All @@ -233,7 +241,7 @@ def validate_metadata_file(path, is_ansible, check_deprecation_dates=False):
('inventory'): Any(None, *list_dict_plugin_routing_schema),
('lookup'): Any(None, *list_dict_plugin_routing_schema),
('module_utils'): Any(None, *list_dict_plugin_routing_schema_mu),
('modules'): Any(None, *list_dict_plugin_routing_schema),
('modules'): Any(None, *list_dict_plugin_routing_schema_modules),
('netconf'): Any(None, *list_dict_plugin_routing_schema),
('shell'): Any(None, *list_dict_plugin_routing_schema),
('strategy'): Any(None, *list_dict_plugin_routing_schema),
Expand Down

0 comments on commit 686fe80

Please sign in to comment.