diff options
| author | Aanand Prasad <aanand.prasad@gmail.com> | 2015-09-23 17:00:37 +0200 |
|---|---|---|
| committer | Joffrey F <joffrey@docker.com> | 2015-10-14 17:26:50 -0700 |
| commit | 53589e5f0a4ddfc3cec8f48b5f3d807e2deb0ace (patch) | |
| tree | 10fdb46ecbd9ed961c92ca43ea0f774781a15cf8 /docker | |
| parent | a1393ee8ac4a55e6215079baacc9ec7777a9c965 (diff) | |
| download | docker-py-53589e5f0a4ddfc3cec8f48b5f3d807e2deb0ace.tar.gz | |
Implement methods for managing networks
Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
Diffstat (limited to 'docker')
| -rw-r--r-- | docker/api/__init__.py | 1 | ||||
| -rw-r--r-- | docker/api/network.py | 49 | ||||
| -rw-r--r-- | docker/client.py | 3 |
3 files changed, 52 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..f6ad4a7 --- /dev/null +++ b/docker/api/network.py @@ -0,0 +1,49 @@ +import json + +from ..utils import check_resource + + +class NetworkApiMixin(object): + 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) + + 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) + + def remove_network(self, net_id): + url = self._url("/networks/{0}", net_id) + res = self._delete(url) + self._raise_for_status(res) + + 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 + 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 + 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__() |
