Skip to content

Commit

Permalink
action_plugin key should only be valid for modules
Browse files Browse the repository at this point in the history
Signed-off-by: NilashishC <nilashishchakraborty8@gmail.com>
  • Loading branch information
NilashishC committed Jan 19, 2024
1 parent 4f90429 commit 3604787
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -197,22 +197,24 @@ 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,
("action_plugin"): 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 @@ -221,6 +223,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 @@ -234,7 +239,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
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
from voluptuous import All, Any, MultipleInvalid, PREVENT_EXTRA
from voluptuous import Required, Schema, Invalid

x = Schema(
{
("deprecation"): Any(str),
("tombstone"): Any(str),
("redirect"): Any(str),
},
extra=PREVENT_EXTRA,
)

y = x.extend({("redirect"): Any(int)})

print(x)
print(y)

0 comments on commit 3604787

Please sign in to comment.