| package daemon |
| |
| import ( |
| "encoding/json" |
| "testing" |
| |
| containertypes "github.com/docker/docker/api/types/container" |
| networktypes "github.com/docker/docker/api/types/network" |
| "github.com/docker/docker/container" |
| "github.com/docker/docker/libnetwork" |
| "gotest.tools/v3/assert" |
| is "gotest.tools/v3/assert/cmp" |
| ) |
| |
| func TestDNSNamesOrder(t *testing.T) { |
| d := &Daemon{} |
| ctr := &container.Container{ |
| ID: "35de8003b19e27f636fc6ecbf4d7072558b872a8544f287fd69ad8182ad59023", |
| Name: "foobar", |
| Config: &containertypes.Config{ |
| Hostname: "baz", |
| }, |
| } |
| nw := buildNetwork(t, map[string]any{ |
| "id": "1234567890", |
| "name": "testnet", |
| "networkType": "bridge", |
| "enableIPv6": false, |
| }) |
| epSettings := &networktypes.EndpointSettings{ |
| Aliases: []string{"myctr"}, |
| } |
| |
| if err := d.updateNetworkConfig(ctr, nw, epSettings, false); err != nil { |
| t.Fatal(err) |
| } |
| |
| assert.Check(t, is.DeepEqual(epSettings.DNSNames, []string{"foobar", "myctr", "35de8003b19e", "baz"})) |
| } |
| |
| func buildNetwork(t *testing.T, config map[string]any) *libnetwork.Network { |
| t.Helper() |
| |
| b, err := json.Marshal(config) |
| if err != nil { |
| t.Fatal(err) |
| } |
| |
| nw := &libnetwork.Network{} |
| if err := nw.UnmarshalJSON(b); err != nil { |
| t.Fatal(err) |
| } |
| |
| return nw |
| } |