network_test.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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. "github.com/docker/docker/integration/internal/swarm"
  9. "github.com/gotestyourself/gotestyourself/assert"
  10. is "github.com/gotestyourself/gotestyourself/assert/cmp"
  11. )
  12. func TestDockerNetworkConnectAlias(t *testing.T) {
  13. defer setupTest(t)()
  14. d := swarm.NewSwarm(t, testEnv)
  15. defer d.Stop(t)
  16. client := d.NewClientT(t)
  17. defer client.Close()
  18. ctx := context.Background()
  19. name := "test-alias"
  20. _, err := client.NetworkCreate(ctx, name, types.NetworkCreate{
  21. Driver: "overlay",
  22. Attachable: true,
  23. })
  24. assert.NilError(t, err)
  25. container.Create(t, ctx, client, container.WithName("ng1"), func(c *container.TestContainerConfig) {
  26. c.NetworkingConfig = &network.NetworkingConfig{
  27. map[string]*network.EndpointSettings{
  28. name: {},
  29. },
  30. }
  31. })
  32. err = client.NetworkConnect(ctx, name, "ng1", &network.EndpointSettings{
  33. Aliases: []string{
  34. "aaa",
  35. },
  36. })
  37. assert.NilError(t, err)
  38. err = client.ContainerStart(ctx, "ng1", types.ContainerStartOptions{})
  39. assert.NilError(t, err)
  40. ng1, err := client.ContainerInspect(ctx, "ng1")
  41. assert.NilError(t, err)
  42. assert.Check(t, is.Equal(len(ng1.NetworkSettings.Networks[name].Aliases), 2))
  43. assert.Check(t, is.Equal(ng1.NetworkSettings.Networks[name].Aliases[0], "aaa"))
  44. container.Create(t, ctx, client, container.WithName("ng2"), func(c *container.TestContainerConfig) {
  45. c.NetworkingConfig = &network.NetworkingConfig{
  46. map[string]*network.EndpointSettings{
  47. name: {},
  48. },
  49. }
  50. })
  51. err = client.NetworkConnect(ctx, name, "ng2", &network.EndpointSettings{
  52. Aliases: []string{
  53. "bbb",
  54. },
  55. })
  56. assert.NilError(t, err)
  57. err = client.ContainerStart(ctx, "ng2", types.ContainerStartOptions{})
  58. assert.NilError(t, err)
  59. ng2, err := client.ContainerInspect(ctx, "ng2")
  60. assert.NilError(t, err)
  61. assert.Check(t, is.Equal(len(ng2.NetworkSettings.Networks[name].Aliases), 2))
  62. assert.Check(t, is.Equal(ng2.NetworkSettings.Networks[name].Aliases[0], "bbb"))
  63. }