class

Krikri::IncludeDirectiveError

Inherits Exception < Reference < Object

A bad argument on an include/include-role directive (include_role:, import_role:, import_tasks:, include_tasks:), rejected by ansible-core at PLAYBOOK-LOAD time - TaskInclude.check_options / IncludeRole.load run while the playbook is being parsed, long before any play banner. ansible-playbook 2.19.11 aborts the whole run with an "[ERROR]: ..." block (plus the task's Origin block when the raise carries obj=data - the FROM_ARGS "Expected a string" raise does NOT, live-verified) on STDERR and exits 4:

  • a non-string, non-mapping free-form value (import_tasks: 5): mod_args' "unexpected parameter type in action: <class ...>"
  • unknown options (include_role: {handler_sfrom: x}): "Invalid options for <action>: <keys>" (Ansible's key order comes out of a frozenset, so it is process-random for 2+ keys; this engine emits the playbook's own key order)
  • include_role/import_role without name/role: "'name' is a required field for <action>."
  • a non-string name/role: value on a STATIC import_role: ("Invalid role definition." with the value's own Origin - the dynamic include_role:'s same value aborts at RUN time instead, see the executor's fail_include_role_invalid_definition)
  • a non-string tasks_from/vars_from/defaults_from/handlers_from: "Expected a string for <key> but got <class ...> instead"
  • a non-dict apply: ("Expected a dict for apply but got <class ...> instead" - an explicit null counts, an ABSENT key does not), or apply: on import_tasks/import_role (valid on include_tasks/ include_role only): "Invalid options for <action>: apply"
  • import_tasks/include_tasks with no file at all (empty, null, {}, {file: ""}): "No file specified for <action>"

Carries the fully rendered stderr block (built at the raise site, which is where the source map lives) for krikri-playbook.cr to print verbatim, the way MetaActionTypeError does.

Constructors

new(render : String)
Source

Instance methods

render
Source