mirror of https://github.com/docker/docs.git
Merge pull request #2236 from dnephin/use_inspect_network
Use inspect network to query for an existing network
This commit is contained in:
commit
6f78271b82
|
@ -5,6 +5,7 @@ import logging
|
||||||
from functools import reduce
|
from functools import reduce
|
||||||
|
|
||||||
from docker.errors import APIError
|
from docker.errors import APIError
|
||||||
|
from docker.errors import NotFound
|
||||||
|
|
||||||
from .config import ConfigurationError
|
from .config import ConfigurationError
|
||||||
from .config import get_service_name_from_net
|
from .config import get_service_name_from_net
|
||||||
|
@ -363,9 +364,9 @@ class Project(object):
|
||||||
return [c for c in containers if matches_service_names(c)]
|
return [c for c in containers if matches_service_names(c)]
|
||||||
|
|
||||||
def get_network(self):
|
def get_network(self):
|
||||||
networks = self.client.networks(names=[self.name])
|
try:
|
||||||
if networks:
|
return self.client.inspect_network(self.name)
|
||||||
return networks[0]
|
except NotFound:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def ensure_network_exists(self):
|
def ensure_network_exists(self):
|
||||||
|
|
|
@ -187,7 +187,7 @@ class CLITestCase(DockerClientTestCase):
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_up_without_networking(self):
|
def test_up_without_networking(self):
|
||||||
self.require_engine_version("1.9")
|
self.require_api_version('1.21')
|
||||||
|
|
||||||
self.command.base_dir = 'tests/fixtures/links-composefile'
|
self.command.base_dir = 'tests/fixtures/links-composefile'
|
||||||
self.command.dispatch(['up', '-d'], None)
|
self.command.dispatch(['up', '-d'], None)
|
||||||
|
@ -205,7 +205,7 @@ class CLITestCase(DockerClientTestCase):
|
||||||
self.assertTrue(web_container.get('HostConfig.Links'))
|
self.assertTrue(web_container.get('HostConfig.Links'))
|
||||||
|
|
||||||
def test_up_with_networking(self):
|
def test_up_with_networking(self):
|
||||||
self.require_engine_version("1.9")
|
self.require_api_version('1.21')
|
||||||
|
|
||||||
self.command.base_dir = 'tests/fixtures/links-composefile'
|
self.command.base_dir = 'tests/fixtures/links-composefile'
|
||||||
self.command.dispatch(['--x-networking', 'up', '-d'], None)
|
self.command.dispatch(['--x-networking', 'up', '-d'], None)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from .testcases import DockerClientTestCase
|
from .testcases import DockerClientTestCase
|
||||||
|
from compose.cli.docker_client import docker_client
|
||||||
from compose.config import config
|
from compose.config import config
|
||||||
from compose.const import LABEL_PROJECT
|
from compose.const import LABEL_PROJECT
|
||||||
from compose.container import Container
|
from compose.container import Container
|
||||||
|
@ -96,6 +97,22 @@ class ProjectTest(DockerClientTestCase):
|
||||||
db = project.get_service('db')
|
db = project.get_service('db')
|
||||||
self.assertEqual(db._get_volumes_from(), [data_container.id + ':rw'])
|
self.assertEqual(db._get_volumes_from(), [data_container.id + ':rw'])
|
||||||
|
|
||||||
|
def test_get_network_does_not_exist(self):
|
||||||
|
self.require_api_version('1.21')
|
||||||
|
client = docker_client(version='1.21')
|
||||||
|
|
||||||
|
project = Project('composetest', [], client)
|
||||||
|
assert project.get_network() is None
|
||||||
|
|
||||||
|
def test_get_network(self):
|
||||||
|
self.require_api_version('1.21')
|
||||||
|
client = docker_client(version='1.21')
|
||||||
|
|
||||||
|
network_name = 'network_does_exist'
|
||||||
|
project = Project(network_name, [], client)
|
||||||
|
client.create_network(network_name)
|
||||||
|
assert project.get_network()['name'] == network_name
|
||||||
|
|
||||||
def test_net_from_service(self):
|
def test_net_from_service(self):
|
||||||
project = Project.from_dicts(
|
project = Project.from_dicts(
|
||||||
name='composetest',
|
name='composetest',
|
||||||
|
|
|
@ -76,11 +76,7 @@ class DockerClientTestCase(unittest.TestCase):
|
||||||
build_output = self.client.build(*args, **kwargs)
|
build_output = self.client.build(*args, **kwargs)
|
||||||
stream_output(build_output, open('/dev/null', 'w'))
|
stream_output(build_output, open('/dev/null', 'w'))
|
||||||
|
|
||||||
def require_engine_version(self, minimum):
|
def require_api_version(self, minimum):
|
||||||
# Drop '-dev' or '-rcN' suffix
|
api_version = self.client.version()['ApiVersion']
|
||||||
engine = self.client.version()['Version'].split('-', 1)[0]
|
if version_lt(api_version, minimum):
|
||||||
if version_lt(engine, minimum):
|
skip("API version is too low ({} < {})".format(api_version, minimum))
|
||||||
skip(
|
|
||||||
"Engine version is too low ({} < {})"
|
|
||||||
.format(engine, minimum)
|
|
||||||
)
|
|
||||||
|
|
Loading…
Reference in New Issue