diff options
author | Joffrey F <f.joffrey@gmail.com> | 2017-01-05 11:44:13 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-05 11:44:13 -0800 |
commit | 6d871990d207027bc73ab16eae539af280151016 (patch) | |
tree | 8b68d54630e71735129140c59396ca8b19f3831d | |
parent | edd3045ef178dee94e059717af3aedba28f9d70d (diff) | |
parent | 9047263354114dd3cd4e6cb7e5cdbd02fc0e61d7 (diff) | |
download | docker-py-6d871990d207027bc73ab16eae539af280151016.tar.gz |
Merge pull request #1362 from qazbnm456/add_filters_to_networks
Add filters option to NetworkApiMixin.networks
-rw-r--r-- | docker/api/network.py | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/docker/api/network.py b/docker/api/network.py index c58ea6e..7ccda55 100644 --- a/docker/api/network.py +++ b/docker/api/network.py @@ -1,19 +1,23 @@ -import json - from ..errors import InvalidVersion from ..utils import check_resource, minimum_version from ..utils import version_lt +from .. import utils class NetworkApiMixin(object): @minimum_version('1.21') - def networks(self, names=None, ids=None): + def networks(self, names=None, ids=None, filters=None): """ List networks. Similar to the ``docker networks ls`` command. Args: names (list): List of names to filter by ids (list): List of ids to filter by + filters (dict): Filters to be processed on the network list. + Available filters: + - ``driver=[<driver-name>]`` Matches a network's driver. + - ``label=[<key>]`` or ``label=[<key>=<value>]``. + - ``type=["custom"|"builtin"] `` Filters networks by type. Returns: (dict): List of network objects. @@ -23,14 +27,13 @@ class NetworkApiMixin(object): If the server returns an error. """ - filters = {} + if filters is None: + filters = {} if names: filters['name'] = names if ids: filters['id'] = ids - - params = {'filters': json.dumps(filters)} - + params = {'filters': utils.convert_filters(filters)} url = self._url("/networks") res = self._get(url, params=params) return self._result(res, json=True) |