Make smart recreate the default

Add --force-recreate flag to enable the old default behaviour of
recreating everything.

Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
This commit is contained in:
Aanand Prasad 2015-07-15 16:19:39 +01:00
commit ced94a3504
8 changed files with 77 additions and 53 deletions

View file

@ -12,7 +12,6 @@ from .testcases import DockerClientTestCase
class ProjectTestCase(DockerClientTestCase):
def run_up(self, cfg, **kwargs):
kwargs.setdefault('smart_recreate', True)
kwargs.setdefault('timeout', 1)
project = self.make_project(cfg)
@ -155,7 +154,7 @@ class ProjectWithDependenciesTest(ProjectTestCase):
def converge(service,
allow_recreate=True,
smart_recreate=False,
force_recreate=False,
insecure_registry=False,
do_build=True):
"""
@ -164,7 +163,7 @@ def converge(service,
"""
plan = service.convergence_plan(
allow_recreate=allow_recreate,
smart_recreate=smart_recreate,
force_recreate=force_recreate,
)
return service.execute_convergence_plan(
@ -180,7 +179,7 @@ class ServiceStateTest(DockerClientTestCase):
def test_trigger_create(self):
web = self.create_service('web')
self.assertEqual(('create', []), web.convergence_plan(smart_recreate=True))
self.assertEqual(('create', []), web.convergence_plan())
def test_trigger_noop(self):
web = self.create_service('web')
@ -188,7 +187,7 @@ class ServiceStateTest(DockerClientTestCase):
web.start()
web = self.create_service('web')
self.assertEqual(('noop', [container]), web.convergence_plan(smart_recreate=True))
self.assertEqual(('noop', [container]), web.convergence_plan())
def test_trigger_start(self):
options = dict(command=["top"])
@ -205,7 +204,7 @@ class ServiceStateTest(DockerClientTestCase):
web = self.create_service('web', **options)
self.assertEqual(
('start', containers[0:1]),
web.convergence_plan(smart_recreate=True),
web.convergence_plan(),
)
def test_trigger_recreate_with_config_change(self):
@ -213,14 +212,14 @@ class ServiceStateTest(DockerClientTestCase):
container = web.create_container()
web = self.create_service('web', command=["top", "-d", "1"])
self.assertEqual(('recreate', [container]), web.convergence_plan(smart_recreate=True))
self.assertEqual(('recreate', [container]), web.convergence_plan())
def test_trigger_recreate_with_nonexistent_image_tag(self):
web = self.create_service('web', image="busybox:latest")
container = web.create_container()
web = self.create_service('web', image="nonexistent-image")
self.assertEqual(('recreate', [container]), web.convergence_plan(smart_recreate=True))
self.assertEqual(('recreate', [container]), web.convergence_plan())
def test_trigger_recreate_with_image_change(self):
repo = 'composetest_myimage'
@ -240,7 +239,7 @@ class ServiceStateTest(DockerClientTestCase):
self.client.remove_container(c)
web = self.create_service('web', image=image)
self.assertEqual(('recreate', [container]), web.convergence_plan(smart_recreate=True))
self.assertEqual(('recreate', [container]), web.convergence_plan())
finally:
self.client.remove_image(image)
@ -263,7 +262,7 @@ class ServiceStateTest(DockerClientTestCase):
web.build()
web = self.create_service('web', build=context)
self.assertEqual(('recreate', [container]), web.convergence_plan(smart_recreate=True))
self.assertEqual(('recreate', [container]), web.convergence_plan())
finally:
shutil.rmtree(context)