diff --git a/pkg/cloudproxy/agent/ssh/client.go b/pkg/cloudproxy/agent/ssh/client.go index 0e337a80f7..a4af8c651d 100644 --- a/pkg/cloudproxy/agent/ssh/client.go +++ b/pkg/cloudproxy/agent/ssh/client.go @@ -150,6 +150,7 @@ func (c *Client) Start(ctx context.Context) { sshClientC := make(chan *ssh.Client) var sshClient *ssh.Client go c.runClientState(ctx, sshClientC) + for { select { case sshClient = <-sshClientC: diff --git a/pkg/cloudproxy/agent/worker/worker.go b/pkg/cloudproxy/agent/worker/worker.go index 9ef20731a1..ea663f6d16 100644 --- a/pkg/cloudproxy/agent/worker/worker.go +++ b/pkg/cloudproxy/agent/worker/worker.go @@ -180,14 +180,24 @@ func (w *Worker) Start(ctx context.Context) { } go w.apih.Start(ctx) - var mss *agentmodels.ModelSets + const tickDur = 11 * time.Second + var ( + mss *agentmodels.ModelSets + tick = time.NewTicker(tickDur) + ) for { select { case imss := <-w.apih.ModelSets(): log.Infof("agent: got new data from api helper") mss = imss.(*agentmodels.ModelSets) if err := w.run(ctx, mss); err != nil { - log.Errorf("agent: %v", err) + log.Errorf("agent run: %v", err) + } + case <-tick.C: + if mss != nil { + if err := w.run(ctx, mss); err != nil { + log.Errorf("agent refresh run: %v", err) + } } case <-ctx.Done(): return