ansible / ansible-rulebook

Apache License 2.0
194 stars 77 forks source link

Get error when running run_workflow_template #617

Closed Sudowojo closed 11 months ago

Sudowojo commented 11 months ago

Please confirm the following

Bug Summary

run_workflow_template does not seem to work. When I do try and use it, I get the following error in daphne.log:

Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]: 2023-11-16 03:31:40,839 ERROR    Exception inside application: ['“” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format.']
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]: Traceback (most recent call last):
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/channels/routing.py", line 62, in __call__
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    return await application(scope, receive, send)
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/channels/routing.py", line 116, in __call__
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    return await application(
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/channels/routing.py", line 116, in __call__
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    return await application(
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/channels/consumer.py", line 94, in app
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    return await consumer(scope, receive, send)
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/channels/consumer.py", line 62, in __call__
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    await await_many_dispatch([receive], self.dispatch)
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/channels/utils.py", line 50, in await_many_dispatch
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    await dispatch(result)
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/channels/consumer.py", line 73, in dispatch
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    await handler(message)
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/channels/generic/websocket.py", line 194, in websocket_receive
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    await self.receive(text_data=message["text"])
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/aap_eda/wsapi/consumers.py", line 92, in receive
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    await self.handle_actions(ActionMessage.parse_obj(data))
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/aap_eda/wsapi/consumers.py", line 135, in handle_actions
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    await self.insert_audit_rule_data(message)
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/asgiref/sync.py", line 448, in __call__
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    ret = await asyncio.wait_for(future, timeout=None)
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib64/python3.9/asyncio/tasks.py", line 442, in wait_for
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    return await fut
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib64/python3.9/concurrent/futures/thread.py", line 58, in run
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    result = self.fn(*self.args, **self.kwargs)
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/channels/db.py", line 13, in thread_handler
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    return super().thread_handler(loop, *args, **kwargs)
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/asgiref/sync.py", line 490, in thread_handler
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    return func(*args, **kwargs)
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/aap_eda/wsapi/consumers.py", line 204, in insert_audit_rule_data
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    audit_rule = models.AuditRule.objects.filter(
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/django/db/models/manager.py", line 85, in manager_method
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    return getattr(self.get_queryset(), name)(*args, **kwargs)
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/django/db/models/query.py", line 941, in filter
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    return self._filter_or_exclude(False, args, kwargs)
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/django/db/models/query.py", line 961, in _filter_or_exclude
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    clone._filter_or_exclude_inplace(negate, args, kwargs)
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/django/db/models/query.py", line 968, in _filter_or_exclude_inplace
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    self._query.add_q(Q(*args, **kwargs))
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/django/db/models/sql/query.py", line 1416, in add_q
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    clause, _ = self._add_q(q_object, self.used_aliases)
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/django/db/models/sql/query.py", line 1435, in _add_q
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    child_clause, needed_inner = self.build_filter(
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/django/db/models/sql/query.py", line 1370, in build_filter
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    condition = self.build_lookup(lookups, col, value)
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/django/db/models/sql/query.py", line 1216, in build_lookup
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    lookup = lookup_class(lhs, rhs)
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/django/db/models/lookups.py", line 25, in __init__
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    self.rhs = self.get_prep_lookup()
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/django/db/models/lookups.py", line 77, in get_prep_lookup
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    return self.lhs.output_field.get_prep_value(self.rhs)
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/django/db/models/fields/__init__.py", line 1406, in get_prep_value
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    value = super().get_prep_value(value)
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/django/db/models/fields/__init__.py", line 1266, in get_prep_value
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    return self.to_python(value)
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:  File "/usr/lib/python3.9/site-packages/django/db/models/fields/__init__.py", line 1388, in to_python
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]:    raise exceptions.ValidationError(
Nov 15 22:31:40 eda01 automation-eda-controller-daphne[821839]: django.core.exceptions.ValidationError: ['“” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format.']

Here's my stanza:

    - name: Fiber Adapters
      condition: event.payload.event_tags.playbook is select("==", "Tune Fiber Adapters")
      action:
        run_workflow_template: 
          name: Tune Fiber Adapters
          organization: Default
          job_args:
            extra_vars:
              key: "{{ event.payload.event_tags.key[0] }}"
              run: "{{ event.payload.host_host }}"
              context: "fiber"
              device: "{{ event.payload.event_tags.device[0] }}"

Environment

[root@eda01 log]# ansible-rulebook --version version = '1.0.0' Executable location = /usr/bin/ansible-rulebook Drools_jpy version = 0.3.4 Java home = /usr/lib/jvm/java-17-openjdk-17.0.9.0.9-2.el8.x86_64 Java version = 17.0.9 Python version = 3.9.16 (main, Sep 22 2023, 17:57:55) [GCC 8.5.0 20210514 (Red Hat 8.5.0-18)]

Steps to reproduce

Create a workflow template with a few steps

Try and run it using EDA.

Actual results

Error in daphne log.

Expected results

It to run the workflow template job on AAP.

Additional information

No response

ttuffin commented 11 months ago

Hi @Sudowojo, looking at the output of ansible-rulebook --version it seems you're running a very old version (v1.0.0) of rulebook. We added support for run_workflow_template in 1.0.2. Can you please update to the latest version and try again? pip install -U ansible-rulebook.

Sudowojo commented 11 months ago

Hi @Sudowojo, looking at the output of ansible-rulebook --version it seems you're running a very old version (v1.0.0) of rulebook. We added support for run_workflow_template in 1.0.2. Can you please update to the latest version and try again? pip install -U ansible-rulebook.

So I downloaded this via Red Hat (For use with AAP) and it's at 1.0.1 as provided by RedHat. Can I independently upgrade outside of that? Or will it break things?

ttuffin commented 11 months ago

Ok, ansible-rulebook version should be bumped in an upcoming AAP release so best wait for that. For queries related to AAP, you can go via the support portal at https://access.redhat.com/support