From 38224530f1f0e7d50a69512f8b13385dc53dd603 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Tue, 28 Mar 2017 12:46:26 +0200 Subject: [PATCH 1/2] Add NetworkManager and ClusterStatus interfaces Signed-off-by: Sebastiaan van Stijn Upstream-commit: 8f4f85dd5b5b6b7268428b8f95f56c1ba8608ac3 Component: engine --- components/engine/daemon/cluster.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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 From ba4d313c47cf276c91e8751e46db710a04d866a1 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Tue, 28 Mar 2017 12:46:42 +0200 Subject: [PATCH 2/2] Fix docker system prune failing with Swarm mode disabled Signed-off-by: Sebastiaan van Stijn Upstream-commit: 4f2ed03092def6d3ccfbb05d9df8e1b5f2f78149 Component: engine --- components/engine/daemon/prune.go | 5 +++++ 1 file changed, 5 insertions(+) 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