91 строка
3.6 KiB
HTML
91 строка
3.6 KiB
HTML
<!doctype html>
|
|
<html lang="ru">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>{{ vm.name }} — {{ app_name }}</title>
|
|
<link rel="stylesheet" href="/static/app.css">
|
|
</head>
|
|
<body>
|
|
<div class="shell">
|
|
<header class="topbar">
|
|
<div>
|
|
<div class="brand">{{ vm.name }}</div>
|
|
<div class="muted">Детали виртуальной машины</div>
|
|
</div>
|
|
<div class="top-meta">
|
|
<span>user: {{ user }}</span>
|
|
<a class="link-pill" href="/">← Дашборд</a>
|
|
<form method="post" action="/logout" class="logout-form"><button class="ghost">Выйти</button></form>
|
|
</div>
|
|
</header>
|
|
|
|
<section class="card">
|
|
<div class="card-head">
|
|
<h2>Управление</h2>
|
|
<span class="pill">virsh actions</span>
|
|
</div>
|
|
<div class="actions big-actions">
|
|
<form method="post" action="/vm/{{ vm.name }}/start"><button>Start</button></form>
|
|
<form method="post" action="/vm/{{ vm.name }}/shutdown"><button>Shutdown</button></form>
|
|
<form method="post" action="/vm/{{ vm.name }}/reboot"><button>Reboot</button></form>
|
|
<form method="post" action="/vm/{{ vm.name }}/destroy"><button class="danger">Power off</button></form>
|
|
<form method="post" action="/vm/{{ vm.name }}/autostart"><button>Autostart on</button></form>
|
|
<form method="post" action="/vm/{{ vm.name }}/autostart-disable"><button>Autostart off</button></form>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="grid two">
|
|
<article class="card">
|
|
<div class="card-head">
|
|
<h2>Информация</h2>
|
|
<span class="pill">dominfo</span>
|
|
</div>
|
|
<pre>{{ vm.dominfo }}</pre>
|
|
</article>
|
|
|
|
<article class="card">
|
|
<div class="card-head">
|
|
<h2>Консоль</h2>
|
|
<span class="pill">VNC</span>
|
|
</div>
|
|
<div class="services">
|
|
<div class="service-row"><span>VNC display</span><span class="status ok">{{ vm.vnc }}</span></div>
|
|
<div class="service-row"><span>Host</span><span class="status ok">{{ host_ip }}</span></div>
|
|
</div>
|
|
<p class="muted small-note">Если VNC display показывает <b>:0</b>, порт обычно <b>5900</b>. Если <b>:1</b> — <b>5901</b>. Также можно открыть консоль через Cockpit.</p>
|
|
</article>
|
|
</section>
|
|
|
|
<section class="grid two">
|
|
<article class="card">
|
|
<div class="card-head">
|
|
<h2>Диски</h2>
|
|
<span class="pill">domblklist</span>
|
|
</div>
|
|
<pre>{{ vm.disks }}</pre>
|
|
</article>
|
|
|
|
<article class="card">
|
|
<div class="card-head">
|
|
<h2>Сеть</h2>
|
|
<span class="pill">domiflist</span>
|
|
</div>
|
|
<pre>{{ vm.interfaces }}</pre>
|
|
</article>
|
|
</section>
|
|
|
|
<section class="card danger-zone">
|
|
<div class="card-head">
|
|
<h2>Опасная зона</h2>
|
|
<span class="pill">delete VM</span>
|
|
</div>
|
|
<p class="muted">Удаление остановит VM, удалит определение libvirt и попытается удалить все привязанные storage-диски. Это действие без корзины — как rm -rf, только в костюме.</p>
|
|
<form method="post" action="/vm/{{ vm.name }}/delete" onsubmit="return confirm('Удалить VM {{ vm.name }} вместе с дисками?');">
|
|
<button class="danger">Удалить VM вместе с дисками</button>
|
|
</form>
|
|
</section>
|
|
</div>
|
|
</body>
|
|
</html>
|