perfsonar / pscheduler

The perfSONAR Scheduler
Apache License 2.0
55 stars 34 forks source link

Update jsontemplate #1399

Closed mfeit-internet2 closed 9 months ago

mfeit-internet2 commented 9 months ago

The jsontemplate we're building doesn't run on Python 3.10 because of the collections.Callable -> collections.abc.Callable problem resolved in #1370.

See if there's a new, still-compatible version or write a patch.

Problem seen by Daniel:

root@ubuntu22:/etc/apt/sources.list.d# pscheduler task rtt --dest monipe-rj-atraso.rnp.br
Submitting task...
Task URL:
https://ubuntu22/pscheduler/tasks/0aaec7e9-5e3d-42b9-b8d9-768cc2c66cb2
Running with tool 'ping'
Fetching first run...

Next scheduled run:
https://ubuntu22/pscheduler/tasks/0aaec7e9-5e3d-42b9-b8d9-768cc2c66cb2/runs/6d16005f-5da6-4f9d-85b5-65b6da4d5bc0
Starts 2024-01-29T14:59:43+00:00 (~3 seconds)
Ends   2024-01-29T14:59:54+00:00 (~10 seconds)
Waiting for result...

Problem fetching results: Failed to format result: Traceback (most recent call last):
  File "/usr/lib/pscheduler/classes/test/rtt/result-format", line 136, in <module>
    print(jsontemplate.expand(rt_template, rt).strip())
  File "/usr/lib/python3/dist-packages/jsontemplate/_jsontemplate.py", line 1773, in expand
    t = Template(template_str, **kwargs)
  File "/usr/lib/python3/dist-packages/jsontemplate/_jsontemplate.py", line 1391, in __init__
    builder = _ProgramBuilder(more_formatters, more_predicates, r)
  File "/usr/lib/python3/dist-packages/jsontemplate/_jsontemplate.py", line 336, in __init__
    elif isinstance(formatters, collections.Callable):
AttributeError: module 'collections' has no attribute 'Callable'

No further runs scheduled.
mfeit-internet2 commented 9 months ago

Decided to remove jsontemplate and convert all use of it to Jinja2.

Test plugins to do:

mfeit-internet2 commented 9 months ago

Done. Finally.