v0.80.0: disk card shows + acts on the stable path, not the raw host mount
The storage card displayed each external drive's raw host PVE mount (/mnt/<name>, which doesn't exist in the guest) instead of the stable in-guest path (/mnt/felhom-drives/<name> = guest_path) the registry/HDD_PATH/FileBrowser use. The eject/wipe buttons also posted the raw path, so they would unmount the drive but leave the stable registry entry orphaned, and the impact warning found no apps. Fix: card sub-line + eject/wipe buttons use the stable path (regKey); type-to-confirm name uses the basename; register keeps the raw path. handleStorageWipe maps to raw via agentWhere() for the agent eject (matching handleStorageEject). Agent ops unchanged (same raw paths); display + registry bookkeeping corrected. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017PsnU2ASocYrvzqE82YDYW
This commit is contained in:
@@ -608,8 +608,10 @@ func (s *Server) handleStorageWipe(w http.ResponseWriter, r *http.Request) {
|
||||
writeDiskJSON(w, http.StatusServiceUnavailable, false, err.Error(), nil)
|
||||
return
|
||||
}
|
||||
// 1. Unmount (benign — frees the device so mkfs can run) + deregister the StoragePath.
|
||||
if _, eerr := agent.EjectDisk(r.Context(), req.Where); eerr != nil {
|
||||
// 1. Unmount (benign — frees the device so mkfs can run) + deregister the StoragePath. req.Where is
|
||||
// the STABLE registered path; the agent operates on the raw mount (agentWhere), the registry stores
|
||||
// the stable path (RemoveStoragePath gets req.Where).
|
||||
if _, eerr := agent.EjectDisk(r.Context(), agentWhere(req.Where)); eerr != nil {
|
||||
s.logger.Printf("[WARN] [web] wipe: eject %s failed (continuing to format): %v", req.Where, eerr)
|
||||
} else if rerr := s.settings.RemoveStoragePath(req.Where); rerr != nil {
|
||||
s.logger.Printf("[WARN] [web] wipe: deregister %s failed: %v", req.Where, rerr)
|
||||
|
||||
Reference in New Issue
Block a user