fix: only remove container id network aliases (#1724)

pull/1705/head^2
nils måsén 9 months ago committed by GitHub
parent 650acde015
commit 897b1714d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -230,9 +230,18 @@ func (client dockerClient) GetNetworkConfig(c t.Container) *network.NetworkingCo
} }
for _, ep := range config.EndpointsConfig { for _, ep := range config.EndpointsConfig {
// This keeps accumulating across upgrades with no apparent added value aliases := make([]string, 0, len(ep.Aliases))
// so throwing the information away to prevent overflows. cidAlias := c.ID().ShortID()
ep.Aliases = nil
// Remove the old container ID alias from the network aliases, as it would accumulate across updates otherwise
for _, alias := range ep.Aliases {
if alias == cidAlias {
continue
}
aliases = append(aliases, alias)
}
ep.Aliases = aliases
} }
return config return config
} }

@ -317,19 +317,20 @@ var _ = Describe("the client", func() {
}) })
Describe(`GetNetworkConfig`, func() { Describe(`GetNetworkConfig`, func() {
When(`providing a container with network aliases`, func() { When(`providing a container with network aliases`, func() {
It(`should purge the aliases`, func() { It(`should omit the container ID alias`, func() {
aliases := []string{"One", "Two"}
client := dockerClient{ client := dockerClient{
api: docker, api: docker,
ClientOptions: ClientOptions{PullImages: false, IncludeRestarting: false}, ClientOptions: ClientOptions{PullImages: false, IncludeRestarting: false},
} }
container := MockContainer(WithImageName("docker.io/prefix/imagename:latest")) container := MockContainer(WithImageName("docker.io/prefix/imagename:latest"))
aliases := []string{"One", "Two", container.ID().ShortID(), "Four"}
endpoints := map[string]*network.EndpointSettings{ endpoints := map[string]*network.EndpointSettings{
`test`: {Aliases: aliases}, `test`: {Aliases: aliases},
} }
container.containerInfo.NetworkSettings = &types.NetworkSettings{Networks: endpoints} container.containerInfo.NetworkSettings = &types.NetworkSettings{Networks: endpoints}
Expect(container.ContainerInfo().NetworkSettings.Networks[`test`].Aliases).To(Equal(aliases)) Expect(container.ContainerInfo().NetworkSettings.Networks[`test`].Aliases).To(Equal(aliases))
Expect(client.GetNetworkConfig(container).EndpointsConfig[`test`].Aliases).To(BeEmpty()) Expect(client.GetNetworkConfig(container).EndpointsConfig[`test`].Aliases).To(Equal([]string{"One", "Two", "Four"}))
}) })
}) })
}) })

Loading…
Cancel
Save