From c5771fa9a449fb820cc4d7d9ccbb41d626c8809c Mon Sep 17 00:00:00 2001 From: Amir Raminfar Date: Thu, 11 Jul 2024 12:09:49 -0700 Subject: [PATCH] feat: tries to use swarm node id if exists then machine-id (#3097) --- examples/docker.swarm.yml | 2 +- internal/docker/client.go | 20 ++++++++++++------- internal/support/docker/multi_host_service.go | 2 +- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/examples/docker.swarm.yml b/examples/docker.swarm.yml index 9d1e75ce..96907905 100644 --- a/examples/docker.swarm.yml +++ b/examples/docker.swarm.yml @@ -1,6 +1,6 @@ services: dozzle: - image: amir20/dozzle:agent + image: amir20/dozzle:pr-3097 environment: - DOZZLE_LEVEL=debug - DOZZLE_MODE=swarm diff --git a/internal/docker/client.go b/internal/docker/client.go index cbd23599..d5fb0443 100644 --- a/internal/docker/client.go +++ b/internal/docker/client.go @@ -87,18 +87,19 @@ func NewClient(cli DockerCLI, filters filters.Args, host Host) Client { filters: filters, host: host, } + var err error + client.info, err = cli.Info(context.Background()) + if err != nil { + log.Errorf("unable to get docker info: %v", err) + } if host.MemTotal == 0 || host.NCPU == 0 { - var err error - client.info, err = cli.Info(context.Background()) - if err != nil { - log.Errorf("unable to get docker info: %v", err) - } - host.NCPU = client.info.NCPU host.MemTotal = client.info.MemTotal } + log.Debugf("Creating a client with host: %+v", host) + return client } @@ -124,8 +125,13 @@ func NewLocalClient(f map[string][]string, hostname string) (Client, error) { return nil, err } + id := info.ID + if info.Swarm.NodeID != "" { + id = info.Swarm.NodeID + } + host := Host{ - ID: info.ID, + ID: id, Name: info.Name, MemTotal: info.MemTotal, NCPU: info.NCPU, diff --git a/internal/support/docker/multi_host_service.go b/internal/support/docker/multi_host_service.go index 2cc703ef..2b08686c 100644 --- a/internal/support/docker/multi_host_service.go +++ b/internal/support/docker/multi_host_service.go @@ -114,7 +114,7 @@ func NewSwarmService(localClient docker.Client, certificates tls.Certificate) *M } func closeAgent(agent *agent.Client) { - log.Debugf("closing agent %s", agent.Host().ID) + log.Tracef("closing agent %s", agent.Host()) if err := agent.Close(); err != nil { log.Warnf("error closing agent: %v", err) }