controller v0.49.0: slice 10 P2 activation — pending-drive detection + restart button

pendingActivationDrives() flags registered drives the agent shows attached but not
live-mounted in the container; settings banner + "Újraindítás most" button →
/api/storage/activate → agentapi.GuestReboot. Batches all pending into one restart.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-12 17:19:27 +02:00
parent ee5b6304a7
commit 2a353572f7
5 changed files with 103 additions and 0 deletions
+9
View File
@@ -331,6 +331,15 @@ func (c *Client) GuestAttach(ctx context.Context, where string) error {
return err
}
// GuestReboot reboots THIS guest to activate persisted-but-inactive drive binds (slice 10 P2
// activation — the host-side live inject is blocked on an unprivileged guest, so a drive enrolled into
// a running guest activates only at the next boot). The agent runs the reboot detached + returns 202;
// this guest (and the controller) restarts shortly after. User-triggered ("Újraindítás most").
func (c *Client) GuestReboot(ctx context.Context) error {
_, err := c.post(ctx, "/guest/reboot", struct{}{})
return err
}
// EjectResult mirrors POST /disks/eject (the dependent-guest warning).
type EjectResult struct {
VMID int `json:"vmid"`