v0.58.0: report GuestPath/BoundUnderParent for a registry-sourced /disks row
The Impl-2a registry union row omitted GuestPath + BoundUnderParent, so the controller read a registry-only (raw) drive as "Leválasztva" despite being mounted + bound live. Populate them like the Observe path (StablePathForRaw + boundUnderParent). Last piece of first-class raw-drive support. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,3 +1,13 @@
|
|||||||
|
## v0.58.0 — report GuestPath/BoundUnderParent for a registry-sourced drive in /disks (2026-07-01)
|
||||||
|
|
||||||
|
Last piece of first-class raw-drive support: the `/disks` union row for a registry-sourced drive (Impl-2a
|
||||||
|
— a drive with no PVE storage) omitted `GuestPath` + `BoundUnderParent`, so the controller read it as
|
||||||
|
"Leválasztva" (disconnected) even though it was mounted + bound + live in the guest.
|
||||||
|
|
||||||
|
- **`internal/localapi/disks.go` handleDisks registry union:** populate `GuestPath` (`StablePathForRaw`)
|
||||||
|
+ `BoundUnderParent` (`boundUnderParent`) on the registry row, identical to the Observe path — so a
|
||||||
|
registry-only drive reports its true bound/active state. `go build/vet/test ./...` clean.
|
||||||
|
|
||||||
## v0.57.0 — re-assert a RAW drive's guest-bind (ReassertGuestBinds mount-table fallback) (2026-07-01)
|
## v0.57.0 — re-assert a RAW drive's guest-bind (ReassertGuestBinds mount-table fallback) (2026-07-01)
|
||||||
|
|
||||||
Completes the raw-drive durability the v0.56.0 fix started. `ReassertGuestBinds` (the startup / drive-
|
Completes the raw-drive durability the v0.56.0 fix started. `ReassertGuestBinds` (the startup / drive-
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ import (
|
|||||||
|
|
||||||
// version is the agent version. Overridable at build time with
|
// version is the agent version. Overridable at build time with
|
||||||
// -ldflags "-X main.version=<v>"; defaults to the in-repo CHANGELOG version.
|
// -ldflags "-X main.version=<v>"; defaults to the in-repo CHANGELOG version.
|
||||||
var version = "0.57.0"
|
var version = "0.58.0"
|
||||||
|
|
||||||
// runGuestHook is the PVE pre-start hook body (`felhom-agent guest-hook <vmid> <phase>`). On the
|
// runGuestHook is the PVE pre-start hook body (`felhom-agent guest-hook <vmid> <phase>`). On the
|
||||||
// pre-start phase it creates placeholder dirs for any absent bind-mount source so the guest always boots
|
// pre-start phase it creates placeholder dirs for any absent bind-mount source so the guest always boots
|
||||||
|
|||||||
@@ -223,12 +223,19 @@ func (s *Server) handleDisks(w http.ResponseWriter, r *http.Request, vmid int) {
|
|||||||
if d.MountPath == "" || seen[d.MountPath] {
|
if d.MountPath == "" || seen[d.MountPath] {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
out = append(out, DiskInfo{
|
di := DiskInfo{
|
||||||
Name: d.Name, Type: d.Type, State: "attached",
|
Name: d.Name, Type: d.Type, State: "attached",
|
||||||
MountPath: d.MountPath, DurableID: d.DurableID,
|
MountPath: d.MountPath, DurableID: d.DurableID,
|
||||||
Role: string(storage.RoleUserData),
|
Role: string(storage.RoleUserData),
|
||||||
GuestAttached: boundPaths[d.MountPath],
|
GuestAttached: boundPaths[d.MountPath],
|
||||||
})
|
}
|
||||||
|
// Intermediary model: report the stable in-guest path + whether felhom-data is bound live,
|
||||||
|
// exactly like the Observe path — else the controller reads a registry drive as "Leválasztva".
|
||||||
|
if gp := StablePathForRaw(d.MountPath); gp != "" {
|
||||||
|
di.GuestPath = gp
|
||||||
|
di.BoundUnderParent = s.boundUnderParent(r.Context(), vmid, gp)
|
||||||
|
}
|
||||||
|
out = append(out, di)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
s.logger.Warn("disks: registry drive union skipped", "err", derr)
|
s.logger.Warn("disks: registry drive union skipped", "err", derr)
|
||||||
|
|||||||
Reference in New Issue
Block a user