Support `action_plugin` in plugin_routing_schema (#82562)

now validation schema matches reality

Signed-off-by: NilashishC <nilashishchakraborty8@gmail.com>
Co-authored-by: s-hertel <19572925+s-hertel@users.noreply.github.com>
pull/82571/head
Nilashish Chakraborty 5 months ago committed by GitHub
parent 853423c270
commit b01f1f207c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -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).

@ -8,6 +8,16 @@ ansible-test sanity --test validate-modules --color --truncate 0 --failure-ok --
diff -u "${TEST_DIR}/expected.txt" actual-stdout.txt diff -u "${TEST_DIR}/expected.txt" actual-stdout.txt
grep -F -f "${TEST_DIR}/expected.txt" actual-stderr.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 cd ../ps_only
if ! command -V pwsh; then if ! command -V pwsh; then

@ -197,21 +197,26 @@ def validate_metadata_file(path, is_ansible, check_deprecation_dates=False):
avoid_additional_data avoid_additional_data
) )
plugin_routing_schema = Any( plugins_routing_common_schema = Schema({
Schema({ ('deprecation'): Any(deprecation_schema),
('deprecation'): Any(deprecation_schema), ('tombstone'): Any(tombstoning_schema),
('tombstone'): Any(tombstoning_schema), ('redirect'): fqcr,
('redirect'): fqcr, }, extra=PREVENT_EXTRA)
}, 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 # Adjusted schema for module_utils
plugin_routing_schema_mu = Any( plugin_routing_schema_mu = Any(
Schema({ plugins_routing_common_schema.extend({
('deprecation'): Any(deprecation_schema), ('redirect'): Any(*string_types)}
('tombstone'): Any(tombstoning_schema), ),
('redirect'): Any(*string_types),
}, extra=PREVENT_EXTRA),
) )
list_dict_plugin_routing_schema = [{str_type: plugin_routing_schema} list_dict_plugin_routing_schema = [{str_type: plugin_routing_schema}
@ -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} list_dict_plugin_routing_schema_mu = [{str_type: plugin_routing_schema_mu}
for str_type in string_types] 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({ plugin_schema = Schema({
('action'): Any(None, *list_dict_plugin_routing_schema), ('action'): Any(None, *list_dict_plugin_routing_schema),
('become'): Any(None, *list_dict_plugin_routing_schema), ('become'): Any(None, *list_dict_plugin_routing_schema),
@ -233,7 +241,7 @@ def validate_metadata_file(path, is_ansible, check_deprecation_dates=False):
('inventory'): Any(None, *list_dict_plugin_routing_schema), ('inventory'): Any(None, *list_dict_plugin_routing_schema),
('lookup'): 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), ('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), ('netconf'): Any(None, *list_dict_plugin_routing_schema),
('shell'): Any(None, *list_dict_plugin_routing_schema), ('shell'): Any(None, *list_dict_plugin_routing_schema),
('strategy'): Any(None, *list_dict_plugin_routing_schema), ('strategy'): Any(None, *list_dict_plugin_routing_schema),

Loading…
Cancel
Save