MCPcopy Create free account
hub / github.com/StackStorm/st2 / _validate_parameters

Function _validate_parameters

st2common/st2common/validators/api/action.py:83–130  ·  view source on GitHub ↗
(action_ref, action_params=None, runner_params=None)

Source from the content-addressed store, hash-verified

81
82
83def _validate_parameters(action_ref, action_params=None, runner_params=None):
84 position_params = {}
85 for action_param, action_param_meta in six.iteritems(action_params):
86 # Check if overridden runner parameters are permitted.
87 if action_param in runner_params:
88 for action_param_attr, value in six.iteritems(action_param_meta):
89 util_schema.validate_runner_parameter_attribute_override(
90 action_ref,
91 action_param,
92 action_param_attr,
93 value,
94 runner_params[action_param].get(action_param_attr),
95 )
96
97 if "position" in action_param_meta:
98 pos = action_param_meta["position"]
99 param = position_params.get(pos, None)
100 if param:
101 msg = (
102 "Parameters %s and %s have same position %d."
103 % (action_param, param, pos)
104 + " Position values have to be unique."
105 )
106 raise ValueValidationException(msg)
107 else:
108 position_params[pos] = action_param
109
110 if "immutable" in action_param_meta:
111 if action_param in runner_params:
112 runner_param_meta = runner_params[action_param]
113 if "immutable" in runner_param_meta:
114 msg = (
115 "Param %s is declared immutable in runner. " % action_param
116 + "Cannot override in action."
117 )
118 raise ValueValidationException(msg)
119 if (
120 "default" not in action_param_meta
121 and "default" not in runner_param_meta
122 ):
123 msg = "Immutable param %s requires a default value." % action_param
124 raise ValueValidationException(msg)
125 else:
126 if "default" not in action_param_meta:
127 msg = "Immutable param %s requires a default value." % action_param
128 raise ValueValidationException(msg)
129
130 return _validate_position_values_contiguous(position_params)
131
132
133def _validate_position_values_contiguous(position_params):

Callers 1

validate_actionFunction · 0.85

Calls 3

getMethod · 0.45

Tested by

no test coverage detected