Remove all non-external networks on down.

Also moves the shutdown test fixtures to be a more general v2-full fixture.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
This commit is contained in:
Daniel Nephin 2016-01-14 14:35:02 -05:00
parent 796d97e394
commit 0f234154c2
6 changed files with 39 additions and 22 deletions

View File

@ -65,7 +65,10 @@ class Network(object):
)
def remove(self):
# TODO: don't remove external networks
if self.external_name:
log.info("Network %s is external, skipping", self.full_name)
return
log.info("Removing network {}".format(self.full_name))
self.client.remove_network(self.full_name)

View File

@ -275,7 +275,7 @@ class Project(object):
def down(self, remove_image_type, include_volumes):
self.stop()
self.remove_stopped(v=include_volumes)
self.remove_default_network()
self.remove_networks()
if include_volumes:
self.remove_volumes()
@ -286,11 +286,11 @@ class Project(object):
for service in self.get_services():
service.remove_image(remove_image_type)
def remove_default_network(self):
def remove_networks(self):
if not self.use_networking:
return
if self.uses_default_network():
self.default_network.remove()
for network in self.networks:
network.remove()
def remove_volumes(self):
for volume in self.volumes:

View File

@ -340,16 +340,20 @@ class CLITestCase(DockerClientTestCase):
assert '--rmi flag must be' in result.stderr
def test_down(self):
self.base_dir = 'tests/fixtures/shutdown'
self.base_dir = 'tests/fixtures/v2-full'
self.dispatch(['up', '-d'])
wait_on_condition(ContainerCountCondition(self.project, 1))
wait_on_condition(ContainerCountCondition(self.project, 2))
result = self.dispatch(['down', '--rmi=local', '--volumes'])
assert 'Stopping shutdown_web_1' in result.stderr
assert 'Removing shutdown_web_1' in result.stderr
assert 'Removing volume shutdown_data' in result.stderr
assert 'Removing image shutdown_web' in result.stderr
assert 'Removing network shutdown_default' in result.stderr
assert 'Stopping v2full_web_1' in result.stderr
assert 'Stopping v2full_other_1' in result.stderr
assert 'Removing v2full_web_1' in result.stderr
assert 'Removing v2full_other_1' in result.stderr
assert 'Removing volume v2full_data' in result.stderr
assert 'Removing image v2full_web' in result.stderr
assert 'Removing image busybox' not in result.stderr
assert 'Removing network v2full_default' in result.stderr
assert 'Removing network v2full_front' in result.stderr
def test_up_detached(self):
self.dispatch(['up', '-d'])

View File

@ -1,10 +0,0 @@
version: 2
volumes:
data:
driver: local
services:
web:
build: .

View File

@ -0,0 +1,20 @@
version: 2
volumes:
data:
driver: local
networks:
front: {}
services:
web:
build: .
networks:
- front
- default
other:
image: busybox:latest
command: top