summaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorJoffrey F <joffrey@docker.com>2015-10-08 08:02:48 -0700
committerJoffrey F <joffrey@docker.com>2015-10-08 08:02:48 -0700
commit77df9c485d1b7f1efbb91f655d3cf19a18a6e3da (patch)
treee1d6125270a8c02022562e38f9331a3eee87e213 /docker
parent73e45ef3598dafd2ffbcc2e14b779f2ae0aa761d (diff)
parent75e55f1805cbe7d40e340629bf32ac889131d260 (diff)
downloaddocker-py-77df9c485d1b7f1efbb91f655d3cf19a18a6e3da.tar.gz
Merge branch 'aanand-networking'
Diffstat (limited to 'docker')
-rw-r--r--docker/api/__init__.py1
-rw-r--r--docker/api/network.py55
-rw-r--r--docker/client.py3
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__()