Add Server Info card
This commit is contained in:
1 parent
5687d8a4e7
commit
49a20a946f
2 files changed
+106
No files matched your search
@@ -112,9 +112,67 @@ if cgi.params.key?("content")
|
||||
drives = info.select { |e| e["type"] == "drive" }
|
||||
filesystems = info.select { |e| e["type"] == "filesystem" }
|
||||
vms = info.select { |e| e["type"] == "vm" }
|
||||
server = info.find { |e| e["type"] == "server" }
|
||||
|
||||
html << %(<div class="span-3">)
|
||||
|
||||
if server
|
||||
html << %(<div class="section-label">Server</div>)
|
||||
html << %(<div class="card ok"><div class="card-header"><span class="card-title">Server Info</span></div><div class="subitems">)
|
||||
|
||||
if server["os_name"]
|
||||
html << <<~HTML
|
||||
<div class="subitem">
|
||||
<div class="subitem-left"><div class="dot ok"></div><span class="subitem-name">OS</span></div>
|
||||
<span class="subitem-value ok">#{CGI.escapeHTML(server["os_name"])}</span>
|
||||
</div>
|
||||
HTML
|
||||
end
|
||||
|
||||
if server["install_date"]
|
||||
html << <<~HTML
|
||||
<div class="subitem">
|
||||
<div class="subitem-left"><div class="dot ok"></div><span class="subitem-name">Installed</span></div>
|
||||
<span class="subitem-value ok">#{CGI.escapeHTML(server["install_date"])}</span>
|
||||
</div>
|
||||
HTML
|
||||
end
|
||||
|
||||
cpu_model = server["cpu_model"]
|
||||
cpu_cores = server["cpu_cores"]
|
||||
if cpu_model || cpu_cores
|
||||
cpu_text = [
|
||||
cpu_model,
|
||||
cpu_cores ? "#{cpu_cores} thread#{cpu_cores == 1 ? "" : "s"}" : nil
|
||||
].compact.join(" · ")
|
||||
html << <<~HTML
|
||||
<div class="subitem">
|
||||
<div class="subitem-left"><div class="dot ok"></div><span class="subitem-name">CPU</span></div>
|
||||
<span class="subitem-value ok">#{CGI.escapeHTML(cpu_text)}</span>
|
||||
</div>
|
||||
HTML
|
||||
end
|
||||
|
||||
mem_total = server["mem_total"].to_i
|
||||
mem_used = server["mem_used"].to_i
|
||||
if mem_total > 0
|
||||
mem_pct_f = mem_used * 100.0 / mem_total
|
||||
mem_pct = mem_pct_f.round
|
||||
mem_cls = mem_pct_f >= 90 ? "bad" : mem_pct_f >= 75 ? "warn" : "ok"
|
||||
html << <<~HTML
|
||||
<div class="subitem" style="flex-direction:column;align-items:stretch;gap:0.35rem;">
|
||||
<div style="display:flex;justify-content:space-between;align-items:center;">
|
||||
<div class="subitem-left"><div class="dot #{mem_cls}"></div><span class="subitem-name">Memory</span></div>
|
||||
<span class="subitem-value #{mem_cls}">#{mem_pct}% · #{CGI.escapeHTML(human_capacity(mem_used))} / #{CGI.escapeHTML(human_capacity(mem_total))}</span>
|
||||
</div>
|
||||
<div class="bar-track"><div class="bar-fill #{mem_cls}" style="width:#{mem_pct}%"></div></div>
|
||||
</div>
|
||||
HTML
|
||||
end
|
||||
|
||||
html << %(</div></div>)
|
||||
end
|
||||
|
||||
if vms.any?
|
||||
running = vms.count { |v| v["state"].to_s == "running" }
|
||||
total = vms.size
|
||||
|
||||
Reference in new issue
Block a user