Unify Redfish analysis through raw replay and add storage volumes
This commit is contained in:
@@ -647,6 +647,7 @@ function renderConfig(data) {
|
||||
const config = data.hardware || data;
|
||||
const spec = data.specification;
|
||||
const devices = Array.isArray(config.devices) ? config.devices : [];
|
||||
const volumes = Array.isArray(config.volumes) ? config.volumes : [];
|
||||
|
||||
const cpus = devices.filter(d => d.kind === 'cpu');
|
||||
const memory = devices.filter(d => d.kind === 'memory');
|
||||
@@ -847,7 +848,7 @@ function renderConfig(data) {
|
||||
|
||||
// Storage tab
|
||||
html += '<div class="config-tab-content" id="config-storage">';
|
||||
if (storage.length > 0) {
|
||||
if (storage.length > 0 || volumes.length > 0) {
|
||||
const storTotal = storage.length;
|
||||
const storHDD = storage.filter(s => s.type === 'HDD').length;
|
||||
const storSSD = storage.filter(s => s.type === 'SSD').length;
|
||||
@@ -862,6 +863,7 @@ function renderConfig(data) {
|
||||
<div class="stat-box"><span class="stat-value">${storTotal}</span><span class="stat-label">Всего слотов</span></div>
|
||||
<div class="stat-box"><span class="stat-value">${storage.filter(s => s.present).length}</span><span class="stat-label">Установлено</span></div>
|
||||
<div class="stat-box"><span class="stat-value">${totalTB > 0 ? totalTB + ' TB' : '-'}</span><span class="stat-label">Объём</span></div>
|
||||
<div class="stat-box"><span class="stat-value">${volumes.length}</span><span class="stat-label">Логических томов</span></div>
|
||||
<div class="stat-box model-box"><span class="stat-value">${typesSummary.join(', ') || '-'}</span><span class="stat-label">По типам</span></div>
|
||||
</div>
|
||||
<table class="config-table"><thead><tr><th>NO.</th><th>Статус</th><th>Расположение</th><th>Backplane ID</th><th>Тип</th><th>Модель</th><th>Размер</th><th>Серийный номер</th></tr></thead><tbody>`;
|
||||
@@ -880,6 +882,21 @@ function renderConfig(data) {
|
||||
</tr>`;
|
||||
});
|
||||
html += '</tbody></table>';
|
||||
if (volumes.length > 0) {
|
||||
html += `<h3 style="margin-top:16px;">Логические тома (RAID/VROC)</h3>
|
||||
<table class="config-table"><thead><tr><th>ID</th><th>Имя</th><th>Контроллер</th><th>RAID</th><th>Размер</th><th>Статус</th></tr></thead><tbody>`;
|
||||
volumes.forEach(v => {
|
||||
html += `<tr>
|
||||
<td>${escapeHtml(v.id || '-')}</td>
|
||||
<td>${escapeHtml(v.name || '-')}</td>
|
||||
<td>${escapeHtml(v.controller || '-')}</td>
|
||||
<td>${escapeHtml(v.raid_level || '-')}</td>
|
||||
<td>${v.size_gb > 0 ? `${v.size_gb} GB` : '-'}</td>
|
||||
<td>${escapeHtml(v.status || '-')}</td>
|
||||
</tr>`;
|
||||
});
|
||||
html += '</tbody></table>';
|
||||
}
|
||||
} else {
|
||||
html += '<p class="no-data">Нет данных о накопителях</p>';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user