Нативное указание подсети для сканирования по умолчанию (192.168.1.0/24). Обработка ошибок при очистке данных
This commit is contained in:
parent
5287a64587
commit
4257864b3d
3 changed files with 30 additions and 18 deletions
|
|
@ -1,6 +1,5 @@
|
||||||
from fastapi import APIRouter, HTTPException
|
from fastapi import APIRouter, HTTPException, Body
|
||||||
from typing import List, Dict
|
from models.subnet import SubnetScanResult, SubnetScanRequest
|
||||||
from models.subnet import SubnetScanResult
|
|
||||||
from models.wifi import WifiScanResult
|
from models.wifi import WifiScanResult
|
||||||
from models.request import NoteRequest, WifiConnectRequest, WifiDisconnectRequest
|
from models.request import NoteRequest, WifiConnectRequest, WifiDisconnectRequest
|
||||||
from services.subnet_service import SubnetService
|
from services.subnet_service import SubnetService
|
||||||
|
|
@ -9,8 +8,8 @@ from services.connect_service import WifiConnectionService
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
@router.get("/devices", response_model=SubnetScanResult)
|
@router.post("/devices", response_model=SubnetScanResult)
|
||||||
def scan_subnet(subnet: str = "192.168.1.0/24", ports: List[int] = None):
|
def scan_subnet(request: SubnetScanRequest = Body(...)):
|
||||||
"""Сканирует локальную подсеть и возвращает данные об устройствах.
|
"""Сканирует локальную подсеть и возвращает данные об устройствах.
|
||||||
|
|
||||||
Выполняет сканирование указанной подсети для обнаружения активных устройств
|
Выполняет сканирование указанной подсети для обнаружения активных устройств
|
||||||
|
|
@ -29,7 +28,8 @@ def scan_subnet(subnet: str = "192.168.1.0/24", ports: List[int] = None):
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
subnet_service = SubnetService()
|
subnet_service = SubnetService()
|
||||||
result = subnet_service.scan_subnet(subnet, ports)
|
subnet = request.subnet or "192.168.1.0/24"
|
||||||
|
result = subnet_service.scan_subnet(subnet)
|
||||||
return result
|
return result
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise HTTPException(status_code=500, detail=f"Ошибка сканирования: {str(e)}")
|
raise HTTPException(status_code=500, detail=f"Ошибка сканирования: {str(e)}")
|
||||||
|
|
|
||||||
|
|
@ -37,11 +37,11 @@ class SubnetScanResult(BaseModel):
|
||||||
|
|
||||||
devices: List[Device] = []
|
devices: List[Device] = []
|
||||||
|
|
||||||
#class SubnetScanRequest(BaseModel):
|
class SubnetScanRequest(BaseModel):
|
||||||
# """
|
"""
|
||||||
# Параметры для сканирования подсети
|
Параметры для сканирования подсети
|
||||||
#
|
|
||||||
# Атрибуты:
|
Атрибуты:
|
||||||
# subnet (str): Подсеть для сканирования (например 192.168.1.0/24)
|
subnet (str): Подсеть для сканирования (например 192.168.1.0/24)
|
||||||
# """
|
"""
|
||||||
# subnet: Optional[str] = "192.168.1.0/24"
|
subnet: Optional[str] = "192.168.1.0/24"
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,9 @@ class SettingsService:
|
||||||
json.dump([], f)
|
json.dump([], f)
|
||||||
logger.info("Данные узлов подсети успешно очищены")
|
logger.info("Данные узлов подсети успешно очищены")
|
||||||
return True
|
return True
|
||||||
|
except FileNotFoundError:
|
||||||
|
logger.info("Файл устройств не найден, очистка считается успешной")
|
||||||
|
return True
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Ошибка очистки узлов подсети: {str(e)}")
|
logger.error(f"Ошибка очистки узлов подсети: {str(e)}")
|
||||||
raise
|
raise
|
||||||
|
|
@ -43,6 +46,9 @@ class SettingsService:
|
||||||
json.dump([], f)
|
json.dump([], f)
|
||||||
logger.info("Данные точек доступа Wi-Fi успешно очищены")
|
logger.info("Данные точек доступа Wi-Fi успешно очищены")
|
||||||
return True
|
return True
|
||||||
|
except FileNotFoundError:
|
||||||
|
logger.info("Файл Wi-Fi не найден, очистка считается успешной")
|
||||||
|
return True
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Ошибка очистки точек доступа Wi-Fi: {str(e)}")
|
logger.error(f"Ошибка очистки точек доступа Wi-Fi: {str(e)}")
|
||||||
raise
|
raise
|
||||||
|
|
@ -56,11 +62,17 @@ class SettingsService:
|
||||||
Raises:
|
Raises:
|
||||||
Exception: Если произошла ошибка при записи в один из файлов.
|
Exception: Если произошла ошибка при записи в один из файлов.
|
||||||
"""
|
"""
|
||||||
|
try:
|
||||||
try:
|
try:
|
||||||
with open(self.subnet_file, "w") as f:
|
with open(self.subnet_file, "w") as f:
|
||||||
json.dump([], f)
|
json.dump([], f)
|
||||||
|
except FileNotFoundError:
|
||||||
|
logger.info("Файл устройств не найден, очистка считается успешной")
|
||||||
|
try:
|
||||||
with open(self.wifi_file, "w") as f:
|
with open(self.wifi_file, "w") as f:
|
||||||
json.dump([], f)
|
json.dump([], f)
|
||||||
|
except FileNotFoundError:
|
||||||
|
logger.info("Файл Wi-Fi не найден, очистка считается успешной")
|
||||||
logger.info("Все сетевые данные успешно очищены")
|
logger.info("Все сетевые данные успешно очищены")
|
||||||
return True
|
return True
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue