From 41457b5a28532d410517b1afb1759e2724d03cab Mon Sep 17 00:00:00 2001
From: Matthew Heon <mheon@redhat.com>
Date: Mon, 13 Jul 2020 14:22:43 -0400
Subject: Include infra container information in `pod inspect`

We had a field for this in the inspect data, but it was never
being populated. Because of this, `podman pod inspect` stopped
showing port bindings (and other infra container settings). Add
code to populate the infra container inspect data, and add a test
to ensure we don't regress again.

Signed-off-by: Matthew Heon <mheon@redhat.com>
---
 test/e2e/pod_inspect_test.go | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

(limited to 'test')

diff --git a/test/e2e/pod_inspect_test.go b/test/e2e/pod_inspect_test.go
index 5e3634435..64f943c80 100644
--- a/test/e2e/pod_inspect_test.go
+++ b/test/e2e/pod_inspect_test.go
@@ -3,6 +3,8 @@ package integration
 import (
 	"os"
 
+	"github.com/containers/libpod/v2/libpod/define"
+
 	. "github.com/containers/libpod/v2/test/utils"
 	. "github.com/onsi/ginkgo"
 	. "github.com/onsi/gomega"
@@ -79,4 +81,22 @@ var _ = Describe("Podman pod inspect", func() {
 		index := len(inspectCreateCommand) - len(createCommand)
 		Expect(inspectCreateCommand[index:]).To(Equal(createCommand))
 	})
+
+	It("podman pod inspect outputs port bindings", func() {
+		podName := "testPod"
+		create := podmanTest.Podman([]string{"pod", "create", "--name", testPod, "-p", "8080:80"})
+		create.WaitWithDefaultTimeout()
+		Expect(create.ExitCode()).To(Equal(0))
+
+		inspectOut := podmanTest.Podman([]string{"pod", "inspect", podName})
+		inspectOut.WaitWithDefaultTimeout()
+		Expect(inspectOut.ExitCode()).To(Equal(0))
+
+		inspectJSON := new(define.InspectPodData)
+		err := json.Unmarshal(inspectOut.Out.Contents(), inspectJSON)
+		Expect(err).To(BeNil())
+		Expect(inspectJSON.InfraConfig).To(Not(BeNil()))
+		Expect(len(inspectJSON.PortBindings["80/tcp"])).To(Equal(1))
+		Expect(inspectJSON.PortBindings["80/tcp"].HostPort).To(Equal("8080"))
+	})
 })
-- 
cgit v1.2.3-54-g00ecf