mirror of
https://github.com/containers/podman.git
synced 2025-12-16 03:57:36 +08:00
Merge pull request #13191 from mheon/resolvconf_fixes
Modify /etc/resolv.conf when connecting/disconnecting
This commit is contained in:
@@ -2,6 +2,7 @@ package integration
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
. "github.com/containers/podman/v4/test/utils"
|
||||
"github.com/containers/storage/pkg/stringid"
|
||||
@@ -77,6 +78,11 @@ var _ = Describe("Podman network connect and disconnect", func() {
|
||||
Expect(session).Should(Exit(0))
|
||||
defer podmanTest.removeNetwork(netName)
|
||||
|
||||
gw := podmanTest.Podman([]string{"network", "inspect", netName, "--format", "{{(index .Subnets 0).Gateway}}"})
|
||||
gw.WaitWithDefaultTimeout()
|
||||
Expect(gw).Should(Exit(0))
|
||||
ns := gw.OutputToString()
|
||||
|
||||
ctr := podmanTest.Podman([]string{"run", "-dt", "--name", "test", "--network", netName, ALPINE, "top"})
|
||||
ctr.WaitWithDefaultTimeout()
|
||||
Expect(ctr).Should(Exit(0))
|
||||
@@ -85,6 +91,11 @@ var _ = Describe("Podman network connect and disconnect", func() {
|
||||
exec.WaitWithDefaultTimeout()
|
||||
Expect(exec).Should(Exit(0))
|
||||
|
||||
exec2 := podmanTest.Podman([]string{"exec", "-it", "test", "cat", "/etc/resolv.conf"})
|
||||
exec2.WaitWithDefaultTimeout()
|
||||
Expect(exec2).Should(Exit(0))
|
||||
Expect(strings.Contains(exec2.OutputToString(), ns)).To(BeTrue())
|
||||
|
||||
dis := podmanTest.Podman([]string{"network", "disconnect", netName, "test"})
|
||||
dis.WaitWithDefaultTimeout()
|
||||
Expect(dis).Should(Exit(0))
|
||||
@@ -98,6 +109,11 @@ var _ = Describe("Podman network connect and disconnect", func() {
|
||||
exec = podmanTest.Podman([]string{"exec", "-it", "test", "ip", "addr", "show", "eth0"})
|
||||
exec.WaitWithDefaultTimeout()
|
||||
Expect(exec).Should(ExitWithError())
|
||||
|
||||
exec3 := podmanTest.Podman([]string{"exec", "-it", "test", "cat", "/etc/resolv.conf"})
|
||||
exec3.WaitWithDefaultTimeout()
|
||||
Expect(exec3).Should(Exit(0))
|
||||
Expect(strings.Contains(exec3.OutputToString(), ns)).To(BeFalse())
|
||||
})
|
||||
|
||||
It("bad network name in connect should result in error", func() {
|
||||
@@ -182,6 +198,16 @@ var _ = Describe("Podman network connect and disconnect", func() {
|
||||
Expect(session).Should(Exit(0))
|
||||
defer podmanTest.removeNetwork(newNetName)
|
||||
|
||||
gw := podmanTest.Podman([]string{"network", "inspect", newNetName, "--format", "{{(index .Subnets 0).Gateway}}"})
|
||||
gw.WaitWithDefaultTimeout()
|
||||
Expect(gw).Should(Exit(0))
|
||||
ns := gw.OutputToString()
|
||||
|
||||
exec2 := podmanTest.Podman([]string{"exec", "-it", "test", "cat", "/etc/resolv.conf"})
|
||||
exec2.WaitWithDefaultTimeout()
|
||||
Expect(exec2).Should(Exit(0))
|
||||
Expect(strings.Contains(exec2.OutputToString(), ns)).To(BeFalse())
|
||||
|
||||
ip := "10.11.100.99"
|
||||
mac := "44:11:44:11:44:11"
|
||||
connect := podmanTest.Podman([]string{"network", "connect", "--ip", ip, "--mac-address", mac, newNetName, "test"})
|
||||
@@ -206,6 +232,11 @@ var _ = Describe("Podman network connect and disconnect", func() {
|
||||
Expect(exec.OutputToString()).Should(ContainSubstring(ip))
|
||||
Expect(exec.OutputToString()).Should(ContainSubstring(mac))
|
||||
|
||||
exec3 := podmanTest.Podman([]string{"exec", "-it", "test", "cat", "/etc/resolv.conf"})
|
||||
exec3.WaitWithDefaultTimeout()
|
||||
Expect(exec3).Should(Exit(0))
|
||||
Expect(strings.Contains(exec3.OutputToString(), ns)).To(BeTrue())
|
||||
|
||||
// make sure no logrus errors are shown https://github.com/containers/podman/issues/9602
|
||||
rm := podmanTest.Podman([]string{"rm", "--time=0", "-f", "test"})
|
||||
rm.WaitWithDefaultTimeout()
|
||||
|
||||
Reference in New Issue
Block a user