diff --git a/cmd/podman/system/connection/list.go b/cmd/podman/system/connection/list.go index 6f34a5dacc..e3378483bd 100644 --- a/cmd/podman/system/connection/list.go +++ b/cmd/podman/system/connection/list.go @@ -43,6 +43,7 @@ func init() { cmd.Flags().StringP("format", "f", "", "Custom Go template for printing connections") _ = cmd.RegisterFlagCompletionFunc("format", common.AutocompleteFormat(&config.Connection{})) cmd.Flags().BoolP("quiet", "q", false, "Custom Go template for printing connections") + cmd.Flags().Bool("tls", false, "Include TLS info in default format. Ignored if --format is specified.") } registry.Commands = append(registry.Commands, registry.CliCommand{ @@ -77,6 +78,11 @@ func inspect(cmd *cobra.Command, args []string) error { return err } + tls, err := cmd.Flags().GetBool("tls") + if err != nil { + return err + } + cons, err := registry.PodmanConfig().ContainersConfDefaultsRO.GetAllConnections() if err != nil { return err @@ -116,9 +122,12 @@ func inspect(cmd *cobra.Command, args []string) error { if format != "" { rpt, err = rpt.Parse(report.OriginUser, format) - } else { + } else if tls { rpt, err = rpt.Parse(report.OriginPodman, "{{range .}}{{.Name}}\t{{.URI}}\t{{.Identity}}\t{{.TLSCAFile}}\t{{.TLSCertFile}}\t{{.TLSKeyFile}}\t{{.Default}}\t{{.ReadWrite}}\n{{end -}}") + } else { + rpt, err = rpt.Parse(report.OriginPodman, + "{{range .}}{{.Name}}\t{{.URI}}\t{{.Identity}}\t{{.Default}}\t{{.ReadWrite}}\n{{end -}}") } if err != nil { return err diff --git a/test/e2e/system_connection_test.go b/test/e2e/system_connection_test.go index af4cf851cd..f79fa82ba8 100644 --- a/test/e2e/system_connection_test.go +++ b/test/e2e/system_connection_test.go @@ -350,6 +350,39 @@ qe ssh://root@podman.test:2222/run/podman/podman.sock ~/.ssh/id_rsa false true session = podmanTest.Podman(cmd) session.WaitWithDefaultTimeout() Expect(session).Should(ExitCleanly()) + Expect(session.Out).Should(Say("Name *URI *Identity *Default")) + }) + + It("with tls output", func() { + for _, name := range []string{"devl", "qe"} { + cmd := []string{"system", "connection", "add", + "--default", + "--identity", "~/.ssh/id_rsa", + name, + "ssh://root@podman.test:2222/run/podman/podman.sock", + } + session := podmanTest.Podman(cmd) + session.WaitWithDefaultTimeout() + Expect(session).Should(ExitCleanly()) + } + + cmd := []string{"system", "connection", "default", "devl"} + session := podmanTest.Podman(cmd) + session.WaitWithDefaultTimeout() + Expect(session).Should(ExitCleanly()) + Expect(session.Out.Contents()).Should(BeEmpty()) + + session = podmanTest.Podman(systemConnectionListCmd) + session.WaitWithDefaultTimeout() + Expect(session).Should(ExitCleanly()) + Expect(string(session.Out.Contents())).To(Equal(`devl ssh://root@podman.test:2222/run/podman/podman.sock ~/.ssh/id_rsa true true +qe ssh://root@podman.test:2222/run/podman/podman.sock ~/.ssh/id_rsa false true +`)) + + cmd = []string{"system", "connection", "list", "--tls"} + session = podmanTest.Podman(cmd) + session.WaitWithDefaultTimeout() + Expect(session).Should(ExitCleanly()) Expect(session.Out).Should(Say("Name *URI *Identity *TLSCAFile *TLSCertFile *TLSKeyFile *Default")) })