Merge pull request #1644 from aanand/fix-rm-bug

Stop 'rm' and 'ps' listing services not defined in the current file
(cherry picked from commit d85688892c)

Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
This commit is contained in:
Aanand Prasad 2015-07-03 16:22:48 +01:00
parent b12c29479e
commit c8295d36cc
2 changed files with 18 additions and 2 deletions

View File

@ -286,6 +286,9 @@ class Project(object):
def containers(self, service_names=None, stopped=False, one_off=False): def containers(self, service_names=None, stopped=False, one_off=False):
if service_names: if service_names:
self.validate_service_names(service_names) self.validate_service_names(service_names)
else:
service_names = self.service_names
containers = [ containers = [
Container.from_ps(self.client, container) Container.from_ps(self.client, container)
for container in self.client.containers( for container in self.client.containers(
@ -293,8 +296,6 @@ class Project(object):
filters={'label': self.labels(one_off=one_off)})] filters={'label': self.labels(one_off=one_off)})]
def matches_service_names(container): def matches_service_names(container):
if not service_names:
return True
return container.labels.get(LABEL_SERVICE) in service_names return container.labels.get(LABEL_SERVICE) in service_names
if not containers: if not containers:

View File

@ -29,6 +29,21 @@ class ProjectTest(DockerClientTestCase):
[c.name for c in containers], [c.name for c in containers],
['composetest_web_1']) ['composetest_web_1'])
def test_containers_with_extra_service(self):
web = self.create_service('web')
web_1 = web.create_container()
db = self.create_service('db')
db_1 = db.create_container()
self.create_service('extra').create_container()
project = Project('composetest', [web, db], self.client)
self.assertEqual(
set(project.containers(stopped=True)),
set([web_1, db_1]),
)
def test_volumes_from_service(self): def test_volumes_from_service(self):
service_dicts = config.from_dictionary({ service_dicts = config.from_dictionary({
'data': { 'data': {