diff options
author | David Bradford <david.bradford@mongodb.com> | 2019-07-13 13:05:36 -0400 |
---|---|---|
committer | David Bradford <david.bradford@mongodb.com> | 2019-07-13 13:40:52 -0400 |
commit | 57ea3693bf4c52a1f5568539862b5fbf51e86b7f (patch) | |
tree | a46177e6b0376c14e9d380fc7e62772c47e8cb63 | |
parent | a608bbc10d614f0a9b652993ed10238abc3c3192 (diff) | |
download | mongo-57ea3693bf4c52a1f5568539862b5fbf51e86b7f.tar.gz |
SERVER-42227: Limit the number of tasks burn_in_test will generate
(cherry picked from commit e6644474d876eb99579101e81d38c363feef07cd)
-rw-r--r-- | buildscripts/burn_in_tests.py | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/buildscripts/burn_in_tests.py b/buildscripts/burn_in_tests.py index 99ac702269d..a0e9489048e 100644 --- a/buildscripts/burn_in_tests.py +++ b/buildscripts/burn_in_tests.py @@ -4,10 +4,10 @@ import collections import copy import json +import logging import optparse import os.path import subprocess -import re import shlex import sys import urllib.parse @@ -32,10 +32,13 @@ from buildscripts.ciconfig import evergreen from buildscripts.client import evergreen as evergreen_client # pylint: enable=wrong-import-position +LOGGER = logging.getLogger(__name__) + API_REST_PREFIX = "/rest/v1/" API_SERVER_DEFAULT = "https://evergreen.mongodb.com" REPEAT_SUITES = 2 EVERGREEN_FILE = "etc/evergreen.yml" +MAX_TASKS_TO_CREATE = 1000 # The executor_file and suite_files defaults are required to make the suite resolver work # correctly. SELECTOR_FILE = "etc/burn_in_tests.yml" @@ -464,6 +467,8 @@ def _get_run_buildvariant(options): def create_generate_tasks_file(options, tests_by_task): """Create the Evergreen generate.tasks file.""" + # pylint: disable=too-many-locals + evg_config = Configuration() task_specs = [] task_names = [BURN_IN_TESTS_GEN_TASK] @@ -494,7 +499,12 @@ def create_generate_tasks_file(options, tests_by_task): display_task = DisplayTaskDefinition(BURN_IN_TESTS_TASK).execution_tasks(task_names) evg_config.variant(_get_run_buildvariant(options)).tasks(task_specs).display_task(display_task) - _write_json_file(evg_config.to_map(), options.generate_tasks_file) + json_config = evg_config.to_map() + tasks_to_create = len(json_config.get('tasks', [])) + if tasks_to_create > MAX_TASKS_TO_CREATE: + LOGGER.warning("Attempting to create more tasks than max(%d), aborting", tasks_to_create) + sys.exit(1) + _write_json_file(json_config, options.generate_tasks_file) def run_tests(no_exec, tests_by_task, resmoke_cmd, report_file): @@ -527,6 +537,12 @@ def run_tests(no_exec, tests_by_task, resmoke_cmd, report_file): def main(): """Execute Main program.""" + logging.basicConfig( + format="[%(asctime)s - %(name)s - %(levelname)s] %(message)s", + level=logging.DEBUG, + stream=sys.stdout, + ) + options, args = parse_command_line() resmoke_cmd = _set_resmoke_cmd(options, args) |