Browse Source

fail fast when network filter invalid

Signed-off-by: allencloud <allen.sun@daocloud.io>
allencloud 8 years ago
parent
commit
ee2925e2f9
2 changed files with 15 additions and 15 deletions
  1. 0 15
      api/server/router/network/filter.go
  2. 15 0
      api/server/router/network/network_routes.go

+ 0 - 15
api/server/router/network/filter.go

@@ -8,17 +8,6 @@ import (
 	"github.com/docker/docker/runconfig"
 )
 
-var (
-	// acceptedNetworkFilters is a list of acceptable filters
-	acceptedNetworkFilters = map[string]bool{
-		"driver": true,
-		"type":   true,
-		"name":   true,
-		"id":     true,
-		"label":  true,
-	}
-)
-
 func filterNetworkByType(nws []types.NetworkResource, netType string) (retNws []types.NetworkResource, err error) {
 	switch netType {
 	case "builtin":
@@ -47,10 +36,6 @@ func filterNetworks(nws []types.NetworkResource, filter filters.Args) ([]types.N
 		return nws, nil
 	}
 
-	if err := filter.Validate(acceptedNetworkFilters); err != nil {
-		return nil, err
-	}
-
 	displayNet := []types.NetworkResource{}
 	for _, nw := range nws {
 		if filter.Include("driver") {

+ 15 - 0
api/server/router/network/network_routes.go

@@ -14,6 +14,17 @@ import (
 	"github.com/docker/libnetwork/networkdb"
 )
 
+var (
+	// acceptedNetworkFilters is a list of acceptable filters
+	acceptedNetworkFilters = map[string]bool{
+		"driver": true,
+		"type":   true,
+		"name":   true,
+		"id":     true,
+		"label":  true,
+	}
+)
+
 func (n *networkRouter) getNetworksList(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
 	if err := httputils.ParseForm(r); err != nil {
 		return err
@@ -25,6 +36,10 @@ func (n *networkRouter) getNetworksList(ctx context.Context, w http.ResponseWrit
 		return err
 	}
 
+	if err := netFilters.Validate(acceptedNetworkFilters); err != nil {
+		return err
+	}
+
 	list := []types.NetworkResource{}
 
 	if nr, err := n.cluster.GetNetworks(); err == nil {