{{ group_name }}
{% for server in servers %}
{% set d = server.details or {} %}
{% set sys = d.get('system', {}) if d.get('system') else {} %}
{% set cpu = d.get('cpu', {}) if d.get('cpu') else {} %}
{% set mem = d.get('memory', {}) if d.get('memory') else {} %}
{% set temps = d.get('temperatures', {}) if d.get('temperatures') else {} %}
{% set max_temp = namespace(val=0.0) %}
{% for k, v in temps.items() %}
{% if v|float > max_temp.val %}
{% set max_temp.val = v|float %}
{% endif %}
{% endfor %}
{% set cpu_pct = cpu.get('usage_percent', '0')|float %}
{% set mem_pct = mem.get('usage_percent', '0')|float %}
{% set disk_usages = d.get('disk_usage', []) if d.get('disk_usage') else [] %}
{% set root_disk = namespace(pct=0.0) %}
{% for du in disk_usages %}
{% if du.get('mount') == '/' %}
{% set root_disk.pct = du.get('usage_percent', '0')|float %}
{% endif %}
{% endfor %}
{% if root_disk.pct == 0.0 and disk_usages|length > 0 %}
{% set root_disk.pct = disk_usages[0].get('usage_percent', '0')|float %}
{% endif %}
{% endfor %}
{{ server.hostname }}
{% if server.url %}
↗
{% endif %}
{{ server.primary_ip or 'No IP' }}
{% if sys.get('platform') %}{{ sys.get('platform')|capitalize }} {{ sys.get('platform_version', '') }} / {% endif %}{{ sys.get('os_pretty', '') }}
{% set server_links = server.links or [] %}
{% if server_links %}
{% for link in server_links %}
{{ link.label }}
{% endfor %}
{% endif %}
{% if server.is_online and (cpu.get('model') or mem.get('total_mb')) %}
{%- if cpu.get('model') %}{{ cpu.get('model') }}{% endif %}
{%- if cpu.get('cores') %} ({{ cpu.get('cores') }}c){% endif %}
{%- if mem.get('total_mb') %} / {{ mem.get('total_mb', '')|format_mb }}{% endif -%}
{% endif %}
{% set containers_raw = d.get('container', []) if d.get('container') else [] %}
{% set child_vms = children_map.get(server.hostname, []) %}
{% set child_names = [] %}
{% for vm in child_vms %}
{% set _ = child_names.append(vm.hostname) %}
{% if vm.details and vm.details.get('system', {}).get('hostname') %}
{% set _ = child_names.append(vm.details['system']['hostname']) %}
{% endif %}
{% endfor %}
{% set containers = [] %}
{% for ct in containers_raw %}
{% set ct_name = ct.get('name', ct.get('id', '')) %}
{% if ct_name not in child_names %}
{% set _ = containers.append(ct) %}
{% endif %}
{% endfor %}
{% if server.is_online %}
{% if containers or child_vms %}
{% for vm in child_vms %}
{% endif %}
{% else %}
{{ vm.details.get('system', {}).get('hostname', vm.hostname) if vm.details else vm.hostname }}
VM
{% set vm_os = vm.details.get('system', {}).get('os_pretty', '') if vm.details else '' %}
{% if vm_os %}{{ vm_os }}{% endif %}
{{ vm.primary_ip or vm.hostname }}
{% set vm_cts = vm.details.get('container', []) if vm.details and vm.details.get('container') else [] %}
{% for vct in vm_cts %}
{% set vct_up = vct.get('status', '')|lower in ['running', 'started'] %}
{{ vct.get('name', vct.get('id', '?')) }}
{% if vct.get('ip') %}{{ vct.get('ip') }}{% endif %}
{% endfor %}
{% endfor %}
{% for ct in containers %}
{% set ct_up = ct.get('status', '')|lower in ['running', 'started'] %}
{{ ct.get('name', ct.get('id', '?')) }}
{% if ct.get('os') %}{{ ct.get('os') }}{% endif %}
{% if ct.get('ip') %}{{ ct.get('ip') }}{% endif %}
{% endfor %}
Unreachable
{% endif %}
No servers configured
Edit infrastructure.conf to add your servers.