From 59bfc81d49a905480329a38c0d8d0109ea100d3e Mon Sep 17 00:00:00 2001 From: NiniOak Date: Mon, 14 Aug 2023 16:11:43 -0700 Subject: [PATCH] Stop log producer before restarting container --- .../consul-container/libs/service/connect.go | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/test/integration/consul-container/libs/service/connect.go b/test/integration/consul-container/libs/service/connect.go index 36df4e09f769..ae8792256f68 100644 --- a/test/integration/consul-container/libs/service/connect.go +++ b/test/integration/consul-container/libs/service/connect.go @@ -68,14 +68,17 @@ func (g ConnectContainer) GetPort(port int) (int, error) { } func (g ConnectContainer) Restart() error { - _, err := g.GetStatus() - if err != nil { - return fmt.Errorf("error fetching sidecar container state %s", err) + var deferClean utils.ResettableDefer + defer deferClean.Execute() + + if utils.FollowLog { + if err := g.container.StopLogProducer(); err != nil { + return fmt.Errorf("stopping log producer: %w", err) + } } fmt.Printf("Stopping container: %s\n", g.GetName()) - err = g.container.Stop(g.ctx, nil) - + err := g.container.Stop(g.ctx, nil) if err != nil { return fmt.Errorf("error stopping sidecar container %s", err) } @@ -85,6 +88,17 @@ func (g ConnectContainer) Restart() error { if err != nil { return fmt.Errorf("error starting sidecar container %s", err) } + + if utils.FollowLog { + if err := g.container.StartLogProducer(g.ctx); err != nil { + return fmt.Errorf("starting log producer: %w", err) + } + g.container.FollowOutput(&LogConsumer{}) + deferClean.Add(func() { + _ = g.container.StopLogProducer() + }) + } + return nil }