Fix network remove for the podman remote client

The podman remote client ignored the force option due a typo.
If an error occured the remote client would panic with an
index out of range error.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
This commit is contained in:
Paul Holzinger
2020-09-28 13:34:56 +02:00
parent 393120c135
commit 343a10e25f
3 changed files with 28 additions and 4 deletions

View File

@ -60,7 +60,7 @@ func Remove(ctx context.Context, nameOrID string, force *bool) ([]*entities.Netw
} }
params := url.Values{} params := url.Values{}
if force != nil { if force != nil {
params.Set("size", strconv.FormatBool(*force)) params.Set("force", strconv.FormatBool(*force))
} }
response, err := conn.DoRequest(nil, http.MethodDelete, "/networks/%s", params, nil, nameOrID) response, err := conn.DoRequest(nil, http.MethodDelete, "/networks/%s", params, nil, nameOrID)
if err != nil { if err != nil {

View File

@ -26,11 +26,16 @@ func (ic *ContainerEngine) NetworkInspect(ctx context.Context, namesOrIds []stri
func (ic *ContainerEngine) NetworkRm(ctx context.Context, namesOrIds []string, options entities.NetworkRmOptions) ([]*entities.NetworkRmReport, error) { func (ic *ContainerEngine) NetworkRm(ctx context.Context, namesOrIds []string, options entities.NetworkRmOptions) ([]*entities.NetworkRmReport, error) {
reports := make([]*entities.NetworkRmReport, 0, len(namesOrIds)) reports := make([]*entities.NetworkRmReport, 0, len(namesOrIds))
for _, name := range namesOrIds { for _, name := range namesOrIds {
report, err := network.Remove(ic.ClientCxt, name, &options.Force) response, err := network.Remove(ic.ClientCxt, name, &options.Force)
if err != nil { if err != nil {
report[0].Err = err report := &entities.NetworkRmReport{
Name: name,
Err: err,
}
reports = append(reports, report)
} else {
reports = append(reports, response...)
} }
reports = append(reports, report...)
} }
return reports, nil return reports, nil
} }

View File

@ -294,4 +294,23 @@ var _ = Describe("Podman network", func() {
Expect(session.ExitCode()).To(BeZero()) Expect(session.ExitCode()).To(BeZero())
Expect(session.OutputToString()).To(Not(ContainSubstring(netName))) Expect(session.OutputToString()).To(Not(ContainSubstring(netName)))
}) })
It("podman network remove with two networks", func() {
netName1 := "net1"
session := podmanTest.Podman([]string{"network", "create", netName1})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(BeZero())
netName2 := "net2"
session = podmanTest.Podman([]string{"network", "create", netName2})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(BeZero())
session = podmanTest.Podman([]string{"network", "rm", netName1, netName2})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(BeZero())
lines := session.OutputToStringArray()
Expect(lines[0]).To(Equal(netName1))
Expect(lines[1]).To(Equal(netName2))
})
}) })