Alias containers by short id

Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
This commit is contained in:
Aanand Prasad 2016-01-25 16:14:21 +00:00
parent 5545c55ecc
commit 883227c4d8
2 changed files with 15 additions and 24 deletions

View File

@ -430,12 +430,16 @@ class Service(object):
return container
def connect_container_to_networks(self, container):
one_off = (container.labels.get(LABEL_ONE_OFF) == "True")
connected_networks = container.get('NetworkSettings.Networks')
for network in self.networks:
if network in connected_networks:
self.client.disconnect_container_from_network(
container.id, network)
self.client.connect_container_to_network(
container.id, network,
aliases=self._get_aliases(one_off=one_off),
aliases=self._get_aliases(container),
links=self._get_links(False),
)
@ -507,11 +511,11 @@ class Service(object):
numbers = [c.number for c in containers]
return 1 if not numbers else max(numbers) + 1
def _get_aliases(self, one_off):
if one_off:
def _get_aliases(self, container):
if container.labels.get(LABEL_ONE_OFF) == "True":
return []
return [self.name]
return [self.name, container.short_id]
def _get_links(self, link_to_self):
links = {}
@ -618,9 +622,6 @@ class Service(object):
override_options,
one_off=one_off)
container_options['networking_config'] = self._get_container_networking_config(
one_off=one_off)
return container_options
def _get_container_host_config(self, override_options, one_off=False):
@ -655,20 +656,6 @@ class Service(object):
cpu_quota=options.get('cpu_quota'),
)
def _get_container_networking_config(self, one_off=False):
if self.net.mode in ['host', 'bridge']:
return None
if self.net.mode not in self.networks:
return None
return self.client.create_networking_config({
self.net.mode: self.client.create_endpoint_config(
aliases=self._get_aliases(one_off=one_off),
links=self._get_links(False),
)
})
def build(self, no_cache=False, pull=False, force_rm=False):
log.info('Building %s' % self.name)

View File

@ -420,8 +420,12 @@ class CLITestCase(DockerClientTestCase):
container = containers[0]
self.assertIn(container.id, network['Containers'])
networks = list(container.get('NetworkSettings.Networks'))
self.assertEqual(networks, [network['Name']])
networks = container.get('NetworkSettings.Networks')
self.assertEqual(list(networks), [network['Name']])
self.assertEqual(
sorted(networks[network['Name']]['Aliases']),
sorted([service.name, container.short_id]))
for service in services:
assert self.lookup(container, service.name)