Updated based on Jhonce comments

Added ID to default
removed outdated imports
slight refactor
Test Network Headers added to network_test.go

Signed-off-by: Parker Van Roy <pvanroy@redhat.com>
This commit is contained in:
Parker Van Roy
2021-02-22 16:11:06 -05:00
parent ccbe4ff73f
commit ef549235eb
3 changed files with 22 additions and 14 deletions

View File

@ -1,7 +1,6 @@
package network package network
import ( import (
"encoding/json"
"fmt" "fmt"
"os" "os"
"strings" "strings"
@ -11,7 +10,6 @@ import (
"github.com/containers/common/pkg/completion" "github.com/containers/common/pkg/completion"
"github.com/containers/common/pkg/report" "github.com/containers/common/pkg/report"
"github.com/containers/podman/v3/cmd/podman/common" "github.com/containers/podman/v3/cmd/podman/common"
"github.com/containers/podman/v3/cmd/podman/parse"
"github.com/containers/podman/v3/cmd/podman/registry" "github.com/containers/podman/v3/cmd/podman/registry"
"github.com/containers/podman/v3/cmd/podman/validate" "github.com/containers/podman/v3/cmd/podman/validate"
"github.com/containers/podman/v3/libpod/network" "github.com/containers/podman/v3/libpod/network"
@ -38,7 +36,6 @@ var (
networkListOptions entities.NetworkListOptions networkListOptions entities.NetworkListOptions
filters []string filters []string
noTrunc bool noTrunc bool
defaultListRow = "{{.Name}}\t{{.Version}}\t{{.Plugins}}\n"
) )
func networkListFlags(flags *pflag.FlagSet) { func networkListFlags(flags *pflag.FlagSet) {
@ -81,23 +78,24 @@ func networkList(cmd *cobra.Command, args []string) error {
switch { switch {
// quiet means we only print the network names // quiet means we only print the network names
case networkListOptions.Quiet: case networkListOptions.Quiet:
return quietOut(responses) quietOut(responses)
// TODO remove references to parse package // JSON output formatting
case parse.MatchesJSONFormat(networkListOptions.Format): case report.IsJSON(networkListOptions.Format):
return jsonOut(responses) err = jsonOut(responses)
// table or other format output // table or other format output
default: default:
return templateOut(responses, cmd) err = templateOut(responses, cmd)
} }
return err
} }
func quietOut(responses []*entities.NetworkListReport) error { func quietOut(responses []*entities.NetworkListReport) {
for _, r := range responses { for _, r := range responses {
fmt.Println(r.Name) fmt.Println(r.Name)
} }
return nil
} }
func jsonOut(responses []*entities.NetworkListReport) error { func jsonOut(responses []*entities.NetworkListReport) error {
@ -125,15 +123,15 @@ func templateOut(responses []*entities.NetworkListReport, cmd *cobra.Command) er
"ID": "network id", "ID": "network id",
}) })
renderHeaders := strings.HasPrefix(networkListOptions.Format, "table ") renderHeaders := report.HasTable(networkListOptions.Format)
var row, format string var row, format string
if cmd.Flags().Changed("format") { if cmd.Flags().Changed("format") {
row = report.NormalizeFormat(networkListOptions.Format) row = report.NormalizeFormat(networkListOptions.Format)
} else { // 'podman network ls' equivalent to 'podman network ls --format="table {{ .Name }} {{ .Version }} {{ .Plugins }}" ' } else { // 'podman network ls' equivalent to 'podman network ls --format="table {{.ID}} {{.Name}} {{.Version}} {{.Plugins}}" '
renderHeaders = true renderHeaders = true
row = defaultListRow row = "{{.ID}}\t{{.Name}}\t{{.Version}}\t{{.Plugins}}\n"
} }
format = "{{range .}}" + row + "{{end}}" format = report.EnforceRange(row)
tmpl, err := template.New("listNetworks").Parse(format) tmpl, err := template.New("listNetworks").Parse(format)
if err != nil { if err != nil {

View File

@ -8,6 +8,9 @@ import (
) )
var ( var (
// Pull in configured json library
json = registry.JSONLibrary()
// Command: podman _network_ // Command: podman _network_
networkCmd = &cobra.Command{ networkCmd = &cobra.Command{
Use: "network", Use: "network",

View File

@ -150,6 +150,13 @@ var _ = Describe("Podman network", func() {
defer podmanTest.removeCNINetwork(net) defer podmanTest.removeCNINetwork(net)
Expect(session.ExitCode()).To(BeZero()) Expect(session.ExitCode()).To(BeZero())
// Tests Default Table Output
session = podmanTest.Podman([]string{"network", "ls", "--filter", "id=" + netID})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(BeZero())
expectedTable := "NETWORK ID NAME VERSION PLUGINS"
Expect(session.OutputToString()).To(ContainSubstring(expectedTable))
session = podmanTest.Podman([]string{"network", "ls", "--format", "{{.Name}} {{.ID}}", "--filter", "id=" + netID}) session = podmanTest.Podman([]string{"network", "ls", "--format", "{{.Name}} {{.ID}}", "--filter", "id=" + netID})
session.WaitWithDefaultTimeout() session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(BeZero()) Expect(session.ExitCode()).To(BeZero())