Feature: VdevTree rekursiv + Disk-Aktionen (Offline/Online/Detach/Clear)

- VdevTree rendert jetzt alle Ebenen (pool → mirror → sda/sdb)
- Disk-⋮-Menü: Clear Disk Errors, Offline, Online, Detach
- Backend: neue Endpoints /disk/offline, /disk/online, /disk/detach

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-05 00:51:34 +02:00
parent 6f6e8555af
commit 202fdfaaeb
3 changed files with 166 additions and 20 deletions
+20
View File
@@ -233,6 +233,26 @@ export class ZFSManagerAPI {
return response.data
}
async diskOffline(poolName: string, disk: string): Promise<{ status: string }> {
const response = await this.client.post(`/api/pools/${poolName}/disk/offline`, null, { params: { disk } })
return response.data
}
async diskOnline(poolName: string, disk: string): Promise<{ status: string }> {
const response = await this.client.post(`/api/pools/${poolName}/disk/online`, null, { params: { disk } })
return response.data
}
async diskDetach(poolName: string, disk: string): Promise<{ status: string }> {
const response = await this.client.post(`/api/pools/${poolName}/disk/detach`, null, { params: { disk } })
return response.data
}
async clearDiskErrors(poolName: string, disk: string): Promise<{ status: string }> {
const response = await this.client.post(`/api/pools/${poolName}/clear`, null, { params: { disk } })
return response.data
}
// Datasets
async getDatasets(pool: string = "tank"): Promise<Dataset[]> {
const response = await this.client.get("/api/datasets/", { params: { pool } })