DynflowBrowser {{sos['version']}}
🏠 | Task: {{root_actions[0][12] if root_actions else ''}} | Label: {{label}} | ID: {{root_actions[0][13] if root_actions else ''}} {% if caller_execution_plan_id %} | Caller: {{caller_execution_plan_id}} {% endif %} | Plan: {{execution_plan_uuid}}
Action / Step
Started At
Ended At
Real Time
Exec Time
Status
{# Macro to recursively render action and its children #} {% macro render_action(a, child_actions, visited=[]) %} {% set action_id = a[0] %} {# Prevent infinite recursion from circular references #} {% if action_id in visited %} {# Skip this action to prevent cycle #} {% else %} {% set _ = visited.append(action_id) %} {# Determine action state #} {% if a[4] is not none and a[7] is not none and a[4] == 'Actions::RemoteExecution::ProxyAction' and a[7] != '' and '"exit_status": 0,' not in a[7] %} {% set state = 'error' %} {% else %} {% set state = a[10] %} {% endif %} {# Check if action has alerts #} {% set has_alert = (a[7] and a[7]|length and a[7] != "{}") %}
{% if a[19]|length or action_id in child_actions %}{% endif %} {{a[3]}}: {{a[4]}}
{% if a[15] %}{{ a[15].split(".")[0] }}{% endif %} {% if a[16] %}{{ a[16].split(".")[0] }}{% endif %} {% if a[17] %}{{ "{:0,.2f}".format(a[17]) }}{% endif %} {% if a[18] %}{{ "{:0,.2f}".format(a[18]) }}{% endif %} {{state}}
{{a[6]|safe}}
{{a[7]|safe}}
{{a[5]|safe}}
{% if a[19] %}
{% for s in a[19] %}
{{a[3]}}.{{s[1]}}: {{s[10]}}
{{ s[4].split(".")[0] }} {{ s[5].split(".")[0] }} {{ "{:0,.2f}".format(s[6]) }} {{ "{:0,.2f}".format(s[7]) }} {{s[3]}}
{{s[13]|safe}}
{{s[12]|safe}}
{{s[14]|safe}}
{{s[15]|safe}}
{% endfor %}
{% endif %} {% if action_id in child_actions %}
{% for child in child_actions[action_id] %} {{ render_action(child, child_actions, visited) }} {% endfor %}
{% endif %}
{% endif %} {% endmacro %} {# Render all root actions #} {% for root in root_actions %} {{ render_action(root, child_actions) }} {% endfor %}