mirror of
https://github.com/containers/podman.git
synced 2025-05-21 17:16:22 +08:00
network reload without ports should not reload ports
When run as rootless the podman network reload command tries to reload the rootlessport ports because the childIP could have changed. However if the containers has no ports we should skip this instead of printing a warning. Signed-off-by: Paul Holzinger <pholzing@redhat.com>
This commit is contained in:
@ -678,6 +678,9 @@ func getRootlessPortChildIP(c *Container, netStatus map[string]types.StatusBlock
|
|||||||
// reloadRootlessRLKPortMapping will trigger a reload for the port mappings in the rootlessport process.
|
// reloadRootlessRLKPortMapping will trigger a reload for the port mappings in the rootlessport process.
|
||||||
// This should only be called by network connect/disconnect and only as rootless.
|
// This should only be called by network connect/disconnect and only as rootless.
|
||||||
func (c *Container) reloadRootlessRLKPortMapping() error {
|
func (c *Container) reloadRootlessRLKPortMapping() error {
|
||||||
|
if len(c.config.PortMappings) == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
childIP := getRootlessPortChildIP(c, c.state.NetworkStatus)
|
childIP := getRootlessPortChildIP(c, c.state.NetworkStatus)
|
||||||
logrus.Debugf("reloading rootless ports for container %s, childIP is %s", c.config.ID, childIP)
|
logrus.Debugf("reloading rootless ports for container %s, childIP is %s", c.config.ID, childIP)
|
||||||
|
|
||||||
|
@ -87,6 +87,7 @@ var _ = Describe("Podman network connect and disconnect", func() {
|
|||||||
dis := podmanTest.Podman([]string{"network", "disconnect", netName, "test"})
|
dis := podmanTest.Podman([]string{"network", "disconnect", netName, "test"})
|
||||||
dis.WaitWithDefaultTimeout()
|
dis.WaitWithDefaultTimeout()
|
||||||
Expect(dis).Should(Exit(0))
|
Expect(dis).Should(Exit(0))
|
||||||
|
Expect(dis.ErrorToString()).Should(Equal(""))
|
||||||
|
|
||||||
inspect := podmanTest.Podman([]string{"container", "inspect", "test", "--format", "{{len .NetworkSettings.Networks}}"})
|
inspect := podmanTest.Podman([]string{"container", "inspect", "test", "--format", "{{len .NetworkSettings.Networks}}"})
|
||||||
inspect.WaitWithDefaultTimeout()
|
inspect.WaitWithDefaultTimeout()
|
||||||
@ -183,6 +184,7 @@ var _ = Describe("Podman network connect and disconnect", func() {
|
|||||||
connect := podmanTest.Podman([]string{"network", "connect", newNetName, "test"})
|
connect := podmanTest.Podman([]string{"network", "connect", newNetName, "test"})
|
||||||
connect.WaitWithDefaultTimeout()
|
connect.WaitWithDefaultTimeout()
|
||||||
Expect(connect).Should(Exit(0))
|
Expect(connect).Should(Exit(0))
|
||||||
|
Expect(connect.ErrorToString()).Should(Equal(""))
|
||||||
|
|
||||||
inspect := podmanTest.Podman([]string{"container", "inspect", "test", "--format", "{{len .NetworkSettings.Networks}}"})
|
inspect := podmanTest.Podman([]string{"container", "inspect", "test", "--format", "{{len .NetworkSettings.Networks}}"})
|
||||||
inspect.WaitWithDefaultTimeout()
|
inspect.WaitWithDefaultTimeout()
|
||||||
|
@ -430,6 +430,7 @@ load helpers
|
|||||||
is "$output" "[${cid:0:12}]" "short container id in network aliases"
|
is "$output" "[${cid:0:12}]" "short container id in network aliases"
|
||||||
|
|
||||||
run_podman network disconnect $netname $cid
|
run_podman network disconnect $netname $cid
|
||||||
|
is "$output" "" "Output should be empty (no errors)"
|
||||||
|
|
||||||
# check that we cannot curl (timeout after 3 sec)
|
# check that we cannot curl (timeout after 3 sec)
|
||||||
run curl --max-time 3 -s $SERVER/index.txt
|
run curl --max-time 3 -s $SERVER/index.txt
|
||||||
@ -438,6 +439,7 @@ load helpers
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
run_podman network connect $netname $cid
|
run_podman network connect $netname $cid
|
||||||
|
is "$output" "" "Output should be empty (no errors)"
|
||||||
|
|
||||||
# curl should work again
|
# curl should work again
|
||||||
run curl --max-time 3 -s $SERVER/index.txt
|
run curl --max-time 3 -s $SERVER/index.txt
|
||||||
@ -454,6 +456,12 @@ load helpers
|
|||||||
die "MAC address did not change after podman network disconnect/connect"
|
die "MAC address did not change after podman network disconnect/connect"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Disconnect/reconnect of a container *with no ports* should succeed quietly
|
||||||
|
run_podman network disconnect $netname $background_cid
|
||||||
|
is "$output" "" "disconnect of container with no open ports"
|
||||||
|
run_podman network connect $netname $background_cid
|
||||||
|
is "$output" "" "(re)connect of container with no open ports"
|
||||||
|
|
||||||
# FIXME FIXME FIXME: #11825: bodhi tests are failing, remote+rootless only,
|
# FIXME FIXME FIXME: #11825: bodhi tests are failing, remote+rootless only,
|
||||||
# with "dnsmasq: failed to create inotify". This error has never occurred
|
# with "dnsmasq: failed to create inotify". This error has never occurred
|
||||||
# in CI, and Ed has been unable to reproduce it on 1minutetip. This next
|
# in CI, and Ed has been unable to reproduce it on 1minutetip. This next
|
||||||
@ -464,6 +472,7 @@ load helpers
|
|||||||
|
|
||||||
# connect a second network
|
# connect a second network
|
||||||
run_podman network connect $netname2 $cid
|
run_podman network connect $netname2 $cid
|
||||||
|
is "$output" "" "Output should be empty (no errors)"
|
||||||
|
|
||||||
# check network2 alias for container short id
|
# check network2 alias for container short id
|
||||||
run_podman inspect $cid --format "{{(index .NetworkSettings.Networks \"$netname2\").Aliases}}"
|
run_podman inspect $cid --format "{{(index .NetworkSettings.Networks \"$netname2\").Aliases}}"
|
||||||
|
Reference in New Issue
Block a user