Rename 'net' to 'network mode' in various classes/methods

Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
This commit is contained in:
Aanand Prasad 2016-01-25 14:27:12 +00:00
parent a9c623fdf2
commit ed1b204804
9 changed files with 81 additions and 82 deletions

View File

@ -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:

View File

@ -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', []))
]

View File

@ -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

View File

@ -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 = []

View File

@ -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):

View File

@ -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')

View File

@ -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')

View File

@ -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(

View File

@ -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'):