Skip to content

Commit d3e573d

Browse files
authored
feat: enables container filter to be configured at multiple places (#3455)
2 parents a62cef7 + 9f2d172 commit d3e573d

30 files changed

+508
-401
lines changed

internal/agent/client.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -303,8 +303,17 @@ func (c *Client) FindContainer(ctx context.Context, containerID string) (docker.
303303
}, nil
304304
}
305305

306-
func (c *Client) ListContainers(ctx context.Context) ([]docker.Container, error) {
307-
response, err := c.client.ListContainers(ctx, &pb.ListContainersRequest{})
306+
func (c *Client) ListContainers(ctx context.Context, filter docker.ContainerFilter) ([]docker.Container, error) {
307+
in := &pb.ListContainersRequest{}
308+
309+
if filter != nil {
310+
in.Filter = make(map[string]*pb.RepeatedString)
311+
for k, v := range filter {
312+
in.Filter[k] = &pb.RepeatedString{Values: v}
313+
}
314+
}
315+
316+
response, err := c.client.ListContainers(ctx, in)
308317
if err != nil {
309318
return nil, err
310319
}

internal/agent/client_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ func (m *MockedClient) ContainerEvents(ctx context.Context, events chan<- docker
4646
return args.Error(0)
4747
}
4848

49-
func (m *MockedClient) ListContainers(ctx context.Context) ([]docker.Container, error) {
50-
args := m.Called(ctx)
49+
func (m *MockedClient) ListContainers(ctx context.Context, filter docker.ContainerFilter) ([]docker.Container, error) {
50+
args := m.Called(ctx, filter)
5151
return args.Get(0).([]docker.Container), args.Error(1)
5252
}
5353

@@ -92,7 +92,7 @@ func init() {
9292
}
9393

9494
client = &MockedClient{}
95-
client.On("ListContainers", mock.Anything).Return([]docker.Container{
95+
client.On("ListContainers", mock.Anything, mock.Anything).Return([]docker.Container{
9696
{
9797
ID: "123456",
9898
Name: "test",
@@ -127,7 +127,7 @@ func init() {
127127
Stats: utils.NewRingBuffer[docker.ContainerStat](300),
128128
}, nil)
129129

130-
server, _ := NewServer(client, certs, "test")
130+
server, _ := NewServer(client, certs, "test", docker.ContainerFilter{})
131131

132132
go server.Serve(lis)
133133
}
@@ -167,7 +167,7 @@ func TestListContainers(t *testing.T) {
167167
t.Fatal(err)
168168
}
169169

170-
containers, _ := rpc.ListContainers(context.Background())
170+
containers, _ := rpc.ListContainers(context.Background(), docker.ContainerFilter{})
171171

172172
assert.Equal(t, containers, []docker.Container{
173173
{

0 commit comments

Comments
 (0)