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

Method to_model

st2common/st2common/models/api/rule.py:187–232  ·  view source on GitHub ↗
(cls, rule)

Source from the content-addressed store, hash-verified

185
186 @classmethod
187 def to_model(cls, rule):
188 kwargs = {}
189 kwargs["name"] = getattr(rule, "name", None)
190 kwargs["description"] = getattr(rule, "description", None)
191
192 # Validate trigger parameters
193 # Note: This must happen before we create a trigger, otherwise create trigger could fail
194 # with a cryptic error
195 trigger = getattr(rule, "trigger", {})
196 trigger_type_ref = trigger.get("type", None)
197 parameters = trigger.get("parameters", {})
198
199 validator.validate_trigger_parameters(
200 trigger_type_ref=trigger_type_ref, parameters=parameters
201 )
202
203 # Create a trigger for the provided rule
204 trigger_db = TriggerService.create_trigger_db_from_rule(rule)
205 kwargs["trigger"] = reference.get_str_resource_ref_from_model(trigger_db)
206
207 kwargs["pack"] = getattr(rule, "pack", DEFAULT_PACK_NAME)
208 kwargs["ref"] = ResourceReference.to_string_reference(
209 pack=kwargs["pack"], name=kwargs["name"]
210 )
211
212 # Validate criteria
213 kwargs["criteria"] = dict(getattr(rule, "criteria", {}))
214 validator.validate_criteria(kwargs["criteria"])
215
216 kwargs["action"] = ActionExecutionSpecDB(
217 ref=rule.action["ref"], parameters=rule.action.get("parameters", {})
218 )
219
220 rule_type = dict(getattr(rule, "type", {}))
221 if rule_type:
222 kwargs["type"] = RuleTypeSpecDB(
223 ref=rule_type["ref"], parameters=rule_type.get("parameters", {})
224 )
225
226 kwargs["enabled"] = getattr(rule, "enabled", False)
227 kwargs["context"] = getattr(rule, "context", dict())
228 kwargs["tags"] = TagsHelper.to_model(getattr(rule, "tags", []))
229 kwargs["metadata_file"] = getattr(rule, "metadata_file", None)
230
231 model = cls.model(**kwargs)
232 return model
233
234
235class RuleViewAPI(RuleAPI):

Callers

nothing calls this directly

Calls 4

RuleTypeSpecDBClass · 0.90
getMethod · 0.45
to_string_referenceMethod · 0.45

Tested by

no test coverage detected