go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/discovery/docker_engine/client_test.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package docker_engine_test 5 6 import ( 7 "os" 8 "strings" 9 "testing" 10 11 "github.com/docker/docker/client" 12 "github.com/stretchr/testify/assert" 13 "go.mondoo.com/cnquery/providers/os/resources/discovery/docker_engine" 14 ) 15 16 func resetEnv(env []string) { 17 } 18 19 func TestDockerEnvParsing(t *testing.T) { 20 // reset env from https://golang.org/src/os/env_test.go 21 defer func(origEnv []string) { 22 for _, pair := range origEnv { 23 i := strings.Index(pair[1:], "=") + 1 24 if err := os.Setenv(pair[:i], pair[i+1:]); err != nil { 25 t.Errorf("Setenv(%q, %q) failed during reset: %v", pair[:i], pair[i+1:], err) 26 } 27 } 28 }(os.Environ()) 29 30 cli, err := client.NewClientWithOpts(docker_engine.FromDockerEnv) 31 assert.Nil(t, err) 32 assert.Equal(t, "unix:///var/run/docker.sock", cli.DaemonHost()) 33 34 os.Setenv("DOCKER_HOST", "tcp://0.0.0.0:2375") 35 cli, err = client.NewClientWithOpts(docker_engine.FromDockerEnv) 36 assert.Nil(t, err) 37 assert.Equal(t, "tcp://0.0.0.0:2375", cli.DaemonHost()) 38 39 os.Setenv("DOCKER_HOST", "unix:///var/run/docker.sock") 40 cli, err = client.NewClientWithOpts(docker_engine.FromDockerEnv) 41 assert.Nil(t, err) 42 assert.Equal(t, "unix:///var/run/docker.sock", cli.DaemonHost()) 43 44 os.Setenv("DOCKER_HOST", "192.186.1.1") 45 cli, err = client.NewClientWithOpts(docker_engine.FromDockerEnv) 46 assert.Nil(t, err) 47 assert.Equal(t, "tcp://192.186.1.1:2375", cli.DaemonHost()) 48 49 os.Setenv("DOCKER_HOST", "http://192.186.1.1") 50 _, err = client.NewClientWithOpts(docker_engine.FromDockerEnv) 51 assert.NotNil(t, err) 52 53 os.Setenv("DOCKER_HOST", "tcp://192.186.1.1") 54 cli, err = client.NewClientWithOpts(docker_engine.FromDockerEnv) 55 assert.Nil(t, err) 56 assert.Equal(t, "tcp://192.186.1.1:2375", cli.DaemonHost()) 57 58 os.Setenv("DOCKER_HOST", "tcp://192.168.59.103:2377") 59 cli, err = client.NewClientWithOpts(docker_engine.FromDockerEnv) 60 assert.Nil(t, err) 61 assert.Equal(t, "tcp://192.168.59.103:2377", cli.DaemonHost()) 62 }