Перейти к содержанию

Отчёты InfraVision

Внимание

Отчёты устарели, начиная с InfraVision v4.0, и их функциональность была объединена с пользовательскими скриптами. Хотя обратная совместимость сохранена, пользователям рекомендуется как можно скорее преобразовать устаревшие отчёты в пользовательские скрипты, так как поддержка устаревших отчётов будет удалена в будущем релизе.

Преобразование отчётов в скрипты

Шаг 1: Обновите определение класса

Измените родительский класс с Report на Script:

Старый код
from extras.reports import Report

class MyReport(Report):
Новый код
from extras.scripts import Script

class MyReport(Script):

Шаг 2: Обновите вызовы логирования

Отчёты и скрипты предоставляют методы логирования, однако их сигнатуры различаются. Все методы логирования скриптов принимают сообщение в качестве первого параметра и принимают объект как необязательный второй параметр.

Кроме того, общий метод log() класса Report недоступен в Script. Пользователям рекомендуется заменить вызовы этого метода на log_info().

Используйте таблицу ниже в качестве справки при обновлении этих методов.

Report (старый) Script (новый)
log(message) log_info(message)
log_debug(obj, message)1 log_debug(message, obj)
log_info(obj, message) log_info(message, obj)
log_success(obj, message) log_success(message, obj)
log_warning(obj, message) log_warning(message, obj)
log_failure(obj, message) log_failure(message, obj)
Старый код
self.log_failure(
    console_port.device,
    f"No console connection defined for {console_port.name}"
)
Новый код
self.log_failure(
    f"No console connection defined for {console_port.name}",
    obj=console_port.device,
)

Другие примечания

Существующие отчёты будут автоматически преобразованы в скрипты при обновлении до InfraVision v4.0, и предыдущая история задач будет сохранена. Однако пользователям рекомендуется преобразовать устаревшие отчёты в пользовательские скрипты при первой возможности, так как поддержка устаревших отчётов будет удалена в будущем релизе.

Методы pre_run() и post_run() Report были перенесены в Script. Они автоматически вызываются методом run() Script. (Обратите внимание, что если вы решите переопределить этот метод, вы несёте ответственность за вызов pre_run() и post_run() там, где это применимо.)

Метод is_valid() в Report больше не нужен и был удалён.


  1. log_debug() был добавлен в класс Report в v4.0, чтобы избежать путаницы с одноимённым методом в Script