| 30 | } |
| 31 | |
| 32 | func NewDockerClient(endpoint string, tlsVerify bool, tlsCert, tlsCaCert, tlsKey string) (*docker.Client, error) { |
| 33 | if strings.HasPrefix(endpoint, "unix:") { |
| 34 | return docker.NewClient(endpoint) |
| 35 | } else if tlsVerify || tlsEnabled(tlsCert, tlsCaCert, tlsKey) { |
| 36 | if tlsVerify { |
| 37 | if e, err := utils.PathExists(tlsCaCert); !e || err != nil { |
| 38 | return nil, errors.New("TLS verification was requested, but CA cert does not exist") |
| 39 | } |
| 40 | } |
| 41 | |
| 42 | return docker.NewTLSClient(endpoint, tlsCert, tlsKey, tlsCaCert) |
| 43 | } |
| 44 | return docker.NewClient(endpoint) |
| 45 | } |
| 46 | |
| 47 | func tlsEnabled(tlsCert, tlsCaCert, tlsKey string) bool { |
| 48 | for _, v := range []string{tlsCert, tlsCaCert, tlsKey} { |