dotcloud/docker

View on GitHub
client/network_prune.go

Summary

Maintainability
A
3 hrs
Test Coverage
package client // import "github.com/docker/docker/client"

import (
    "context"
    "encoding/json"
    "fmt"

    "github.com/docker/docker/api/types/filters"
    "github.com/docker/docker/api/types/network"
)

// NetworksPrune requests the daemon to delete unused networks
func (cli *Client) NetworksPrune(ctx context.Context, pruneFilters filters.Args) (network.PruneReport, error) {
    if err := cli.NewVersionError(ctx, "1.25", "network prune"); err != nil {
        return network.PruneReport{}, err
    }

    query, err := getFiltersQuery(pruneFilters)
    if err != nil {
        return network.PruneReport{}, err
    }

    serverResp, err := cli.post(ctx, "/networks/prune", query, nil, nil)
    defer ensureReaderClosed(serverResp)
    if err != nil {
        return network.PruneReport{}, err
    }

    var report network.PruneReport
    if err := json.NewDecoder(serverResp.body).Decode(&report); err != nil {
        return network.PruneReport{}, fmt.Errorf("Error retrieving network prune report: %v", err)
    }

    return report, nil
}