mirror of https://github.com/docker/compose.git
Rename 'net' to 'network mode' in various classes/methods
Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
This commit is contained in:
parent
a9c623fdf2
commit
ed1b204804
|
@ -19,8 +19,8 @@ from .errors import CircularReference
|
|||
from .errors import ComposeFileNotFound
|
||||
from .errors import ConfigurationError
|
||||
from .interpolation import interpolate_environment_variables
|
||||
from .sort_services import get_container_name_from_net
|
||||
from .sort_services import get_service_name_from_net
|
||||
from .sort_services import get_container_name_from_network_mode
|
||||
from .sort_services import get_service_name_from_network_mode
|
||||
from .sort_services import sort_service_dicts
|
||||
from .types import parse_extra_hosts
|
||||
from .types import parse_restart_spec
|
||||
|
@ -492,12 +492,12 @@ def validate_extended_service_dict(service_dict, filename, service):
|
|||
"%s services with 'volumes_from' cannot be extended" % error_prefix)
|
||||
|
||||
if 'net' in service_dict:
|
||||
if get_container_name_from_net(service_dict['net']):
|
||||
if get_container_name_from_network_mode(service_dict['net']):
|
||||
raise ConfigurationError(
|
||||
"%s services with 'net: container' cannot be extended" % error_prefix)
|
||||
|
||||
if 'network_mode' in service_dict:
|
||||
if get_service_name_from_net(service_dict['network_mode']):
|
||||
if get_service_name_from_network_mode(service_dict['network_mode']):
|
||||
raise ConfigurationError(
|
||||
"%s services with 'network_mode: service' cannot be extended" % error_prefix)
|
||||
|
||||
|
@ -575,7 +575,7 @@ def finalize_service(service_config, service_names, version):
|
|||
|
||||
if 'net' in service_dict:
|
||||
network_mode = service_dict.pop('net')
|
||||
container_name = get_container_name_from_net(network_mode)
|
||||
container_name = get_container_name_from_network_mode(network_mode)
|
||||
if container_name and container_name in service_names:
|
||||
service_dict['network_mode'] = 'service:{}'.format(container_name)
|
||||
else:
|
||||
|
|
|
@ -4,22 +4,22 @@ from __future__ import unicode_literals
|
|||
from compose.config.errors import DependencyError
|
||||
|
||||
|
||||
def get_service_name_from_net(net_config):
|
||||
return get_source_name_from_net(net_config, 'service')
|
||||
def get_service_name_from_network_mode(network_mode):
|
||||
return get_source_name_from_network_mode(network_mode, 'service')
|
||||
|
||||
|
||||
def get_container_name_from_net(net_config):
|
||||
return get_source_name_from_net(net_config, 'container')
|
||||
def get_container_name_from_network_mode(network_mode):
|
||||
return get_source_name_from_network_mode(network_mode, 'container')
|
||||
|
||||
|
||||
def get_source_name_from_net(net_config, source_type):
|
||||
if not net_config:
|
||||
def get_source_name_from_network_mode(network_mode, source_type):
|
||||
if not network_mode:
|
||||
return
|
||||
|
||||
if not net_config.startswith(source_type+':'):
|
||||
if not network_mode.startswith(source_type+':'):
|
||||
return
|
||||
|
||||
_, net_name = net_config.split(':', 1)
|
||||
_, net_name = network_mode.split(':', 1)
|
||||
return net_name
|
||||
|
||||
|
||||
|
@ -41,7 +41,7 @@ def sort_service_dicts(services):
|
|||
service for service in services
|
||||
if (name in get_service_names(service.get('links', [])) or
|
||||
name in get_service_names_from_volumes_from(service.get('volumes_from', [])) or
|
||||
name == get_service_name_from_net(service.get('network_mode')) or
|
||||
name == get_service_name_from_network_mode(service.get('network_mode')) or
|
||||
name in service.get('depends_on', []))
|
||||
]
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ from jsonschema import RefResolver
|
|||
from jsonschema import ValidationError
|
||||
|
||||
from .errors import ConfigurationError
|
||||
from .sort_services import get_service_name_from_net
|
||||
from .sort_services import get_service_name_from_network_mode
|
||||
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
@ -156,7 +156,7 @@ def validate_network_mode(service_config, service_names):
|
|||
if 'networks' in service_config.config:
|
||||
raise ConfigurationError("'network_mode' and 'networks' cannot be combined")
|
||||
|
||||
dependency = get_service_name_from_net(network_mode)
|
||||
dependency = get_service_name_from_network_mode(network_mode)
|
||||
if not dependency:
|
||||
return
|
||||
|
||||
|
|
|
@ -10,8 +10,8 @@ from docker.errors import NotFound
|
|||
|
||||
from . import parallel
|
||||
from .config import ConfigurationError
|
||||
from .config.sort_services import get_container_name_from_net
|
||||
from .config.sort_services import get_service_name_from_net
|
||||
from .config.sort_services import get_container_name_from_network_mode
|
||||
from .config.sort_services import get_service_name_from_network_mode
|
||||
from .const import DEFAULT_TIMEOUT
|
||||
from .const import IMAGE_EVENTS
|
||||
from .const import LABEL_ONE_OFF
|
||||
|
@ -19,11 +19,11 @@ from .const import LABEL_PROJECT
|
|||
from .const import LABEL_SERVICE
|
||||
from .container import Container
|
||||
from .network import Network
|
||||
from .service import ContainerNet
|
||||
from .service import ContainerNetworkMode
|
||||
from .service import ConvergenceStrategy
|
||||
from .service import Net
|
||||
from .service import NetworkMode
|
||||
from .service import Service
|
||||
from .service import ServiceNet
|
||||
from .service import ServiceNetworkMode
|
||||
from .utils import microseconds_from_time_nano
|
||||
from .volume import Volume
|
||||
|
||||
|
@ -91,7 +91,7 @@ class Project(object):
|
|||
networks = []
|
||||
|
||||
links = project.get_links(service_dict)
|
||||
net = project.get_net(service_dict, networks)
|
||||
network_mode = project.get_network_mode(service_dict, networks)
|
||||
volumes_from = get_volumes_from(project, service_dict)
|
||||
|
||||
if config_data.version == 2:
|
||||
|
@ -110,7 +110,7 @@ class Project(object):
|
|||
use_networking=use_networking,
|
||||
networks=networks,
|
||||
links=links,
|
||||
net=net,
|
||||
network_mode=network_mode,
|
||||
volumes_from=volumes_from,
|
||||
**service_dict)
|
||||
)
|
||||
|
@ -197,27 +197,27 @@ class Project(object):
|
|||
del service_dict['links']
|
||||
return links
|
||||
|
||||
def get_net(self, service_dict, networks):
|
||||
net = service_dict.pop('network_mode', None)
|
||||
if not net:
|
||||
def get_network_mode(self, service_dict, networks):
|
||||
network_mode = service_dict.pop('network_mode', None)
|
||||
if not network_mode:
|
||||
if self.use_networking:
|
||||
return Net(networks[0]) if networks else Net('none')
|
||||
return Net(None)
|
||||
return NetworkMode(networks[0]) if networks else NetworkMode('none')
|
||||
return NetworkMode(None)
|
||||
|
||||
service_name = get_service_name_from_net(net)
|
||||
service_name = get_service_name_from_network_mode(network_mode)
|
||||
if service_name:
|
||||
return ServiceNet(self.get_service(service_name))
|
||||
return ServiceNetworkMode(self.get_service(service_name))
|
||||
|
||||
container_name = get_container_name_from_net(net)
|
||||
container_name = get_container_name_from_network_mode(network_mode)
|
||||
if container_name:
|
||||
try:
|
||||
return ContainerNet(Container.from_id(self.client, container_name))
|
||||
return ContainerNetworkMode(Container.from_id(self.client, container_name))
|
||||
except APIError:
|
||||
raise ConfigurationError(
|
||||
"Service '{name}' uses the network stack of container '{dep}' which "
|
||||
"does not exist.".format(name=service_dict['name'], dep=container_name))
|
||||
|
||||
return Net(net)
|
||||
return NetworkMode(network_mode)
|
||||
|
||||
def start(self, service_names=None, **options):
|
||||
containers = []
|
||||
|
|
|
@ -47,7 +47,6 @@ DOCKER_START_KEYS = [
|
|||
'extra_hosts',
|
||||
'ipc',
|
||||
'read_only',
|
||||
'net',
|
||||
'log_driver',
|
||||
'log_opt',
|
||||
'mem_limit',
|
||||
|
@ -113,7 +112,7 @@ class Service(object):
|
|||
use_networking=False,
|
||||
links=None,
|
||||
volumes_from=None,
|
||||
net=None,
|
||||
network_mode=None,
|
||||
networks=None,
|
||||
**options
|
||||
):
|
||||
|
@ -123,7 +122,7 @@ class Service(object):
|
|||
self.use_networking = use_networking
|
||||
self.links = links or []
|
||||
self.volumes_from = volumes_from or []
|
||||
self.net = net or Net(None)
|
||||
self.network_mode = network_mode or NetworkMode(None)
|
||||
self.networks = networks or []
|
||||
self.options = options
|
||||
|
||||
|
@ -472,7 +471,7 @@ class Service(object):
|
|||
'options': self.options,
|
||||
'image_id': self.image()['Id'],
|
||||
'links': self.get_link_names(),
|
||||
'net': self.net.id,
|
||||
'net': self.network_mode.id,
|
||||
'volumes_from': [
|
||||
(v.source.name, v.mode)
|
||||
for v in self.volumes_from if isinstance(v.source, Service)
|
||||
|
@ -480,7 +479,7 @@ class Service(object):
|
|||
}
|
||||
|
||||
def get_dependency_names(self):
|
||||
net_name = self.net.service_name
|
||||
net_name = self.network_mode.service_name
|
||||
return (self.get_linked_service_names() +
|
||||
self.get_volumes_from_names() +
|
||||
([net_name] if net_name else []) +
|
||||
|
@ -636,7 +635,7 @@ class Service(object):
|
|||
binds=options.get('binds'),
|
||||
volumes_from=self._get_volumes_from(),
|
||||
privileged=options.get('privileged', False),
|
||||
network_mode=self.net.mode,
|
||||
network_mode=self.network_mode.mode,
|
||||
devices=options.get('devices'),
|
||||
dns=options.get('dns'),
|
||||
dns_search=options.get('dns_search'),
|
||||
|
@ -774,22 +773,22 @@ class Service(object):
|
|||
log.error(six.text_type(e))
|
||||
|
||||
|
||||
class Net(object):
|
||||
class NetworkMode(object):
|
||||
"""A `standard` network mode (ex: host, bridge)"""
|
||||
|
||||
service_name = None
|
||||
|
||||
def __init__(self, net):
|
||||
self.net = net
|
||||
def __init__(self, network_mode):
|
||||
self.network_mode = network_mode
|
||||
|
||||
@property
|
||||
def id(self):
|
||||
return self.net
|
||||
return self.network_mode
|
||||
|
||||
mode = id
|
||||
|
||||
|
||||
class ContainerNet(object):
|
||||
class ContainerNetworkMode(object):
|
||||
"""A network mode that uses a container's network stack."""
|
||||
|
||||
service_name = None
|
||||
|
@ -806,7 +805,7 @@ class ContainerNet(object):
|
|||
return 'container:' + self.container.id
|
||||
|
||||
|
||||
class ServiceNet(object):
|
||||
class ServiceNetworkMode(object):
|
||||
"""A network mode that uses a service's network stack."""
|
||||
|
||||
def __init__(self, service):
|
||||
|
|
|
@ -131,7 +131,7 @@ class ProjectTest(DockerClientTestCase):
|
|||
|
||||
web = project.get_service('web')
|
||||
net = project.get_service('net')
|
||||
self.assertEqual(web.net.mode, 'container:' + net.containers()[0].id)
|
||||
self.assertEqual(web.network_mode.mode, 'container:' + net.containers()[0].id)
|
||||
|
||||
@v2_only()
|
||||
def test_network_mode_from_container(self):
|
||||
|
@ -168,7 +168,7 @@ class ProjectTest(DockerClientTestCase):
|
|||
project.up()
|
||||
|
||||
web = project.get_service('web')
|
||||
self.assertEqual(web.net.mode, 'container:' + net_container.id)
|
||||
self.assertEqual(web.network_mode.mode, 'container:' + net_container.id)
|
||||
|
||||
def test_net_from_service_v1(self):
|
||||
project = Project.from_config(
|
||||
|
@ -191,7 +191,7 @@ class ProjectTest(DockerClientTestCase):
|
|||
|
||||
web = project.get_service('web')
|
||||
net = project.get_service('net')
|
||||
self.assertEqual(web.net.mode, 'container:' + net.containers()[0].id)
|
||||
self.assertEqual(web.network_mode.mode, 'container:' + net.containers()[0].id)
|
||||
|
||||
def test_net_from_container_v1(self):
|
||||
def get_project():
|
||||
|
@ -224,7 +224,7 @@ class ProjectTest(DockerClientTestCase):
|
|||
project.up()
|
||||
|
||||
web = project.get_service('web')
|
||||
self.assertEqual(web.net.mode, 'container:' + net_container.id)
|
||||
self.assertEqual(web.network_mode.mode, 'container:' + net_container.id)
|
||||
|
||||
def test_start_pause_unpause_stop_kill_remove(self):
|
||||
web = self.create_service('web')
|
||||
|
|
|
@ -26,7 +26,7 @@ from compose.const import LABEL_VERSION
|
|||
from compose.container import Container
|
||||
from compose.service import ConvergencePlan
|
||||
from compose.service import ConvergenceStrategy
|
||||
from compose.service import Net
|
||||
from compose.service import NetworkMode
|
||||
from compose.service import Service
|
||||
|
||||
|
||||
|
@ -752,17 +752,17 @@ class ServiceTest(DockerClientTestCase):
|
|||
assert len(service.containers(stopped=True)) == 2
|
||||
|
||||
def test_network_mode_none(self):
|
||||
service = self.create_service('web', net=Net('none'))
|
||||
service = self.create_service('web', network_mode=NetworkMode('none'))
|
||||
container = create_and_start_container(service)
|
||||
self.assertEqual(container.get('HostConfig.NetworkMode'), 'none')
|
||||
|
||||
def test_network_mode_bridged(self):
|
||||
service = self.create_service('web', net=Net('bridge'))
|
||||
service = self.create_service('web', network_mode=NetworkMode('bridge'))
|
||||
container = create_and_start_container(service)
|
||||
self.assertEqual(container.get('HostConfig.NetworkMode'), 'bridge')
|
||||
|
||||
def test_network_mode_host(self):
|
||||
service = self.create_service('web', net=Net('host'))
|
||||
service = self.create_service('web', network_mode=NetworkMode('host'))
|
||||
container = create_and_start_container(service)
|
||||
self.assertEqual(container.get('HostConfig.NetworkMode'), 'host')
|
||||
|
||||
|
|
|
@ -349,7 +349,7 @@ class ProjectTest(unittest.TestCase):
|
|||
),
|
||||
)
|
||||
service = project.get_service('test')
|
||||
self.assertEqual(service.net.id, None)
|
||||
self.assertEqual(service.network_mode.id, None)
|
||||
self.assertNotIn('NetworkMode', service._get_container_host_config({}))
|
||||
|
||||
def test_use_net_from_container(self):
|
||||
|
@ -373,7 +373,7 @@ class ProjectTest(unittest.TestCase):
|
|||
),
|
||||
)
|
||||
service = project.get_service('test')
|
||||
self.assertEqual(service.net.mode, 'container:' + container_id)
|
||||
self.assertEqual(service.network_mode.mode, 'container:' + container_id)
|
||||
|
||||
def test_use_net_from_service(self):
|
||||
container_name = 'test_aaa_1'
|
||||
|
@ -407,7 +407,7 @@ class ProjectTest(unittest.TestCase):
|
|||
)
|
||||
|
||||
service = project.get_service('test')
|
||||
self.assertEqual(service.net.mode, 'container:' + container_name)
|
||||
self.assertEqual(service.network_mode.mode, 'container:' + container_name)
|
||||
|
||||
def test_uses_default_network_true(self):
|
||||
project = Project.from_config(
|
||||
|
|
|
@ -15,16 +15,16 @@ from compose.const import LABEL_SERVICE
|
|||
from compose.container import Container
|
||||
from compose.service import build_ulimits
|
||||
from compose.service import build_volume_binding
|
||||
from compose.service import ContainerNet
|
||||
from compose.service import ContainerNetworkMode
|
||||
from compose.service import get_container_data_volumes
|
||||
from compose.service import ImageType
|
||||
from compose.service import merge_volume_bindings
|
||||
from compose.service import NeedsBuildError
|
||||
from compose.service import Net
|
||||
from compose.service import NetworkMode
|
||||
from compose.service import NoSuchImageError
|
||||
from compose.service import parse_repository_tag
|
||||
from compose.service import Service
|
||||
from compose.service import ServiceNet
|
||||
from compose.service import ServiceNetworkMode
|
||||
from compose.service import warn_on_masked_volume
|
||||
|
||||
|
||||
|
@ -407,7 +407,7 @@ class ServiceTest(unittest.TestCase):
|
|||
'foo',
|
||||
image='example.com/foo',
|
||||
client=self.mock_client,
|
||||
net=ServiceNet(Service('other')),
|
||||
network_mode=ServiceNetworkMode(Service('other')),
|
||||
links=[(Service('one'), 'one')],
|
||||
volumes_from=[VolumeFromSpec(Service('two'), 'rw', 'service')])
|
||||
|
||||
|
@ -421,7 +421,7 @@ class ServiceTest(unittest.TestCase):
|
|||
}
|
||||
self.assertEqual(config_dict, expected)
|
||||
|
||||
def test_config_dict_with_net_from_container(self):
|
||||
def test_config_dict_with_network_mode_from_container(self):
|
||||
self.mock_client.inspect_image.return_value = {'Id': 'abcd'}
|
||||
container = Container(
|
||||
self.mock_client,
|
||||
|
@ -430,7 +430,7 @@ class ServiceTest(unittest.TestCase):
|
|||
'foo',
|
||||
image='example.com/foo',
|
||||
client=self.mock_client,
|
||||
net=container)
|
||||
network_mode=ContainerNetworkMode(container))
|
||||
|
||||
config_dict = service.config_dict()
|
||||
expected = {
|
||||
|
@ -589,20 +589,20 @@ class BuildUlimitsTestCase(unittest.TestCase):
|
|||
|
||||
class NetTestCase(unittest.TestCase):
|
||||
|
||||
def test_net(self):
|
||||
net = Net('host')
|
||||
self.assertEqual(net.id, 'host')
|
||||
self.assertEqual(net.mode, 'host')
|
||||
self.assertEqual(net.service_name, None)
|
||||
def test_network_mode(self):
|
||||
network_mode = NetworkMode('host')
|
||||
self.assertEqual(network_mode.id, 'host')
|
||||
self.assertEqual(network_mode.mode, 'host')
|
||||
self.assertEqual(network_mode.service_name, None)
|
||||
|
||||
def test_net_container(self):
|
||||
def test_network_mode_container(self):
|
||||
container_id = 'abcd'
|
||||
net = ContainerNet(Container(None, {'Id': container_id}))
|
||||
self.assertEqual(net.id, container_id)
|
||||
self.assertEqual(net.mode, 'container:' + container_id)
|
||||
self.assertEqual(net.service_name, None)
|
||||
network_mode = ContainerNetworkMode(Container(None, {'Id': container_id}))
|
||||
self.assertEqual(network_mode.id, container_id)
|
||||
self.assertEqual(network_mode.mode, 'container:' + container_id)
|
||||
self.assertEqual(network_mode.service_name, None)
|
||||
|
||||
def test_net_service(self):
|
||||
def test_network_mode_service(self):
|
||||
container_id = 'bbbb'
|
||||
service_name = 'web'
|
||||
mock_client = mock.create_autospec(docker.Client)
|
||||
|
@ -611,23 +611,23 @@ class NetTestCase(unittest.TestCase):
|
|||
]
|
||||
|
||||
service = Service(name=service_name, client=mock_client)
|
||||
net = ServiceNet(service)
|
||||
network_mode = ServiceNetworkMode(service)
|
||||
|
||||
self.assertEqual(net.id, service_name)
|
||||
self.assertEqual(net.mode, 'container:' + container_id)
|
||||
self.assertEqual(net.service_name, service_name)
|
||||
self.assertEqual(network_mode.id, service_name)
|
||||
self.assertEqual(network_mode.mode, 'container:' + container_id)
|
||||
self.assertEqual(network_mode.service_name, service_name)
|
||||
|
||||
def test_net_service_no_containers(self):
|
||||
def test_network_mode_service_no_containers(self):
|
||||
service_name = 'web'
|
||||
mock_client = mock.create_autospec(docker.Client)
|
||||
mock_client.containers.return_value = []
|
||||
|
||||
service = Service(name=service_name, client=mock_client)
|
||||
net = ServiceNet(service)
|
||||
network_mode = ServiceNetworkMode(service)
|
||||
|
||||
self.assertEqual(net.id, service_name)
|
||||
self.assertEqual(net.mode, None)
|
||||
self.assertEqual(net.service_name, service_name)
|
||||
self.assertEqual(network_mode.id, service_name)
|
||||
self.assertEqual(network_mode.mode, None)
|
||||
self.assertEqual(network_mode.service_name, service_name)
|
||||
|
||||
|
||||
def build_mount(destination, source, mode='rw'):
|
||||
|
|
Loading…
Reference in New Issue