Отчёты 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 больше не нужен и был удалён.
-
log_debug()был добавлен в класс Report в v4.0, чтобы избежать путаницы с одноимённым методом в Script ↩