mirror of
https://github.com/amir20/dozzle.git
synced 2026-01-03 11:35:00 +01:00
perf: introduces a timeout when fetching host info (#3276)
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package cli
|
||||
|
||||
import (
|
||||
"context"
|
||||
"embed"
|
||||
|
||||
"github.com/amir20/dozzle/internal/docker"
|
||||
@@ -22,7 +23,9 @@ func CreateMultiHostService(embeddedCerts embed.FS, args Args) (docker.Client, *
|
||||
|
||||
log.Info().Interface("host", host).Msg("Adding remote host")
|
||||
if client, err := docker.NewRemoteClient(args.Filter, host); err == nil {
|
||||
if _, err := client.ListContainers(); err == nil {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), args.Timeout)
|
||||
defer cancel()
|
||||
if _, err := client.ListContainers(ctx); err == nil {
|
||||
clients = append(clients, docker_support.NewDockerClientService(client))
|
||||
} else {
|
||||
log.Warn().Err(err).Interface("host", host).Msg("Could not connect to remote host")
|
||||
@@ -34,7 +37,9 @@ func CreateMultiHostService(embeddedCerts embed.FS, args Args) (docker.Client, *
|
||||
|
||||
localClient, err := docker.NewLocalClient(args.Filter, args.Hostname)
|
||||
if err == nil {
|
||||
_, err := localClient.ListContainers()
|
||||
ctx, cancel := context.WithTimeout(context.Background(), args.Timeout)
|
||||
defer cancel()
|
||||
_, err := localClient.ListContainers(ctx)
|
||||
if err != nil {
|
||||
log.Debug().Err(err).Msg("Could not connect to local Docker Engine")
|
||||
} else {
|
||||
@@ -48,6 +53,6 @@ func CreateMultiHostService(embeddedCerts embed.FS, args Args) (docker.Client, *
|
||||
log.Fatal().Err(err).Msg("Could not read certificates")
|
||||
}
|
||||
|
||||
clientManager := docker_support.NewRetriableClientManager(args.RemoteAgent, certs, clients...)
|
||||
return localClient, docker_support.NewMultiHostService(clientManager)
|
||||
clientManager := docker_support.NewRetriableClientManager(args.RemoteAgent, args.Timeout, certs, clients...)
|
||||
return localClient, docker_support.NewMultiHostService(clientManager, args.Timeout)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user