Tests no longer make the assumption that the daemon can be accessed
through unix:///var/run/docker.sock.
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
| ... | ... |
@@ -11,6 +11,7 @@ import ( |
| 11 | 11 |
"net/http" |
| 12 | 12 |
"net/http/httptest" |
| 13 | 13 |
"net/http/httputil" |
| 14 |
+ "net/url" |
|
| 14 | 15 |
"os" |
| 15 | 16 |
"os/exec" |
| 16 | 17 |
"path" |
| ... | ... |
@@ -264,12 +265,32 @@ func (d *Daemon) Cmd(name string, arg ...string) (string, error) {
|
| 264 | 264 |
return string(b), err |
| 265 | 265 |
} |
| 266 | 266 |
|
| 267 |
+func daemonHost() string {
|
|
| 268 |
+ daemonUrlStr := "unix:///var/run/docker.sock" |
|
| 269 |
+ if daemonHostVar := os.Getenv("DOCKER_TEST_HOST"); daemonHostVar != "" {
|
|
| 270 |
+ daemonUrlStr = daemonHostVar |
|
| 271 |
+ } |
|
| 272 |
+ return daemonUrlStr |
|
| 273 |
+} |
|
| 274 |
+ |
|
| 267 | 275 |
func sockRequest(method, endpoint string, data interface{}) ([]byte, error) {
|
| 268 |
- // FIX: the path to sock should not be hardcoded |
|
| 269 |
- sock := filepath.Join("/", "var", "run", "docker.sock")
|
|
| 270 |
- c, err := net.DialTimeout("unix", sock, time.Duration(10*time.Second))
|
|
| 276 |
+ daemon := daemonHost() |
|
| 277 |
+ daemonUrl, err := url.Parse(daemon) |
|
| 278 |
+ if err != nil {
|
|
| 279 |
+ return nil, fmt.Errorf("could not parse url %q: %v", daemon, err)
|
|
| 280 |
+ } |
|
| 281 |
+ |
|
| 282 |
+ var c net.Conn |
|
| 283 |
+ switch daemonUrl.Scheme {
|
|
| 284 |
+ case "unix": |
|
| 285 |
+ c, err = net.DialTimeout(daemonUrl.Scheme, daemonUrl.Path, time.Duration(10*time.Second)) |
|
| 286 |
+ case "tcp": |
|
| 287 |
+ c, err = net.DialTimeout(daemonUrl.Scheme, daemonUrl.Host, time.Duration(10*time.Second)) |
|
| 288 |
+ default: |
|
| 289 |
+ err = fmt.Errorf("unknown scheme %v", daemonUrl.Scheme)
|
|
| 290 |
+ } |
|
| 271 | 291 |
if err != nil {
|
| 272 |
- return nil, fmt.Errorf("could not dial docker sock at %s: %v", sock, err)
|
|
| 292 |
+ return nil, fmt.Errorf("could not dial docker daemon at %s: %v", daemon, err)
|
|
| 273 | 293 |
} |
| 274 | 294 |
|
| 275 | 295 |
client := httputil.NewClientConn(c, nil) |