瀏覽代碼

Merge pull request #32169 from thaJeztah/fix-non-swarm-prune

Fix docker system prune failing with Swarm mode disabled
Brian Goff 8 年之前
父節點
當前提交
c7c7f36da7
共有 2 個文件被更改,包括 17 次插入0 次删除
  1. 12 0
      daemon/cluster.go
  2. 5 0
      daemon/prune.go

+ 12 - 0
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

+ 5 - 0
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