|
@@ -557,8 +557,8 @@ class Service(object):
|
|
|
container.attach_log_stream()
|
|
|
return self.start_container(container)
|
|
|
|
|
|
- def start_container(self, container):
|
|
|
- self.connect_container_to_networks(container)
|
|
|
+ def start_container(self, container, use_network_aliases=True):
|
|
|
+ self.connect_container_to_networks(container, use_network_aliases)
|
|
|
try:
|
|
|
container.start()
|
|
|
except APIError as ex:
|
|
@@ -574,7 +574,7 @@ class Service(object):
|
|
|
)
|
|
|
)
|
|
|
|
|
|
- def connect_container_to_networks(self, container):
|
|
|
+ def connect_container_to_networks(self, container, use_network_aliases=True):
|
|
|
connected_networks = container.get('NetworkSettings.Networks')
|
|
|
|
|
|
for network, netdefs in self.prioritized_networks.items():
|
|
@@ -583,10 +583,15 @@ class Service(object):
|
|
|
continue
|
|
|
self.client.disconnect_container_from_network(container.id, network)
|
|
|
|
|
|
- log.debug('Connecting to {}'.format(network))
|
|
|
+ self.client.disconnect_container_from_network(
|
|
|
+ container.id,
|
|
|
+ network)
|
|
|
+
|
|
|
+ aliases = self._get_aliases(netdefs) if use_network_aliases else []
|
|
|
+
|
|
|
self.client.connect_container_to_network(
|
|
|
container.id, network,
|
|
|
- aliases=self._get_aliases(netdefs, container),
|
|
|
+ aliases=aliases,
|
|
|
ipv4_address=netdefs.get('ipv4_address', None),
|
|
|
ipv6_address=netdefs.get('ipv6_address', None),
|
|
|
links=self._get_links(False),
|
|
@@ -691,15 +696,8 @@ class Service(object):
|
|
|
numbers = [c.number for c in containers]
|
|
|
return 1 if not numbers else max(numbers) + 1
|
|
|
|
|
|
- def _get_aliases(self, network, container=None):
|
|
|
- if container and container.labels.get(LABEL_ONE_OFF) == "True":
|
|
|
- return []
|
|
|
-
|
|
|
- return list(
|
|
|
- {self.name} |
|
|
|
- ({container.short_id} if container else set()) |
|
|
|
- set(network.get('aliases', ()))
|
|
|
- )
|
|
|
+ def _get_aliases(self, network):
|
|
|
+ return list({self.name} | set(network.get('aliases', ())))
|
|
|
|
|
|
def build_default_networking_config(self):
|
|
|
if not self.networks:
|