summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoffrey F <joffrey@docker.com>2017-05-11 17:44:23 -0700
committerJoffrey F <joffrey@docker.com>2017-05-12 14:28:27 -0700
commit95297dc2e760b992d7d31d485a66d02728944f36 (patch)
tree5ef3893b1c2850a6dd5d9f0db3f9bd6cde55f586
parent007ab677a1ff7748596ca7703ad05d89a4c881cd (diff)
downloaddocker-py-1433-run-networks.tar.gz
Replace erroneous networks argument in containers.run with singular1433-run-networks
network equivalent. Small docfixes Signed-off-by: Joffrey F <joffrey@docker.com>
-rw-r--r--docker/models/containers.py23
-rw-r--r--docker/models/plugins.py4
-rw-r--r--docker/types/services.py2
-rw-r--r--tests/integration/models_containers_test.py19
-rw-r--r--tests/unit/models_containers_test.py5
5 files changed, 40 insertions, 13 deletions
diff --git a/docker/models/containers.py b/docker/models/containers.py
index 7a1cd71..4bb2cf8 100644
--- a/docker/models/containers.py
+++ b/docker/models/containers.py
@@ -147,7 +147,7 @@ class Container(Model):
Returns:
(generator or str): If ``stream=True``, a generator yielding
- response chunks. A string containing response data otherwise.
+ response chunks. A string containing response data otherwise.
Raises:
:py:class:`docker.errors.APIError`
@@ -546,10 +546,12 @@ class ContainerCollection(Collection):
behavior. Accepts number between 0 and 100.
memswap_limit (str or int): Maximum amount of memory + swap a
container is allowed to consume.
- networks (:py:class:`list`): A list of network names to connect
- this container to.
name (str): The name for this container.
nano_cpus (int): CPU quota in units of 10-9 CPUs.
+ network (str): Name of the network this container will be connected
+ to at creation time. You can connect to additional networks
+ using :py:meth:`Network.connect`. Incompatible with
+ ``network_mode``.
network_disabled (bool): Disable networking.
network_mode (str): One of:
@@ -559,6 +561,7 @@ class ContainerCollection(Collection):
- ``container:<name|id>`` Reuse another container's network
stack.
- ``host`` Use the host network stack.
+ Incompatible with ``network``.
oom_kill_disable (bool): Whether to disable OOM killer.
oom_score_adj (int): An integer value containing the score given
to the container in order to tune OOM killer preferences.
@@ -680,6 +683,12 @@ class ContainerCollection(Collection):
raise RuntimeError("The options 'detach' and 'remove' cannot be "
"used together.")
+ if kwargs.get('network') and kwargs.get('network_mode'):
+ raise RuntimeError(
+ 'The options "network" and "network_mode" can not be used '
+ 'together.'
+ )
+
try:
container = self.create(image=image, command=command,
detach=detach, **kwargs)
@@ -902,10 +911,10 @@ def _create_container_args(kwargs):
if volumes:
host_config_kwargs['binds'] = volumes
- networks = kwargs.pop('networks', [])
- if networks:
- create_kwargs['networking_config'] = {network: None
- for network in networks}
+ network = kwargs.pop('network', None)
+ if network:
+ create_kwargs['networking_config'] = {network: None}
+ host_config_kwargs['network_mode'] = network
# All kwargs should have been consumed by this point, so raise
# error if any are left
diff --git a/docker/models/plugins.py b/docker/models/plugins.py
index 6cdf01c..0688018 100644
--- a/docker/models/plugins.py
+++ b/docker/models/plugins.py
@@ -103,8 +103,8 @@ class Plugin(Model):
Args:
remote (string): Remote reference to upgrade to. The
- ``:latest`` tag is optional and is the default if omitted.
- Default: this plugin's name.
+ ``:latest`` tag is optional and is the default if omitted.
+ Default: this plugin's name.
Returns:
A generator streaming the decoded API logs
diff --git a/docker/types/services.py b/docker/types/services.py
index 07409cd..012f7b0 100644
--- a/docker/types/services.py
+++ b/docker/types/services.py
@@ -127,7 +127,7 @@ class ContainerSpec(dict):
class Mount(dict):
"""
Describes a mounted folder's configuration inside a container. A list of
- :py:class:`Mount`s would be used as part of a
+ :py:class:`Mount` would be used as part of a
:py:class:`~docker.types.ContainerSpec`.
Args:
diff --git a/tests/integration/models_containers_test.py b/tests/integration/models_containers_test.py
index 4f1e6a1..b76a88f 100644
--- a/tests/integration/models_containers_test.py
+++ b/tests/integration/models_containers_test.py
@@ -1,6 +1,7 @@
import docker
import tempfile
from .base import BaseIntegrationTest, TEST_API_VERSION
+from ..helpers import random_name
class ContainerCollectionTest(BaseIntegrationTest):
@@ -69,6 +70,24 @@ class ContainerCollectionTest(BaseIntegrationTest):
)
self.assertEqual(out, b'hello\n')
+ def test_run_with_network(self):
+ net_name = random_name()
+ client = docker.from_env(version=TEST_API_VERSION)
+ client.networks.create(net_name)
+ self.tmp_networks.append(net_name)
+
+ container = client.containers.run(
+ 'alpine', 'echo hello world', network=net_name,
+ detach=True
+ )
+ self.tmp_containers.append(container.id)
+
+ attrs = container.attrs
+
+ assert 'NetworkSettings' in attrs
+ assert 'Networks' in attrs['NetworkSettings']
+ assert list(attrs['NetworkSettings']['Networks'].keys()) == [net_name]
+
def test_get(self):
client = docker.from_env(version=TEST_API_VERSION)
container = client.containers.run("alpine", "sleep 300", detach=True)
diff --git a/tests/unit/models_containers_test.py b/tests/unit/models_containers_test.py
index 0fb69f3..70c8648 100644
--- a/tests/unit/models_containers_test.py
+++ b/tests/unit/models_containers_test.py
@@ -71,8 +71,7 @@ class ContainerCollectionTest(unittest.TestCase):
memswap_limit=456,
name='somename',
network_disabled=False,
- network_mode='blah',
- networks=['foo'],
+ network='foo',
oom_kill_disable=True,
oom_score_adj=5,
pid_mode='host',
@@ -153,7 +152,7 @@ class ContainerCollectionTest(unittest.TestCase):
'MemoryReservation': 123,
'MemorySwap': 456,
'MemorySwappiness': 2,
- 'NetworkMode': 'blah',
+ 'NetworkMode': 'foo',
'OomKillDisable': True,
'OomScoreAdj': 5,
'PidMode': 'host',