Merge pull request #46 from orchardup/fix-port-syntax

Fix port syntax
This commit is contained in:
Ben Firshman 2014-01-22 09:13:54 -08:00
commit 84667636a2
2 changed files with 11 additions and 5 deletions

View File

@ -172,9 +172,10 @@ class Service(object):
port = str(port)
if ':' in port:
external_port, internal_port = port.split(':', 1)
port_bindings[int(internal_port)] = int(external_port)
else:
port_bindings[int(port)] = None
external_port, internal_port = (None, port)
port_bindings[internal_port] = external_port
volume_bindings = {}
@ -225,8 +226,8 @@ class Service(object):
port = str(port)
if ':' in port:
port = port.split(':')[-1]
if '/' not in port:
port = "%s/tcp" % port
if '/' in port:
port = tuple(port.split('/'))
ports.append(port)
container_options['ports'] = ports

View File

@ -184,9 +184,14 @@ class ServiceTest(DockerClientTestCase):
def test_start_container_creates_ports(self):
service = self.create_service('web', ports=[8000])
container = service.start_container().inspect()
self.assertIn('8000/tcp', container['HostConfig']['PortBindings'])
self.assertEqual(container['HostConfig']['PortBindings'].keys(), ['8000/tcp'])
self.assertNotEqual(container['HostConfig']['PortBindings']['8000/tcp'][0]['HostPort'], '8000')
def test_start_container_creates_port_with_explicit_protocol(self):
service = self.create_service('web', ports=['8000/udp'])
container = service.start_container().inspect()
self.assertEqual(container['HostConfig']['PortBindings'].keys(), ['8000/udp'])
def test_start_container_creates_fixed_external_ports(self):
service = self.create_service('web', ports=['8000:8000'])
container = service.start_container().inspect()