mirror of
https://github.com/docker/compose.git
synced 2025-07-28 08:04:09 +02:00
Only disconnect if we don't already have the short id alias.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
This commit is contained in:
parent
4e8b017283
commit
250a7a530b
@ -453,20 +453,21 @@ class Service(object):
|
|||||||
connected_networks = container.get('NetworkSettings.Networks')
|
connected_networks = container.get('NetworkSettings.Networks')
|
||||||
|
|
||||||
for network, netdefs in self.networks.items():
|
for network, netdefs in self.networks.items():
|
||||||
aliases = netdefs.get('aliases', [])
|
|
||||||
ipv4_address = netdefs.get('ipv4_address', None)
|
|
||||||
ipv6_address = netdefs.get('ipv6_address', None)
|
|
||||||
if network in connected_networks:
|
if network in connected_networks:
|
||||||
self.client.disconnect_container_from_network(
|
if short_id_alias_exists(container, network):
|
||||||
container.id, network)
|
continue
|
||||||
|
|
||||||
|
self.client.disconnect_container_from_network(
|
||||||
|
container.id,
|
||||||
|
network)
|
||||||
|
|
||||||
|
aliases = netdefs.get('aliases', [])
|
||||||
self.client.connect_container_to_network(
|
self.client.connect_container_to_network(
|
||||||
container.id, network,
|
container.id, network,
|
||||||
aliases=list(self._get_aliases(container).union(aliases)),
|
aliases=list(self._get_aliases(container).union(aliases)),
|
||||||
ipv4_address=ipv4_address,
|
ipv4_address=netdefs.get('ipv4_address', None),
|
||||||
ipv6_address=ipv6_address,
|
ipv6_address=netdefs.get('ipv6_address', None),
|
||||||
links=self._get_links(False)
|
links=self._get_links(False))
|
||||||
)
|
|
||||||
|
|
||||||
def remove_duplicate_containers(self, timeout=DEFAULT_TIMEOUT):
|
def remove_duplicate_containers(self, timeout=DEFAULT_TIMEOUT):
|
||||||
for c in self.duplicate_containers():
|
for c in self.duplicate_containers():
|
||||||
@ -796,6 +797,12 @@ class Service(object):
|
|||||||
log.error(six.text_type(e))
|
log.error(six.text_type(e))
|
||||||
|
|
||||||
|
|
||||||
|
def short_id_alias_exists(container, network):
|
||||||
|
aliases = container.get(
|
||||||
|
'NetworkSettings.Networks.{net}.Aliases'.format(net=network)) or ()
|
||||||
|
return container.short_id in aliases
|
||||||
|
|
||||||
|
|
||||||
class NetworkMode(object):
|
class NetworkMode(object):
|
||||||
"""A `standard` network mode (ex: host, bridge)"""
|
"""A `standard` network mode (ex: host, bridge)"""
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user