{% extends "base.html" %} {% block content %} {% set nodes_data = response_data(nodes) or [] %} {% set nodes_error = response_error(nodes) %} {% set selected_error = response_error(selected_node) %} {% set selected_node_data = response_data(selected_node) %}

Nodes

octa_client.nodes.list + octa_client.nodes.find(id) — click a row to load detail.

{% if playground_mock_active %} Mock: {{ playground_mock_scenario }} {% endif %} Refetch
{% if nodes_error %} {% set error = nodes_error %} {% include "shared/error_card.html" %} {% elif nodes_data %}
{{ nodes_data|length }} nodes {% if selected_node_data or selected_error %} Close detail {% endif %}
{% for node in nodes_data %} {% set selected = selected_node_id|string == node.get("id")|string %} {% endfor %}
ID Location CPU GPU RAM State
{{ node.get("id") }} {{ node_location(node) }} {{ node.get("system", {}).get("cpu_cores") or node.get("data", {}).get("cpu_cores") or "—" }} cores {% if node_gpu_count(node) %}{{ node_gpu_count(node) }}× {% endif %}{{ node_gpu_model(node) }} {{ node_ram_label(node) }} {{ node.get("state") or "unknown" }}
{% if selected_error %} {% set error = selected_error %} {% include "shared/error_card.html" %} {% elif selected_node_data %} {% set node = selected_node_data %} {% set node_id = selected_node_id %} {% set close_path = "/playground/nodes" %} {% include "shared/node_detail_panel.html" %} {% endif %}
{% else %}
No nodes found.
{% endif %}
{% endblock %}