diff --git a/internal/grpc/pb/vantage.pb.go b/internal/grpc/pb/vantage.pb.go index a914114..5f6a9a8 100644 --- a/internal/grpc/pb/vantage.pb.go +++ b/internal/grpc/pb/vantage.pb.go @@ -1,5 +1,3 @@ - - package pb import ( @@ -83,8 +81,6 @@ type UploadKeyResponse struct { KeyId string `json:"key_id"` } - - type PackageUpdate struct { Name string `json:"name"` CurrentVersion string `json:"current_version,omitempty"` @@ -99,8 +95,6 @@ type ReportUpdatesRequest struct { type ReportUpdatesResponse struct{} - - type CPUReport struct { Model string `json:"model,omitempty"` Cores int `json:"cores,omitempty"` @@ -119,20 +113,19 @@ type PartitionReport struct { UsedBytes uint64 `json:"used_bytes"` } type InventoryReport struct { - ServerId string `json:"server_id"` - AgentToken string `json:"agent_token"` - IncludeStatic bool `json:"include_static"` - CPU *CPUReport `json:"cpu,omitempty"` - Memory *MemReport `json:"memory,omitempty"` - SwapTotal uint64 `json:"swap_total"` - SwapUsed uint64 `json:"swap_used"` - Partitions []PartitionReport `json:"partitions,omitempty"` - Kernel string `json:"kernel,omitempty"` + ServerId string `json:"server_id"` + AgentToken string `json:"agent_token"` + IncludeStatic bool `json:"include_static"` + CPU *CPUReport `json:"cpu,omitempty"` + Memory *MemReport `json:"memory,omitempty"` + SwapTotal uint64 `json:"swap_total"` + SwapUsed uint64 `json:"swap_used"` + Partitions []PartitionReport `json:"partitions,omitempty"` + Kernel string `json:"kernel,omitempty"` + RebootRequired bool `json:"reboot_required,omitempty"` } type InventoryReportResponse struct{} - - type MonitorSpec struct { MonitorId string `json:"monitor_id"` Type string `json:"type"` @@ -217,8 +210,6 @@ type ServerCommand struct { // keepalive is not sufficient on its own. type PingCmd struct{} - - type CleanupWorkspaceCmd struct { WorkspaceId string `json:"workspace_id"` } @@ -241,12 +232,12 @@ type GenerateKeyCmd struct { } type AgentMessage struct { - ServerId string `json:"server_id"` - AgentToken string `json:"agent_token"` - Ready *AgentReady `json:"ready,omitempty"` - Result *CommandResult `json:"result,omitempty"` - StepResult *StepResult `json:"step_result,omitempty"` - StepOutput *StepOutputChunk `json:"step_output,omitempty"` + ServerId string `json:"server_id"` + AgentToken string `json:"agent_token"` + Ready *AgentReady `json:"ready,omitempty"` + Result *CommandResult `json:"result,omitempty"` + StepResult *StepResult `json:"step_result,omitempty"` + StepOutput *StepOutputChunk `json:"step_output,omitempty"` WorkloadLogsResult *WorkloadLogsResult `json:"workload_logs_result,omitempty"` } @@ -264,8 +255,7 @@ type RunStepCmd struct { Script string `json:"script"` Env map[string]string `json:"env,omitempty"` TimeoutSeconds int `json:"timeout_seconds,omitempty"` - - + WorkspaceId string `json:"workspace_id,omitempty"` } @@ -284,8 +274,6 @@ type StepOutputChunk struct { Eof bool `json:"eof,omitempty"` } - - type Vantage_CommandStreamClient interface { Send(*AgentMessage) error Recv() (*ServerCommand, error) @@ -308,8 +296,6 @@ func (c *vantageCommandStreamClient) Recv() (*ServerCommand, error) { return m, nil } - - type Vantage_CommandStreamServer interface { Send(*ServerCommand) error Recv() (*AgentMessage, error) diff --git a/internal/sync/sync.go b/internal/sync/sync.go index 0fa6bd0..14c7cd7 100644 --- a/internal/sync/sync.go +++ b/internal/sync/sync.go @@ -450,6 +450,16 @@ func runInventory(ctx context.Context, cfg *config.Config) { r := inventory.Collect(static) r.ServerId = cfg.ServerID r.AgentToken = cfg.AgentToken + // Static snapshots only — every 15 minutes, not every 30 seconds. On + // Windows this spawns a PowerShell process, which is not something to + // do twice a minute forever, and a host rebooted by hand clearing the + // flag within a quarter of an hour is soon enough. + // + // Computed here rather than inside inventory.Collect so the inventory + // package gains no dependency on updates. + if static { + r.RebootRequired = updates.RebootRequired() + } if err := client.ReportInventory(r); err != nil { log.Printf("report inventory: %v", err) }