Add support for creating internal networks

Signed-off-by: Jonathan Giannuzzi <jonathan@giannuzzi.be>
This commit is contained in:
Jonathan Giannuzzi 2016-07-11 11:34:01 +02:00
commit 83f35e132b
7 changed files with 77 additions and 3 deletions

View file

@ -576,6 +576,24 @@ class CLITestCase(DockerClientTestCase):
assert 'forward_facing' in front_aliases
assert 'ahead' in front_aliases
@v2_only()
def test_up_with_network_internal(self):
self.require_api_version('1.23')
filename = 'network-internal.yml'
self.base_dir = 'tests/fixtures/networks'
self.dispatch(['-f', filename, 'up', '-d'], None)
internal_net = '{}_internal'.format(self.project.name)
networks = [
n for n in self.client.networks()
if n['Name'].startswith('{}_'.format(self.project.name))
]
# One network was created: internal
assert sorted(n['Name'] for n in networks) == [internal_net]
assert networks[0]['Internal'] is True
@v2_only()
def test_up_with_network_static_addresses(self):
filename = 'network-static-addresses.yml'

13
tests/fixtures/networks/network-internal.yml vendored Executable file
View file

@ -0,0 +1,13 @@
version: "2"
services:
web:
image: busybox
command: top
networks:
- internal
networks:
internal:
driver: bridge
internal: True

View file

@ -756,6 +756,33 @@ class ProjectTest(DockerClientTestCase):
with self.assertRaises(ProjectError):
project.up()
@v2_only()
def test_project_up_with_network_internal(self):
self.require_api_version('1.23')
config_data = config.Config(
version=V2_0,
services=[{
'name': 'web',
'image': 'busybox:latest',
'networks': {'internal': None},
}],
volumes={},
networks={
'internal': {'driver': 'bridge', 'internal': True},
},
)
project = Project.from_config(
client=self.client,
name='composetest',
config_data=config_data,
)
project.up()
network = self.client.networks(names=['composetest_internal'])[0]
assert network['Internal'] is True
@v2_only()
def test_project_up_volumes(self):
vol_name = '{0:x}'.format(random.getrandbits(32))

View file

@ -101,6 +101,10 @@ class ConfigTest(unittest.TestCase):
{'subnet': '172.28.0.0/16'}
]
}
},
'internal': {
'driver': 'bridge',
'internal': True
}
}
}, 'working_dir', 'filename.yml')
@ -140,6 +144,10 @@ class ConfigTest(unittest.TestCase):
{'subnet': '172.28.0.0/16'}
]
}
},
'internal': {
'driver': 'bridge',
'internal': True
}
})