diff options
| author | Joffrey F <joffrey@docker.com> | 2015-10-08 08:02:48 -0700 |
|---|---|---|
| committer | Joffrey F <joffrey@docker.com> | 2015-10-08 08:02:48 -0700 |
| commit | 77df9c485d1b7f1efbb91f655d3cf19a18a6e3da (patch) | |
| tree | e1d6125270a8c02022562e38f9331a3eee87e213 /docker | |
| parent | 73e45ef3598dafd2ffbcc2e14b779f2ae0aa761d (diff) | |
| parent | 75e55f1805cbe7d40e340629bf32ac889131d260 (diff) | |
| download | docker-py-77df9c485d1b7f1efbb91f655d3cf19a18a6e3da.tar.gz | |
Merge branch 'aanand-networking'
Diffstat (limited to 'docker')
| -rw-r--r-- | docker/api/__init__.py | 1 | ||||
| -rw-r--r-- | docker/api/network.py | 55 | ||||
| -rw-r--r-- | docker/client.py | 3 |
3 files changed, 58 insertions, 1 deletions
diff --git a/docker/api/__init__.py b/docker/api/__init__.py index 7979634..9e74428 100644 --- a/docker/api/__init__.py +++ b/docker/api/__init__.py @@ -5,3 +5,4 @@ from .daemon import DaemonApiMixin from .exec_api import ExecApiMixin from .image import ImageApiMixin from .volume import VolumeApiMixin +from .network import NetworkApiMixin diff --git a/docker/api/network.py b/docker/api/network.py new file mode 100644 index 0000000..2dea679 --- /dev/null +++ b/docker/api/network.py @@ -0,0 +1,55 @@ +import json + +from ..utils import check_resource, minimum_version + + +class NetworkApiMixin(object): + @minimum_version('1.21') + def networks(self, names=None, ids=None): + filters = {} + if names: + filters['name'] = names + if ids: + filters['id'] = ids + + params = {'filters': json.dumps(filters)} + + url = self._url("/networks") + res = self._get(url, params=params) + return self._result(res, json=True) + + @minimum_version('1.21') + def create_network(self, name, driver=None): + data = { + 'name': name, + 'driver': driver, + } + url = self._url("/networks/create") + res = self._post_json(url, data=data) + return self._result(res, json=True) + + @minimum_version('1.21') + def remove_network(self, net_id): + url = self._url("/networks/{0}", net_id) + res = self._delete(url) + self._raise_for_status(res) + + @minimum_version('1.21') + def inspect_network(self, net_id): + url = self._url("/networks/{0}", net_id) + res = self._get(url) + return self._result(res, json=True) + + @check_resource + @minimum_version('1.21') + def connect_container_to_network(self, container, net_id): + data = {"container": container} + url = self._url("/networks/{0}/connect", net_id) + self._post_json(url, data=data) + + @check_resource + @minimum_version('1.21') + def disconnect_container_from_network(self, container, net_id): + data = {"container": container} + url = self._url("/networks/{0}/disconnect", net_id) + self._post_json(url, data=data) diff --git a/docker/client.py b/docker/client.py index 9decd61..79efc9f 100644 --- a/docker/client.py +++ b/docker/client.py @@ -39,7 +39,8 @@ class Client( api.DaemonApiMixin, api.ExecApiMixin, api.ImageApiMixin, - api.VolumeApiMixin): + api.VolumeApiMixin, + api.NetworkApiMixin): def __init__(self, base_url=None, version=None, timeout=constants.DEFAULT_TIMEOUT_SECONDS, tls=False): super(Client, self).__init__() |
