mirror of
https://github.com/containers/podman.git
synced 2025-06-25 03:52:15 +08:00
Merge pull request #12242 from Luap99/port-reload
network reload without ports should not reload ports
This commit is contained in:
@ -678,15 +678,15 @@ func getRootlessPortChildIP(c *Container, netStatus map[string]types.StatusBlock
|
||||
// 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.
|
||||
func (c *Container) reloadRootlessRLKPortMapping() error {
|
||||
if len(c.config.PortMappings) == 0 {
|
||||
return nil
|
||||
}
|
||||
childIP := getRootlessPortChildIP(c, c.state.NetworkStatus)
|
||||
logrus.Debugf("reloading rootless ports for container %s, childIP is %s", c.config.ID, childIP)
|
||||
|
||||
conn, err := openUnixSocket(filepath.Join(c.runtime.config.Engine.TmpDir, "rp", c.config.ID))
|
||||
if err != nil {
|
||||
// This is not a hard error for backwards compatibility. A container started
|
||||
// with an old version did not created the rootlessport socket.
|
||||
logrus.Warnf("Could not reload rootless port mappings, port forwarding may no longer work correctly: %v", err)
|
||||
return nil
|
||||
return errors.Wrap(err, "could not reload rootless port mappings, port forwarding may no longer work correctly")
|
||||
}
|
||||
defer conn.Close()
|
||||
enc := json.NewEncoder(conn)
|
||||
|
@ -87,6 +87,7 @@ var _ = Describe("Podman network connect and disconnect", func() {
|
||||
dis := podmanTest.Podman([]string{"network", "disconnect", netName, "test"})
|
||||
dis.WaitWithDefaultTimeout()
|
||||
Expect(dis).Should(Exit(0))
|
||||
Expect(dis.ErrorToString()).Should(Equal(""))
|
||||
|
||||
inspect := podmanTest.Podman([]string{"container", "inspect", "test", "--format", "{{len .NetworkSettings.Networks}}"})
|
||||
inspect.WaitWithDefaultTimeout()
|
||||
@ -183,6 +184,7 @@ var _ = Describe("Podman network connect and disconnect", func() {
|
||||
connect := podmanTest.Podman([]string{"network", "connect", newNetName, "test"})
|
||||
connect.WaitWithDefaultTimeout()
|
||||
Expect(connect).Should(Exit(0))
|
||||
Expect(connect.ErrorToString()).Should(Equal(""))
|
||||
|
||||
inspect := podmanTest.Podman([]string{"container", "inspect", "test", "--format", "{{len .NetworkSettings.Networks}}"})
|
||||
inspect.WaitWithDefaultTimeout()
|
||||
|
@ -430,6 +430,7 @@ load helpers
|
||||
is "$output" "[${cid:0:12}]" "short container id in network aliases"
|
||||
|
||||
run_podman network disconnect $netname $cid
|
||||
is "$output" "" "Output should be empty (no errors)"
|
||||
|
||||
# check that we cannot curl (timeout after 3 sec)
|
||||
run curl --max-time 3 -s $SERVER/index.txt
|
||||
@ -438,6 +439,7 @@ load helpers
|
||||
fi
|
||||
|
||||
run_podman network connect $netname $cid
|
||||
is "$output" "" "Output should be empty (no errors)"
|
||||
|
||||
# curl should work again
|
||||
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"
|
||||
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,
|
||||
# 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
|
||||
@ -464,6 +472,7 @@ load helpers
|
||||
|
||||
# connect a second network
|
||||
run_podman network connect $netname2 $cid
|
||||
is "$output" "" "Output should be empty (no errors)"
|
||||
|
||||
# check network2 alias for container short id
|
||||
run_podman inspect $cid --format "{{(index .NetworkSettings.Networks \"$netname2\").Aliases}}"
|
||||
|
Reference in New Issue
Block a user