From 864af3c24d87cedf66cc5bd76ed1a3f355e5e129 Mon Sep 17 00:00:00 2001 From: Amir Raminfar Date: Fri, 13 Dec 2024 14:14:51 -0800 Subject: [PATCH] fixes nil pointer --- internal/agent/client.go | 1 + internal/support/docker/agent_service.go | 3 +++ internal/web/events.go | 3 +-- internal/web/routes.go | 2 ++ main.go | 1 + 5 files changed, 8 insertions(+), 2 deletions(-) diff --git a/internal/agent/client.go b/internal/agent/client.go index d509f8fb..0d1d94fa 100644 --- a/internal/agent/client.go +++ b/internal/agent/client.go @@ -307,6 +307,7 @@ func (c *Client) ListContainers(ctx context.Context, filter docker.ContainerFilt in := &pb.ListContainersRequest{} if filter != nil { + in.Filter = make(map[string]*pb.RepeatedString) for k, v := range filter { in.Filter[k] = &pb.RepeatedString{Values: v} } diff --git a/internal/support/docker/agent_service.go b/internal/support/docker/agent_service.go index 51016db9..27e21f62 100644 --- a/internal/support/docker/agent_service.go +++ b/internal/support/docker/agent_service.go @@ -3,10 +3,12 @@ package docker_support import ( "context" "io" + "time" "github.com/amir20/dozzle/internal/agent" "github.com/amir20/dozzle/internal/docker" + "github.com/rs/zerolog/log" ) type agentService struct { @@ -37,6 +39,7 @@ func (a *agentService) StreamLogs(ctx context.Context, container docker.Containe } func (a *agentService) ListContainers(ctx context.Context, filter docker.ContainerFilter) ([]docker.Container, error) { + log.Debug().Interface("filter", filter).Msg("Listing containers from agent") return a.client.ListContainers(ctx, filter) } diff --git a/internal/web/events.go b/internal/web/events.go index 9c8689fd..77377cc9 100644 --- a/internal/web/events.go +++ b/internal/web/events.go @@ -25,8 +25,7 @@ func (h *handler) streamEvents(w http.ResponseWriter, r *http.Request) { h.multiHostService.SubscribeEventsAndStats(r.Context(), events, stats) h.multiHostService.SubscribeAvailableHosts(r.Context(), availableHosts) - // TODO - No user data so just fetch all containers - allContainers, errors := h.multiHostService.ListAllContainers(docker.ContainerFilter{}) + allContainers, errors := h.multiHostService.ListAllContainers(h.config.Filter) for _, err := range errors { log.Warn().Err(err).Msg("error listing containers") diff --git a/internal/web/routes.go b/internal/web/routes.go index 36451b54..47274ffc 100644 --- a/internal/web/routes.go +++ b/internal/web/routes.go @@ -8,6 +8,7 @@ import ( "strings" "github.com/amir20/dozzle/internal/auth" + "github.com/amir20/dozzle/internal/docker" docker_support "github.com/amir20/dozzle/internal/support/docker" "github.com/go-chi/chi/v5" @@ -33,6 +34,7 @@ type Config struct { Dev bool Authorization Authorization EnableActions bool + Filter docker.ContainerFilter } type Authorization struct { diff --git a/main.go b/main.go index b20c3f24..c9ced77c 100644 --- a/main.go +++ b/main.go @@ -284,6 +284,7 @@ func createServer(args cli.Args, multiHostService *docker_support.MultiHostServi TTL: authTTL, }, EnableActions: args.EnableActions, + Filter: args.Filter, } assets, err := fs.Sub(content, "dist")