def info(hash): if hash == '0': try: schedules = crontab_manager.get_tasks_with_info() except Exception as exc: app.logger.error('Ошибка при получении crontab: %s', exc) flash(str(exc)) schedules = [] return render_template('info.html', full_name=AppConfig.get_server_name(), remote=False, schedules=schedules, sorted_schedules=sorted(schedules), actions=AppConfig.conf().get('actions'), sorted_actions=sorted( AppConfig.conf().get('actions')), logs=Logging.get_logs_list()) else: s = RemoteServers.find_server(hash) if s is None or not s.state: return redirect(url_for('servers')) resp = RemoteServers.get_remote_server_config(s.url) if len(resp) < 2: from collections import defaultdict flash(resp.get('status', 'Возникла неизвестная ошибка')) resp = defaultdict(dict) return render_template('info.html', full_name=resp['full_name'], hash=s.hash, remote=True, schedules=resp['schedules'], sorted_schedules=sorted(resp['schedules']), actions=resp['actions'], sorted_actions=sorted(resp['actions']), logs=resp['logs'])
def get_server_config(): result = { 'full_name': AppConfig.get_server_name(), 'schedules': crontab_manager.get_tasks_with_info(), 'actions': AppConfig.conf().get('actions'), 'logs': get_logs_list() } return result
def get_server_info(): result = {} result['name'] = str(AppConfig.get_server_name()) result['flask'] = AppConfig.flask_on try: tr_file = get_trigger_filepath() if os.path.exists(tr_file): result['msg'] = 'триггер-файл' with open(tr_file, 'r') as trigger: result['errors'] = trigger.readlines() if not 'ERROR' in result['errors']: result['errors'] = '' result['msg'] = 'ок' else: result['msg'] = 'нет триггер-файла' result['errors'] = '' except Exception as e: result['msg'] = 'ошибка обработки запроса' result['errors'] = e.__repr__() return result
def get_log(dir, name): return render_template('log.html', full_name=AppConfig.get_server_name(), dir=dir, log=Logging.get_log_content(dir, name))
def configure_logging(verbose=False): """Конфигурирует логирование для выполнения заданий/действий. Инициализирует и добавляет хэндлеры для логирования. Следующие хэндлеры создаются: - log_default - INFO, в файл. - log_debug - DEBUG, в файл. - trigger - >=WARNING, в триггер файл, если он указан в конфиге. - stdout - DEBUG, в консоль, если указан параметр verbose. Args: verbose: Логическое значение, логировать в stdout. """ try: full_name = '{region}-{project}-{servername}'.format( region=AppConfig._region, project=AppConfig._project, servername=AppConfig.get_server_name(), ) except AttributeError: full_name = 'created-with-error' log_filename = '{full_name}-{time}.log'.format( full_name=full_name, time=AppConfig.get_starttime_str(), ) log_debug_filename = '{full_name}-{time}-debug.log'.format( full_name=full_name, time=AppConfig.get_starttime_str(), ) log_path_info = get_log_dirpath( subdir=AppConfig.get_starttime().strftime('%Y'), ) log_path_debug = get_log_dirpath(subdir='debug') handlers = [ get_default_file_handler( full_name, os.path.join(log_path_info, log_filename), ), get_debug_file_handler( full_name, os.path.join(log_path_debug, log_debug_filename), ), ] if verbose or AppConfig.conf().get('logging', {}).get( 'use_console', False): # Инициализация хэндлера консоли, если стоит verbose или use_console. handlers.append(get_console_handler(full_name)) if get_trigger_filepath(): # Инициализация хэндлера триггера, если к нему указан путь. handlers.append(get_trigger_handler()) logger = logging.getLogger() logger.setLevel(logging.DEBUG) for log_handler in handlers: logger.addHandler(log_handler)