fix: исправлен вызов /ping через binary_resource API
This commit is contained in:
-23
@@ -96,7 +96,6 @@ def fetch_address_list(api) -> list[str]:
|
||||
def mikrotik_ping(api, address: str) -> Optional[float]:
|
||||
"""
|
||||
Возвращает avg-rtt (мс) или None если хост недоступен.
|
||||
<<<<<<< HEAD
|
||||
RouterOS API: /ping — это команда, вызывается через get_binary_resource.
|
||||
"""
|
||||
try:
|
||||
@@ -125,28 +124,6 @@ def mikrotik_ping(api, address: str) -> Optional[float]:
|
||||
return sum(rtts) / len(rtts)
|
||||
return None
|
||||
|
||||
=======
|
||||
"""
|
||||
try:
|
||||
ping_resource = api.get_resource("/ping")
|
||||
results = ping_resource.call(
|
||||
"",
|
||||
{
|
||||
"address": address,
|
||||
"count": str(PING_COUNT),
|
||||
"timeout": str(PING_TIMEOUT_MS),
|
||||
},
|
||||
)
|
||||
for row in results:
|
||||
if "avg-rtt" in row and row.get("avg-rtt"):
|
||||
try:
|
||||
return float(row["avg-rtt"].replace("ms", "").strip())
|
||||
except ValueError:
|
||||
pass
|
||||
if row.get("packet-loss") == "100":
|
||||
return None
|
||||
return None
|
||||
>>>>>>> 994b95f3e9aa67ddf108ce11904cd69f3d736ab8
|
||||
except Exception as exc:
|
||||
log.warning("Ошибка пинга %s: %s", address, exc)
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user