From 76a38fc3f236f9197ab0761d5cc11cb37cee5e41 Mon Sep 17 00:00:00 2001
From: zhangguanzhang <zhangguanzhang@qq.com>
Date: Wed, 18 Nov 2020 16:52:49 +0800
Subject: [PATCH] Fix podman pod inspect show wrong MAC string

Signed-off-by: zhangguanzhang <zhangguanzhang@qq.com>
---
 libpod/define/pod_inspect.go |  2 +-
 libpod/pod_api.go            |  2 +-
 test/e2e/pod_inspect_test.go | 19 +++++++++++++++++++
 3 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/libpod/define/pod_inspect.go b/libpod/define/pod_inspect.go
index a4115eb925..2fa91166fb 100644
--- a/libpod/define/pod_inspect.go
+++ b/libpod/define/pod_inspect.go
@@ -67,7 +67,7 @@ type InspectPodInfraConfig struct {
 	StaticIP net.IP
 	// StaticMAC is a static MAC address that will be assigned to the infra
 	// container and then used by the pod.
-	StaticMAC net.HardwareAddr
+	StaticMAC string
 	// NoManageResolvConf indicates that the pod will not manage resolv.conf
 	// and instead each container will handle their own.
 	NoManageResolvConf bool
diff --git a/libpod/pod_api.go b/libpod/pod_api.go
index 87ac5c07af..845948dd39 100644
--- a/libpod/pod_api.go
+++ b/libpod/pod_api.go
@@ -535,7 +535,7 @@ func (p *Pod) Inspect() (*define.InspectPodData, error) {
 		infraConfig = new(define.InspectPodInfraConfig)
 		infraConfig.HostNetwork = p.config.InfraContainer.HostNetwork
 		infraConfig.StaticIP = p.config.InfraContainer.StaticIP
-		infraConfig.StaticMAC = p.config.InfraContainer.StaticMAC
+		infraConfig.StaticMAC = p.config.InfraContainer.StaticMAC.String()
 		infraConfig.NoManageResolvConf = p.config.InfraContainer.UseImageResolvConf
 		infraConfig.NoManageHosts = p.config.InfraContainer.UseImageHosts
 
diff --git a/test/e2e/pod_inspect_test.go b/test/e2e/pod_inspect_test.go
index ccdf0a4234..25212991db 100644
--- a/test/e2e/pod_inspect_test.go
+++ b/test/e2e/pod_inspect_test.go
@@ -99,4 +99,23 @@ var _ = Describe("Podman pod inspect", func() {
 		Expect(len(inspectJSON.InfraConfig.PortBindings["80/tcp"])).To(Equal(1))
 		Expect(inspectJSON.InfraConfig.PortBindings["80/tcp"][0].HostPort).To(Equal("8080"))
 	})
+
+	It("podman pod inspect outputs show correct MAC", func() {
+		SkipIfRootless("--mac-address is not supported in rootless mode")
+		podName := "testPod"
+		macAddr := "42:43:44:00:00:01"
+		create := podmanTest.Podman([]string{"pod", "create", "--name", podName, "--mac-address", macAddr})
+		create.WaitWithDefaultTimeout()
+		Expect(create.ExitCode()).To(Equal(0))
+
+		create = podmanTest.Podman([]string{"run", "-d", "--pod", podName, ALPINE, "top"})
+		create.WaitWithDefaultTimeout()
+		Expect(create.ExitCode()).To(Equal(0))
+
+		inspectOut := podmanTest.Podman([]string{"pod", "inspect", podName})
+		inspectOut.WaitWithDefaultTimeout()
+		Expect(inspectOut.ExitCode()).To(Equal(0))
+
+		Expect(inspectOut.OutputToString()).To(ContainSubstring(macAddr))
+	})
 })