Include networks in the config_hash.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
This commit is contained in:
Daniel Nephin 2016-01-29 16:30:24 -05:00 • committed by Aanand Prasad
commit 3b1276bd44
6 changed files with 19 additions and 10 deletions

View file

@ -136,7 +136,7 @@ class ProjectNetworks(object):
service_networks = {
network: networks.get(network)
for service in services
for network in service.get('networks', ['default'])
for network in get_network_names_for_service(service)
}
unused = set(networks) - set(service_networks) - {'default'}
if unused:
@ -159,12 +159,15 @@ class ProjectNetworks(object):
network.ensure()
def get_networks(service_dict, network_definitions):
def get_network_names_for_service(service_dict):
if 'network_mode' in service_dict:
return []
return service_dict.get('networks', ['default'])
def get_networks(service_dict, network_definitions):
networks = []
for name in service_dict.pop('networks', ['default']):
for name in get_network_names_for_service(service_dict):
network = network_definitions.get(name)
if network:
networks.append(network.full_name)
@ -172,4 +175,5 @@ def get_networks(service_dict, network_definitions):
raise ConfigurationError(
'Service "{}" uses an undefined network "{}"'
.format(service_dict['name'], name))
return networks

View file

@ -96,6 +96,7 @@ class Project(object):
project.services.append(
Service(
service_dict.pop('name'),
client=client,
project=name,
use_networking=use_networking,

View file

@ -472,6 +472,7 @@ class Service(object):
'image_id': self.image()['Id'],
'links': self.get_link_names(),
'net': self.network_mode.id,
'networks': self.networks,
'volumes_from': [
(v.source.name, v.mode)
for v in self.volumes_from if isinstance(v.source, Service)