From acc5172ae6b32b34faa35b64a277b121075a3e7f Mon Sep 17 00:00:00 2001 From: Christopher LaPointe Date: Sat, 3 Jun 2023 14:48:22 -0400 Subject: [PATCH] Abstract to host --- pkg/containers/discovery.go | 5 ++--- pkg/containers/intf.go | 19 +++++++++++++++++++ pkg/service/service.go | 2 +- 3 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 pkg/containers/intf.go diff --git a/pkg/containers/discovery.go b/pkg/containers/discovery.go index 5158b8c..cee1215 100644 --- a/pkg/containers/discovery.go +++ b/pkg/containers/discovery.go @@ -7,14 +7,13 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/filters" - "github.com/docker/docker/client" ) type Discovery struct { - client *client.Client + client Host } -func NewDiscovery(client *client.Client) *Discovery { +func NewDiscovery(client Host) *Discovery { return &Discovery{client} } diff --git a/pkg/containers/intf.go b/pkg/containers/intf.go new file mode 100644 index 0000000..5a6846a --- /dev/null +++ b/pkg/containers/intf.go @@ -0,0 +1,19 @@ +package containers + +import ( + "context" + + "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" +) + +type Host interface { + ContainerList(ctx context.Context, clo types.ContainerListOptions) ([]types.Container, error) + + ContainerStart(ctx context.Context, id string, opt types.ContainerStartOptions) error + ContainerStop(ctx context.Context, id string, opt container.StopOptions) error + + ContainerStatsOneShot(ctx context.Context, id string) (types.ContainerStats, error) + + Close() error +} diff --git a/pkg/service/service.go b/pkg/service/service.go index b9ea6ab..6a94f17 100644 --- a/pkg/service/service.go +++ b/pkg/service/service.go @@ -20,7 +20,7 @@ type Core struct { mux sync.Mutex term chan bool - client *client.Client + client containers.Host discovery *containers.Discovery active map[string]*ContainerState // cid -> state