Files
nas_control_bot/test_reboot.py
2025-08-30 10:33:46 +09:00

74 lines
2.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Скрипт для тестирования функции перезагрузки Synology NAS
"""
import os
import sys
import logging
from pathlib import Path
# Добавляем путь проекта в sys.path
project_dir = str(Path(__file__).resolve().parent)
if project_dir not in sys.path:
sys.path.insert(0, project_dir)
from src.api.synology import SynologyAPI
from src.config.config import SYNOLOGY_POWER_API, SYNOLOGY_INFO_API, SYNOLOGY_API_VERSION
# Настройка логирования
logging.basicConfig(
level=logging.DEBUG,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
def main():
"""Основная функция для тестирования перезагрузки"""
logger.info("Тестирование функции перезагрузки Synology NAS")
logger.info(f"Используемые API: POWER={SYNOLOGY_POWER_API}, INFO={SYNOLOGY_INFO_API}, VERSION={SYNOLOGY_API_VERSION}")
# Инициализация API
synology = SynologyAPI()
# Проверка онлайн статуса
logger.info("Проверка онлайн статуса...")
is_online = synology.is_online(force_check=True)
logger.info(f"Статус: {'Онлайн' if is_online else 'Оффлайн'}")
if not is_online:
logger.error("NAS недоступен. Невозможно выполнить перезагрузку.")
return
# Вывод информации о системе
logger.info("Получение информации о системе...")
system_info = synology.get_system_status()
if system_info.get("status") == "error":
logger.error(f"Ошибка получения информации о системе: {system_info.get('error')}")
else:
logger.info(f"Информация о системе: {system_info}")
# Запрос на подтверждение действия
confirm = input("Вы действительно хотите перезагрузить Synology NAS? (y/n): ")
if confirm.lower() != 'y':
logger.info("Операция отменена пользователем.")
return
# Выполнение перезагрузки
logger.info("Выполнение перезагрузки...")
try:
result = synology.reboot_system()
if result:
logger.info("Перезагрузка выполнена успешно.")
else:
logger.error("Не удалось выполнить перезагрузку.")
except Exception as e:
logger.error(f"Ошибка при выполнении перезагрузки: {str(e)}")
if __name__ == "__main__":
main()