def run_task(self): self.logger.info("Task %s: Running db tests of flavor %s and release %s in %s" % (self.__repr__(), self.flavor_name, self.release_type, self.test_file)) test_container = self._client.containers.get(self._test_container_info.container_name) log_level = "--loglevel=%s" % self.log_level server = "--server '%s:%s'" % (self._database_info.host, self._database_info.db_port) environment = "--driver=/downloads/ODBC/lib/linux/x86_64/libexaodbc-uo2214lv2.so " \ "--jdbc-path /downloads/JDBC/exajdbc.jar" language_definition = "--script-languages '%s'" % self.language_definition language = "" if self.language is not None: language = "--lang %s" % self.language args = '"{test_file}" {server} {language_definition} {log_level} {environment} {language} {tests}' \ .format( test_file=self.test_file, server=server, language_definition=language_definition, log_level=log_level, environment=environment, language=language, tests=" ".join(self.test_restrictions) ) cmd = 'cd /tests/test/; python -tt %s' % args bash_cmd = f"""bash -c "{cmd}" """ still_running_logger = StillRunningLogger(self.logger, self.__repr__(), "db tests of flavor %s and release %s in %s" % (self.flavor_name, self.release_type, self.test_file)) thread = StillRunningLoggerThread(still_running_logger) thread.start() environment = FrozenDictToDict().convert(self.test_environment_vars) exit_code, output = test_container.exec_run(cmd=bash_cmd, environment=environment) thread.stop() thread.join() self._log_target.parent.mkdir(parents=True, exist_ok=True) log_output = "command: " + bash_cmd + "\n" + \ "environment: " + str(environment) + "\n" + \ output.decode("utf-8") if log_config().write_log_files_to_console == WriteLogFilesToConsole.all: self.logger.info("Task %s: Test results for db tests of flavor %s and release %s in %s\n%s" % (self.__repr__(), self.flavor_name, self.release_type, self.test_file, log_output)) if log_config().write_log_files_to_console == WriteLogFilesToConsole.only_error and exit_code != 0: self.logger.error("Task %s: db tests of flavor %s and release %s in %s failed\nTest results:\n%s" % (self.__repr__(), self.flavor_name, self.release_type, self.test_file, log_output)) with self._log_target.open("w") as file: file.write(log_output) with self.output().open("w") as file: if exit_code == 0: file.write("OK") else: file.write("FAILED")
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._client = docker_client_config().get_client() self._log_config = log_config() self.docker_image_task = self.get_docker_image_task() self._prepare_outputs()
def __init__(self, log_file_path, logger, task_id): self._log_file_path = log_file_path self._task_id = task_id self._logger = logger self._complete_log = [] self._error_message = None self._log_config = log_config()
def __init__(self, logger, taskid, description): self._description = description self._taskid = taskid self._logger = logger self._log_config = log_config() self._previous_time = datetime.now()
def __init__(self, task_id: str): self._log_config = log_config() self._low_level_client = docker_client_config().get_low_level_client() self._task_id = task_id