Allowing running containers to be rm'd by stop flag

Signed-off-by: David McKay <david@rawkode.com>
This commit is contained in:
David McKay 2016-10-18 11:31:02 +01:00
parent a953651597
commit 1f9fb27456
2 changed files with 15 additions and 0 deletions

View File

@ -635,6 +635,7 @@ class TopLevelCommand(object):
Options:
-f, --force Don't ask to confirm removal
-s, --stop Stop the containers, if required, before removing
-v Remove any anonymous volumes attached to containers
-a, --all Deprecated - no effect.
"""
@ -645,6 +646,15 @@ class TopLevelCommand(object):
)
one_off = OneOffFilter.include
if options.get('--stop'):
running_containers = self.project.containers(
service_names=options['SERVICE'], stopped=False, one_off=one_off
)
self.project.stop(
service_names=running_containers,
one_off=one_off
)
all_containers = self.project.containers(
service_names=options['SERVICE'], stopped=True, one_off=one_off
)

View File

@ -1498,6 +1498,11 @@ class CLITestCase(DockerClientTestCase):
self.assertEqual(len(service.containers(stopped=True)), 1)
self.dispatch(['rm', '-f'], None)
self.assertEqual(len(service.containers(stopped=True)), 0)
service = self.project.get_service('simple')
service.create_container()
self.dispatch(['rm', '-fs'], None)
simple = self.project.get_service('simple')
self.assertEqual(len(simple.containers()), 0)
def test_rm_all(self):
service = self.project.get_service('simple')