mirror of https://github.com/docker/cli.git
Add "host-gateway" to tests for extra_hosts / --add-host
67ebcd6dcf
added an exception for
the "host-gateway" magic value to the validation rules, but didn't
add thise value to any of the tests.
This patch adds the magic value to tests, to verify the validation
is skipped for this magic value.
Note that validation on the client side is "optional" and mostly
done to provide a more user-friendly error message for regular
values (IP-addresses).
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
42f5b8a3e1
commit
f88ae74135
|
@ -358,15 +358,19 @@ func TestUpdateHosts(t *testing.T) {
|
||||||
flags := newUpdateCommand(nil).Flags()
|
flags := newUpdateCommand(nil).Flags()
|
||||||
flags.Set("host-add", "example.net:2.2.2.2")
|
flags.Set("host-add", "example.net:2.2.2.2")
|
||||||
flags.Set("host-add", "ipv6.net:2001:db8:abc8::1")
|
flags.Set("host-add", "ipv6.net:2001:db8:abc8::1")
|
||||||
|
// adding the special "host-gateway" target should work
|
||||||
|
flags.Set("host-add", "host.docker.internal:host-gateway")
|
||||||
// remove with ipv6 should work
|
// remove with ipv6 should work
|
||||||
flags.Set("host-rm", "example.net:2001:db8:abc8::1")
|
flags.Set("host-rm", "example.net:2001:db8:abc8::1")
|
||||||
// just hostname should work as well
|
// just hostname should work as well
|
||||||
flags.Set("host-rm", "example.net")
|
flags.Set("host-rm", "example.net")
|
||||||
|
// removing the special "host-gateway" target should work
|
||||||
|
flags.Set("host-rm", "gateway.docker.internal:host-gateway")
|
||||||
// bad format error
|
// bad format error
|
||||||
assert.ErrorContains(t, flags.Set("host-add", "$example.com$"), `bad format for add-host: "$example.com$"`)
|
assert.ErrorContains(t, flags.Set("host-add", "$example.com$"), `bad format for add-host: "$example.com$"`)
|
||||||
|
|
||||||
hosts := []string{"1.2.3.4 example.com", "4.3.2.1 example.org", "2001:db8:abc8::1 example.net"}
|
hosts := []string{"1.2.3.4 example.com", "4.3.2.1 example.org", "2001:db8:abc8::1 example.net", "gateway.docker.internal:host-gateway"}
|
||||||
expected := []string{"1.2.3.4 example.com", "4.3.2.1 example.org", "2.2.2.2 example.net", "2001:db8:abc8::1 ipv6.net"}
|
expected := []string{"1.2.3.4 example.com", "4.3.2.1 example.org", "2.2.2.2 example.net", "2001:db8:abc8::1 ipv6.net", "host-gateway host.docker.internal"}
|
||||||
|
|
||||||
err := updateHosts(flags, &hosts)
|
err := updateHosts(flags, &hosts)
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
|
|
@ -140,9 +140,11 @@ services:
|
||||||
# extra_hosts:
|
# extra_hosts:
|
||||||
# somehost: "162.242.195.82"
|
# somehost: "162.242.195.82"
|
||||||
# otherhost: "50.31.209.229"
|
# otherhost: "50.31.209.229"
|
||||||
|
# host.docker.internal: "host-gateway"
|
||||||
extra_hosts:
|
extra_hosts:
|
||||||
- "somehost:162.242.195.82"
|
- "somehost:162.242.195.82"
|
||||||
- "otherhost:50.31.209.229"
|
- "otherhost:50.31.209.229"
|
||||||
|
- "host.docker.internal:host-gateway"
|
||||||
|
|
||||||
hostname: foo
|
hostname: foo
|
||||||
|
|
||||||
|
|
|
@ -144,6 +144,7 @@ func services(workingDir, homeDir string) []types.ServiceConfig {
|
||||||
ExtraHosts: []string{
|
ExtraHosts: []string{
|
||||||
"somehost:162.242.195.82",
|
"somehost:162.242.195.82",
|
||||||
"otherhost:50.31.209.229",
|
"otherhost:50.31.209.229",
|
||||||
|
"host.docker.internal:host-gateway",
|
||||||
},
|
},
|
||||||
Extras: map[string]interface{}{
|
Extras: map[string]interface{}{
|
||||||
"x-bar": "baz",
|
"x-bar": "baz",
|
||||||
|
@ -626,6 +627,7 @@ services:
|
||||||
extra_hosts:
|
extra_hosts:
|
||||||
- somehost:162.242.195.82
|
- somehost:162.242.195.82
|
||||||
- otherhost:50.31.209.229
|
- otherhost:50.31.209.229
|
||||||
|
- host.docker.internal:host-gateway
|
||||||
hostname: foo
|
hostname: foo
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test:
|
test:
|
||||||
|
@ -1135,7 +1137,8 @@ func fullExampleJSON(workingDir string) string {
|
||||||
],
|
],
|
||||||
"extra_hosts": [
|
"extra_hosts": [
|
||||||
"somehost:162.242.195.82",
|
"somehost:162.242.195.82",
|
||||||
"otherhost:50.31.209.229"
|
"otherhost:50.31.209.229",
|
||||||
|
"host.docker.internal:host-gateway"
|
||||||
],
|
],
|
||||||
"hostname": "foo",
|
"hostname": "foo",
|
||||||
"healthcheck": {
|
"healthcheck": {
|
||||||
|
|
|
@ -1276,11 +1276,13 @@ services:
|
||||||
extra_hosts:
|
extra_hosts:
|
||||||
"zulu": "162.242.195.82"
|
"zulu": "162.242.195.82"
|
||||||
"alpha": "50.31.209.229"
|
"alpha": "50.31.209.229"
|
||||||
|
"host.docker.internal": "host-gateway"
|
||||||
`)
|
`)
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
|
||||||
expected := types.HostsList{
|
expected := types.HostsList{
|
||||||
"alpha:50.31.209.229",
|
"alpha:50.31.209.229",
|
||||||
|
"host.docker.internal:host-gateway",
|
||||||
"zulu:162.242.195.82",
|
"zulu:162.242.195.82",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1298,6 +1300,7 @@ services:
|
||||||
- "zulu:162.242.195.82"
|
- "zulu:162.242.195.82"
|
||||||
- "alpha:50.31.209.229"
|
- "alpha:50.31.209.229"
|
||||||
- "zulu:ff02::1"
|
- "zulu:ff02::1"
|
||||||
|
- "host.docker.internal:host-gateway"
|
||||||
`)
|
`)
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
|
||||||
|
@ -1305,6 +1308,7 @@ services:
|
||||||
"zulu:162.242.195.82",
|
"zulu:162.242.195.82",
|
||||||
"alpha:50.31.209.229",
|
"alpha:50.31.209.229",
|
||||||
"zulu:ff02::1",
|
"zulu:ff02::1",
|
||||||
|
"host.docker.internal:host-gateway",
|
||||||
}
|
}
|
||||||
|
|
||||||
assert.Assert(t, is.Len(config.Services, 1))
|
assert.Assert(t, is.Len(config.Services, 1))
|
||||||
|
|
|
@ -154,6 +154,7 @@ func TestValidateExtraHosts(t *testing.T) {
|
||||||
`thathost:10.0.2.1`,
|
`thathost:10.0.2.1`,
|
||||||
`anipv6host:2003:ab34:e::1`,
|
`anipv6host:2003:ab34:e::1`,
|
||||||
`ipv6local:::1`,
|
`ipv6local:::1`,
|
||||||
|
`host.docker.internal:host-gateway`,
|
||||||
}
|
}
|
||||||
|
|
||||||
invalid := map[string]string{
|
invalid := map[string]string{
|
||||||
|
|
Loading…
Reference in New Issue