Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support action_plugin in plugin_routing_schema #82562

Merged
merged 4 commits into from
Jan 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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).
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
plugin_routing:
modules:
module:
action_plugin: ns.col.action
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
plugin_routing:
lookup:
lookup:
action_plugin: invalid
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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