Skip to content

Commit 17c6e05

Browse files
qazbnm456shin-
authored andcommitted
Add filters option to NetworkApiMixin.networks
Signed-off-by: Boik <[email protected]>
1 parent 206c184 commit 17c6e05

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

docker/api/network.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
1-
import json
2-
31
from ..errors import InvalidVersion
42
from ..utils import check_resource, minimum_version
53
from ..utils import version_lt
4+
from .. import utils
65

76

87
class NetworkApiMixin(object):
98
@minimum_version('1.21')
10-
def networks(self, names=None, ids=None):
9+
def networks(self, names=None, ids=None, filters=None):
1110
"""
1211
List networks. Similar to the ``docker networks ls`` command.
1312
1413
Args:
1514
names (list): List of names to filter by
1615
ids (list): List of ids to filter by
16+
filters (dict): Filters to be processed on the network list.
17+
Available filters:
18+
- ``driver=[<driver-name>]`` Matches a network's driver.
19+
- ``label=[<key>]`` or ``label=[<key>=<value>]``.
20+
- ``type=["custom"|"builtin"] `` Filters networks by type.
1721
1822
Returns:
1923
(dict): List of network objects.
@@ -23,14 +27,13 @@ def networks(self, names=None, ids=None):
2327
If the server returns an error.
2428
"""
2529

26-
filters = {}
30+
if filters is None:
31+
filters = {}
2732
if names:
2833
filters['name'] = names
2934
if ids:
3035
filters['id'] = ids
31-
32-
params = {'filters': json.dumps(filters)}
33-
36+
params = {'filters': utils.convert_filters(filters)}
3437
url = self._url("/networks")
3538
res = self._get(url, params=params)
3639
return self._result(res, json=True)

0 commit comments

Comments
 (0)