Two-phase onboard + partner card enhancements
partnership_onboard.sh: - --phase1-only (OWNER): SSH key exchange + conf push only; safe to run before HOST2 has Varaverk installed; writes HOST2_PHASE1_DONE to setup.db - --phase2-only (OWNER): skips SSH, runs Steps 2-9 (containers, arr stack, onboard, arr sync, conf push); writes HOST2_PHASE2_DONE to setup.db - Mirror path: after SSH setup, SSHes OWNER and fires --phase2-only in background (nohup); reads OWNER's SCRIPTS_DIR from varaverk.cfg first; falls back to manual instruction if SSH fails partnership.php (include): vv_pt_nodes() reads setup.db and exposes onboard_phase (0/1/2) per remote node partnership.php (page): phase-aware Actions section per partner host; node cards show phase badge (not provisioned / awaiting onboard / done); Phase 1 and Phase 2 buttons call run.php with extra_args monitor.php: partner card logo (top-right), CPU thread count, RAM total GB, unRAID version row in remote stats grid
This commit is contained in:
@@ -82,6 +82,7 @@
|
||||
<span class="vv-ico"><svg width="14" height="10" viewBox="0 0 14 10" fill="none" stroke="#aaa" stroke-width="1.1" stroke-linecap="round"><rect x="0.5" y="1.5" width="4" height="7" rx="0.8"/><rect x="9.5" y="1.5" width="4" height="7" rx="0.8"/><line x1="4.5" y1="5" x2="9.5" y2="5"/><circle cx="7" cy="5" r="1" fill="#888" stroke="none"/></svg></span>
|
||||
Partner
|
||||
</span>
|
||||
<img src="/plugins/varaverk/icons/varaverk.png" style="width:16px;height:16px;object-fit:contain;opacity:0.2;flex-shrink:0;" title="Varaverk">
|
||||
</h3>
|
||||
<div id="vv-partner-body">Loading...</div>
|
||||
</div>
|
||||
@@ -639,8 +640,8 @@ function vvPollMonitor() {
|
||||
const ramAvail = rs.mem_used_pct > 0;
|
||||
const cpuHue = cpuAvail ? Math.round(120 * (1 - rs.cpu_load / 100)) : 0;
|
||||
const memHue = ramAvail ? Math.round(120 * (1 - rs.mem_used_pct / 100)) : 0;
|
||||
const cpuStr = cpuAvail ? `<span style="color:hsl(${cpuHue},70%,45%);font-weight:600;">${rs.cpu_load}%</span>` : `<span style="color:#333;">—</span>`;
|
||||
const ramStr = ramAvail ? `<span style="color:hsl(${memHue},70%,45%);font-weight:600;">${rs.mem_used_pct}%</span>` : `<span style="color:#333;">—</span>`;
|
||||
const cpuStr = cpuAvail ? `<span style="color:hsl(${cpuHue},70%,45%);font-weight:600;">${rs.cpu_load}%${rs.cpu_threads ? `<span style="color:#333;font-weight:400;"> · ${rs.cpu_threads}t</span>` : ''}</span>` : `<span style="color:#333;">—</span>`;
|
||||
const ramStr = ramAvail ? `<span style="color:hsl(${memHue},70%,45%);font-weight:600;">${rs.mem_used_pct}%${rs.mem_total_gb ? `<span style="color:#333;font-weight:400;"> · ${rs.mem_total_gb}G</span>` : ''}</span>` : `<span style="color:#333;">—</span>`;
|
||||
const arrColor = rs.array_state === 'Started' || rs.array_state === 'STARTED' ? '#4caf50' : '#f44336';
|
||||
const uptimeStr = rs.uptime && rs.uptime !== '—' ? rs.uptime : '—';
|
||||
|
||||
@@ -654,6 +655,7 @@ function vvPollMonitor() {
|
||||
<span style="color:#555;">Script sync ops are gated until versions match</span>
|
||||
</div>` : '';
|
||||
|
||||
const verRow = remoteVer ? `<span style="color:#444;">unRAID</span><span style="color:#3a3a3a;grid-column:span 3;">${remoteVer}</span>` : '';
|
||||
statsHtml = `<div style="display:grid;grid-template-columns:auto 1fr auto 1fr;gap:2px 8px;font-size:10px;margin-top:5px;margin-bottom:2px;">
|
||||
<span style="color:#444;">CPU</span>${cpuStr}
|
||||
<span style="color:#444;">RAM</span>${ramStr}
|
||||
@@ -661,6 +663,7 @@ function vvPollMonitor() {
|
||||
<span style="color:${arrColor};font-weight:600;">${rs.array_state}</span>
|
||||
<span style="color:#444;">Uptime</span>
|
||||
<span style="color:#555;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">${uptimeStr}</span>
|
||||
${verRow}
|
||||
</div>${verWarn}`;
|
||||
} else if (rs && rs.no_api_key) {
|
||||
statsHtml = `<div style="font-size:10px;color:#444;margin-top:4px;">API key not configured — complete Onboard to enable</div>`;
|
||||
|
||||
Reference in New Issue
Block a user