mirror of https://github.com/docker/compose.git
Use inspect network to query for an existing network.
And more tests for get_network() Signed-off-by: Daniel Nephin <dnephin@docker.com>
This commit is contained in:
parent
c34a9f165d
commit
0fed5e6864
|
@ -5,6 +5,7 @@ import logging
|
|||
from functools import reduce
|
||||
|
||||
from docker.errors import APIError
|
||||
from docker.errors import NotFound
|
||||
|
||||
from .config import ConfigurationError
|
||||
from .config import get_service_name_from_net
|
||||
|
@ -363,10 +364,10 @@ class Project(object):
|
|||
return [c for c in containers if matches_service_names(c)]
|
||||
|
||||
def get_network(self):
|
||||
networks = self.client.networks(names=[self.name])
|
||||
if networks:
|
||||
return networks[0]
|
||||
return None
|
||||
try:
|
||||
return self.client.inspect_network(self.name)
|
||||
except NotFound:
|
||||
return None
|
||||
|
||||
def ensure_network_exists(self):
|
||||
# TODO: recreate network if driver has changed?
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
from __future__ import unicode_literals
|
||||
|
||||
from .testcases import DockerClientTestCase
|
||||
from compose.cli.docker_client import docker_client
|
||||
from compose.config import config
|
||||
from compose.const import LABEL_PROJECT
|
||||
from compose.container import Container
|
||||
|
@ -96,6 +97,22 @@ class ProjectTest(DockerClientTestCase):
|
|||
db = project.get_service('db')
|
||||
self.assertEqual(db._get_volumes_from(), [data_container.id + ':rw'])
|
||||
|
||||
def test_get_network_does_not_exist(self):
|
||||
self.require_engine_version("1.9")
|
||||
client = docker_client(version='1.21')
|
||||
|
||||
project = Project('composetest', [], client)
|
||||
assert project.get_network() is None
|
||||
|
||||
def test_get_network(self):
|
||||
self.require_engine_version("1.9")
|
||||
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):
|
||||
project = Project.from_dicts(
|
||||
name='composetest',
|
||||
|
|
Loading…
Reference in New Issue