network_test.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package service // import "github.com/docker/docker/integration/service"
  2. import (
  3. "context"
  4. "testing"
  5. "github.com/docker/docker/api/types"
  6. "github.com/docker/docker/api/types/network"
  7. "github.com/docker/docker/integration/internal/container"
  8. net "github.com/docker/docker/integration/internal/network"
  9. "github.com/docker/docker/integration/internal/swarm"
  10. "gotest.tools/assert"
  11. is "gotest.tools/assert/cmp"
  12. "gotest.tools/skip"
  13. )
  14. func TestDockerNetworkConnectAlias(t *testing.T) {
  15. skip.If(t, testEnv.DaemonInfo.OSType == "windows")
  16. defer setupTest(t)()
  17. d := swarm.NewSwarm(t, testEnv)
  18. defer d.Stop(t)
  19. client := d.NewClientT(t)
  20. defer client.Close()
  21. ctx := context.Background()
  22. name := t.Name() + "test-alias"
  23. net.CreateNoError(t, ctx, client, name,
  24. net.WithDriver("overlay"),
  25. net.WithAttachable(),
  26. )
  27. cID1 := container.Create(t, ctx, client, func(c *container.TestContainerConfig) {
  28. c.NetworkingConfig = &network.NetworkingConfig{
  29. EndpointsConfig: map[string]*network.EndpointSettings{
  30. name: {},
  31. },
  32. }
  33. })
  34. err := client.NetworkConnect(ctx, name, cID1, &network.EndpointSettings{
  35. Aliases: []string{
  36. "aaa",
  37. },
  38. })
  39. assert.NilError(t, err)
  40. err = client.ContainerStart(ctx, cID1, types.ContainerStartOptions{})
  41. assert.NilError(t, err)
  42. ng1, err := client.ContainerInspect(ctx, cID1)
  43. assert.NilError(t, err)
  44. assert.Check(t, is.Equal(len(ng1.NetworkSettings.Networks[name].Aliases), 2))
  45. assert.Check(t, is.Equal(ng1.NetworkSettings.Networks[name].Aliases[0], "aaa"))
  46. cID2 := container.Create(t, ctx, client, func(c *container.TestContainerConfig) {
  47. c.NetworkingConfig = &network.NetworkingConfig{
  48. EndpointsConfig: map[string]*network.EndpointSettings{
  49. name: {},
  50. },
  51. }
  52. })
  53. err = client.NetworkConnect(ctx, name, cID2, &network.EndpointSettings{
  54. Aliases: []string{
  55. "bbb",
  56. },
  57. })
  58. assert.NilError(t, err)
  59. err = client.ContainerStart(ctx, cID2, types.ContainerStartOptions{})
  60. assert.NilError(t, err)
  61. ng2, err := client.ContainerInspect(ctx, cID2)
  62. assert.NilError(t, err)
  63. assert.Check(t, is.Equal(len(ng2.NetworkSettings.Networks[name].Aliases), 2))
  64. assert.Check(t, is.Equal(ng2.NetworkSettings.Networks[name].Aliases[0], "bbb"))
  65. }