|
@@ -16,6 +16,7 @@ import (
|
|
|
"github.com/docker/docker/api/types/network"
|
|
|
"github.com/docker/docker/api/types/versions"
|
|
|
"github.com/docker/libnetwork"
|
|
|
+ netconst "github.com/docker/libnetwork/datastore"
|
|
|
"github.com/docker/libnetwork/networkdb"
|
|
|
)
|
|
|
|
|
@@ -135,6 +136,17 @@ func (n *networkRouter) getNetwork(ctx context.Context, w http.ResponseWriter, r
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ nwk, err := n.cluster.GetNetwork(term)
|
|
|
+ if err == nil {
|
|
|
+ // If the get network is passed with a specific network ID / partial network ID
|
|
|
+ // or if the get network was passed with a network name and scope as swarm
|
|
|
+ // return the network. Skipped using isMatchingScope because it is true if the scope
|
|
|
+ // is not set which would be case if the client API v1.30
|
|
|
+ if strings.HasPrefix(nwk.ID, term) || (netconst.SwarmScope == scope) {
|
|
|
+ return httputils.WriteJSON(w, http.StatusOK, nwk)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
nr, _ := n.cluster.GetNetworks()
|
|
|
for _, network := range nr {
|
|
|
if network.ID == term && isMatchingScope(network.Scope, scope) {
|