def test_downthenup_bounce_no_existing_apps(self): """When marathon is unaware of a service, downthenup bounce should try to create a marathon app.""" new_config = {'id': 'foo.bar.12345', 'instances': 5} happy_tasks = [] old_app_live_tasks = {} assert bounce_lib.downthenup_bounce( new_config=new_config, new_app_running=False, happy_new_tasks=happy_tasks, old_app_live_tasks=old_app_live_tasks, ) == { "create_app": True, "tasks_to_drain": set(), }
def test_downthenup_bounce_done(self): """When marathon has the desired app, and there are no other copies of the service running, downthenup bounce should neither start nor stop anything.""" new_config = {'id': 'foo.bar.12345', 'instances': 5} happy_tasks = [mock.Mock() for _ in xrange(5)] old_app_live_tasks = {} assert bounce_lib.downthenup_bounce( new_config=new_config, new_app_running=True, happy_new_tasks=happy_tasks, old_app_live_tasks=old_app_live_tasks, ) == { "create_app": False, "tasks_to_drain": set(), }
def test_downthenup_bounce_old_but_no_new(self): """When marathon has only old copies of the service, downthenup_bounce should kill them and not start a new one yet.""" new_config = {'id': 'foo.bar.12345', 'instances': 5} happy_tasks = [] old_app_live_tasks = { 'app1': set(mock.Mock() for _ in xrange(3)), 'app2': set(mock.Mock() for _ in xrange(2)), } assert bounce_lib.downthenup_bounce( new_config=new_config, new_app_running=False, happy_new_tasks=happy_tasks, old_app_live_tasks=old_app_live_tasks, ) == { "create_app": False, "tasks_to_drain": old_app_live_tasks['app1'] | old_app_live_tasks['app2'], }