2015-02-09 04:38:37 +00:00
|
|
|
package docker
|
|
|
|
|
|
|
|
import (
|
2016-05-24 00:21:28 +00:00
|
|
|
dockerClient "github.com/docker/engine-api/client"
|
2015-10-12 11:50:17 +00:00
|
|
|
"github.com/rancher/os/config"
|
2016-05-24 00:21:28 +00:00
|
|
|
"golang.org/x/net/context"
|
2015-02-09 04:38:37 +00:00
|
|
|
)
|
|
|
|
|
2016-05-24 00:21:28 +00:00
|
|
|
func NewSystemClient() (dockerClient.APIClient, error) {
|
2016-11-28 08:06:00 +00:00
|
|
|
return NewClient(config.SystemDockerHost)
|
2015-02-17 08:18:48 +00:00
|
|
|
}
|
|
|
|
|
2016-05-24 00:21:28 +00:00
|
|
|
func NewDefaultClient() (dockerClient.APIClient, error) {
|
2016-11-28 08:06:00 +00:00
|
|
|
return NewClient(config.DockerHost)
|
2015-02-17 08:18:48 +00:00
|
|
|
}
|
|
|
|
|
2016-05-24 00:21:28 +00:00
|
|
|
func NewClient(endpoint string) (dockerClient.APIClient, error) {
|
|
|
|
client, err := dockerClient.NewClient(endpoint, "", nil, nil)
|
2015-02-09 04:38:37 +00:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2015-08-04 21:45:38 +00:00
|
|
|
err = ClientOK(endpoint, func() bool {
|
2016-05-24 00:21:28 +00:00
|
|
|
_, err := client.Info(context.Background())
|
2015-08-04 21:45:38 +00:00
|
|
|
return err == nil
|
|
|
|
})
|
2015-02-09 04:38:37 +00:00
|
|
|
|
2015-08-04 21:45:38 +00:00
|
|
|
return client, err
|
2015-02-09 04:38:37 +00:00
|
|
|
}
|