diff --git a/components/engine/daemon/cluster.go b/components/engine/daemon/cluster.go index 98b2aa1e04..b7970edbb5 100644 --- a/components/engine/daemon/cluster.go +++ b/components/engine/daemon/cluster.go @@ -6,6 +6,18 @@ import ( // Cluster is the interface for github.com/docker/docker/daemon/cluster.(*Cluster). type Cluster interface { + ClusterStatus + NetworkManager +} + +// ClusterStatus interface provides information about the Swarm status of the Cluster +type ClusterStatus interface { + IsAgent() bool + IsManager() bool +} + +// NetworkManager provides methods to manage networks +type NetworkManager interface { GetNetwork(input string) (apitypes.NetworkResource, error) GetNetworks() ([]apitypes.NetworkResource, error) RemoveNetwork(input string) error diff --git a/components/engine/daemon/prune.go b/components/engine/daemon/prune.go index eabb03503f..3af20a4e84 100644 --- a/components/engine/daemon/prune.go +++ b/components/engine/daemon/prune.go @@ -225,6 +225,11 @@ func (daemon *Daemon) clusterNetworksPrune(pruneFilters filters.Args) (*types.Ne until, _ := getUntilFromPruneFilters(pruneFilters) cluster := daemon.GetCluster() + + if !cluster.IsManager() { + return rep, nil + } + networks, err := cluster.GetNetworks() if err != nil { return rep, err