Skip to content

Commit

Permalink
drivers/docker: refactor use of clients in docker driver
Browse files Browse the repository at this point in the history
This PR refactors how we manage the two underlying clients used by the
docker driver for communicating with the docker daemon. We keep two clients
- one with a hard-coded timeout that applies to all operations no matter
what, intended for use with short lived / async calls to docker. The other
has no timeout and is the responsibility of the caller to set a context
that will ensure the call eventually terminates.

The use of these two clients has been confusing and mistakes were made
in a number of places where calls were making use of the wrong client.

This PR makes it so that a user must explicitly call a function to get
the client that makes sense for that use case.

Fixes #17023
  • Loading branch information
shoenig committed Jun 26, 2023
1 parent ed51605 commit 185a374
Show file tree
Hide file tree
Showing 8 changed files with 183 additions and 124 deletions.
2 changes: 1 addition & 1 deletion drivers/docker/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -765,7 +765,7 @@ func (d *Driver) SetConfig(c *base.Config) error {
d.clientConfig = c.AgentConfig.Driver
}

dockerClient, _, err := d.dockerClients()
dockerClient, err := d.getDockerClient()
if err != nil {
return fmt.Errorf("failed to get docker client: %v", err)
}
Expand Down
Loading

0 comments on commit 185a374

Please sign in to comment.