From d60b09ad105df2abab88d9a6c5fc4f6b6faadc60 Mon Sep 17 00:00:00 2001 From: David Gebler Date: Tue, 7 Jul 2015 14:36:28 +0100 Subject: [PATCH] address some review comments --- flocker/node/_docker.py | 5 +++-- flocker/node/functional/test_docker.py | 6 +++--- flocker/node/test/test_docker.py | 25 +++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/flocker/node/_docker.py b/flocker/node/_docker.py index c952131bb7..9ad2c01a4c 100644 --- a/flocker/node/_docker.py +++ b/flocker/node/_docker.py @@ -208,13 +208,14 @@ def exists(unit_name): otherwise ``False``. """ - def remove(unit_name): + def remove(unit_name, force): """ Stop and delete the given unit. This can be done multiple times in a row for the same unit. :param unicode unit_name: The name of the unit to stop. + :param bool force: Force removal of the unit. :return: ``Deferred`` that fires once the unit has been stopped and removed. @@ -271,7 +272,7 @@ def add(self, unit_name, image_name, ports=frozenset(), environment=None, def exists(self, unit_name): return succeed(unit_name in self._units) - def remove(self, unit_name): + def remove(self, unit_name, force=False): if unit_name in self._units: del self._units[unit_name] return succeed(None) diff --git a/flocker/node/functional/test_docker.py b/flocker/node/functional/test_docker.py index f6ed0fd01a..bd29b49df7 100644 --- a/flocker/node/functional/test_docker.py +++ b/flocker/node/functional/test_docker.py @@ -150,7 +150,7 @@ def test_force_remove(self): expected_states = (u'active',) d = client.add( unit_name=unit_name, - image_name=u'clusterhq/flask' + image_name=u"openshift/busybox-http-app" ) d.addCallback( lambda _: wait_for_unit_state( @@ -162,7 +162,7 @@ def check_is_listed(_): listed = client.list() def check_unit(results): - self.assertTrue(unit_name in [unit.name for unit in results]) + self.assertIn(unit_name, [unit.name for unit in results]) listed.addCallback(check_unit) return listed @@ -173,7 +173,7 @@ def check_is_removed(_): listed = client.list() def check_unit(results): - self.assertFalse(unit_name in [unit.name for unit in results]) + self.assertNotIn(unit_name, [unit.name for unit in results]) listed.addCallback(check_unit) return listed diff --git a/flocker/node/test/test_docker.py b/flocker/node/test/test_docker.py index c3a8b9b232..cf3227ab16 100644 --- a/flocker/node/test/test_docker.py +++ b/flocker/node/test/test_docker.py @@ -117,6 +117,31 @@ def test_removed_does_not_exist(self): d.addCallback(self.assertFalse) return d + def test_forced_removed_does_not_exist(self): + """ + A container removed with the ``force`` switch does not exist. + """ + client = fixture(self) + name = random_name(self) + image = u"openshift/busybox-http-app" + d = client.add(name, image) + d.addCallback(lambda _: client.list()) + expected = Unit( + name=name, container_name=name, activation_state=u"active", + container_image=image, + ) + + def got_units(units): + result = units.pop() + result = result.set("container_name", name) + self.assertEqual(expected, result) + + d.addCallback(got_units) + d.addCallback(lambda _: client.remove(name, force=True)) + d.addCallback(lambda _: client.exists(name)) + d.addCallback(self.assertFalse) + return d + def test_added_is_listed(self): """ An added container is included in the output of ``list()``.