github.com/containers/podman/v5@v5.1.0-rc1/test/e2e/container_inspect_test.go (about)

     1  package integration
     2  
     3  import (
     4  	"os"
     5  	"path/filepath"
     6  
     7  	"github.com/containers/podman/v5/libpod/define"
     8  	"github.com/containers/podman/v5/pkg/annotations"
     9  	. "github.com/containers/podman/v5/test/utils"
    10  	. "github.com/onsi/ginkgo/v2"
    11  	. "github.com/onsi/gomega"
    12  )
    13  
    14  var _ = Describe("Podman container inspect", func() {
    15  
    16  	It("podman inspect a container for the container manager annotation", func() {
    17  		const testContainer = "container-inspect-test-1"
    18  		setup := podmanTest.RunTopContainer(testContainer)
    19  		setup.WaitWithDefaultTimeout()
    20  		Expect(setup).Should(ExitCleanly())
    21  
    22  		data := podmanTest.InspectContainer(testContainer)
    23  		Expect(data[0].Config.Annotations[annotations.ContainerManager]).
    24  			To(Equal(annotations.ContainerManagerLibpod))
    25  	})
    26  
    27  	It("podman inspect shows exposed ports", func() {
    28  		name := "testcon"
    29  		session := podmanTest.Podman([]string{"run", "-d", "--stop-timeout", "0", "--expose", "8787/udp", "--name", name, ALPINE, "sleep", "100"})
    30  		session.WaitWithDefaultTimeout()
    31  		Expect(session).Should(ExitCleanly())
    32  		data := podmanTest.InspectContainer(name)
    33  
    34  		Expect(data).To(HaveLen(1))
    35  		Expect(data[0].NetworkSettings.Ports).
    36  			To(Equal(map[string][]define.InspectHostPort{"8787/udp": nil}))
    37  
    38  		session = podmanTest.Podman([]string{"ps", "--format", "{{.Ports}}"})
    39  		session.WaitWithDefaultTimeout()
    40  		Expect(session).Should(ExitCleanly())
    41  		Expect(session.OutputToString()).To(Equal("8787/udp"))
    42  	})
    43  
    44  	It("podman inspect shows exposed ports on image", func() {
    45  		name := "testcon"
    46  		session := podmanTest.Podman([]string{"run", "-d", "--expose", "8989", "--name", name, NGINX_IMAGE})
    47  		session.WaitWithDefaultTimeout()
    48  		Expect(session).Should(ExitCleanly())
    49  
    50  		data := podmanTest.InspectContainer(name)
    51  		Expect(data).To(HaveLen(1))
    52  		Expect(data[0].NetworkSettings.Ports).
    53  			To(Equal(map[string][]define.InspectHostPort{"80/tcp": nil, "8989/tcp": nil}))
    54  
    55  		session = podmanTest.Podman([]string{"ps", "--format", "{{.Ports}}"})
    56  		session.WaitWithDefaultTimeout()
    57  		Expect(session).Should(ExitCleanly())
    58  		Expect(session.OutputToString()).To(Equal("80/tcp, 8989/tcp"))
    59  	})
    60  
    61  	It("podman inspect shows volumes-from with mount options", func() {
    62  		ctr1 := "volfctr"
    63  		ctr2 := "voltctr"
    64  		vol1 := filepath.Join(podmanTest.TempDir, "vol-test1")
    65  		volsctr := ctr1 + ":z,ro"
    66  
    67  		err := os.MkdirAll(vol1, 0755)
    68  		Expect(err).ToNot(HaveOccurred())
    69  
    70  		session := podmanTest.Podman([]string{"create", "--name", ctr1, "-v", vol1, CITEST_IMAGE})
    71  		session.WaitWithDefaultTimeout()
    72  		Expect(session).Should(ExitCleanly())
    73  
    74  		session = podmanTest.Podman([]string{"create", "--volumes-from", volsctr, "--name", ctr2, CITEST_IMAGE})
    75  		session.WaitWithDefaultTimeout()
    76  		Expect(session).Should(ExitCleanly())
    77  
    78  		data := podmanTest.InspectContainer(ctr2)
    79  		Expect(data).To(HaveLen(1))
    80  		Expect(data[0].HostConfig.VolumesFrom).To(Equal([]string{volsctr}))
    81  		Expect(data[0].Config.Annotations[define.VolumesFromAnnotation]).To(Equal(volsctr))
    82  	})
    83  })