Fix design-vs-implementation gaps found in verification
Critical fixes: - Wire monitor subsystem to agent startup (was dead code) - Implement NodeStatus RPC (disk, memory, CPU, runtime version, uptime) - Deploy respects active=false (sets desired_state=stopped, not always running) Medium fixes: - Add Started field to runtime.ContainerInfo, populate from podman inspect - Populate ComponentInfo.started in status handlers for uptime display - Add Monitor field to Agent struct for graceful shutdown Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -37,8 +37,9 @@ func (a *Agent) Deploy(ctx context.Context, req *mcpv1.DeployRequest) (*mcpv1.De
|
||||
}
|
||||
|
||||
var results []*mcpv1.ComponentResult
|
||||
active := spec.GetActive()
|
||||
for _, cs := range components {
|
||||
result := a.deployComponent(ctx, serviceName, cs)
|
||||
result := a.deployComponent(ctx, serviceName, cs, active)
|
||||
results = append(results, result)
|
||||
}
|
||||
|
||||
@@ -46,11 +47,16 @@ func (a *Agent) Deploy(ctx context.Context, req *mcpv1.DeployRequest) (*mcpv1.De
|
||||
}
|
||||
|
||||
// deployComponent handles the full deploy lifecycle for a single component.
|
||||
func (a *Agent) deployComponent(ctx context.Context, serviceName string, cs *mcpv1.ComponentSpec) *mcpv1.ComponentResult {
|
||||
func (a *Agent) deployComponent(ctx context.Context, serviceName string, cs *mcpv1.ComponentSpec, active bool) *mcpv1.ComponentResult {
|
||||
compName := cs.GetName()
|
||||
containerName := serviceName + "-" + compName
|
||||
|
||||
a.Logger.Info("deploying component", "service", serviceName, "component", compName)
|
||||
desiredState := "running"
|
||||
if !active {
|
||||
desiredState = "stopped"
|
||||
}
|
||||
|
||||
a.Logger.Info("deploying component", "service", serviceName, "component", compName, "desired", desiredState)
|
||||
|
||||
regComp := ®istry.Component{
|
||||
Name: compName,
|
||||
@@ -59,7 +65,7 @@ func (a *Agent) deployComponent(ctx context.Context, serviceName string, cs *mcp
|
||||
Network: cs.GetNetwork(),
|
||||
UserSpec: cs.GetUser(),
|
||||
Restart: cs.GetRestart(),
|
||||
DesiredState: "running",
|
||||
DesiredState: desiredState,
|
||||
Version: runtime.ExtractVersion(cs.GetImage()),
|
||||
Ports: cs.GetPorts(),
|
||||
Volumes: cs.GetVolumes(),
|
||||
|
||||
Reference in New Issue
Block a user