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]:
|
def mikrotik_ping(api, address: str) -> Optional[float]:
|
||||||
"""
|
"""
|
||||||
Возвращает avg-rtt (мс) или None если хост недоступен.
|
Возвращает avg-rtt (мс) или None если хост недоступен.
|
||||||
<<<<<<< HEAD
|
|
||||||
RouterOS API: /ping — это команда, вызывается через get_binary_resource.
|
RouterOS API: /ping — это команда, вызывается через get_binary_resource.
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
@@ -125,28 +124,6 @@ def mikrotik_ping(api, address: str) -> Optional[float]:
|
|||||||
return sum(rtts) / len(rtts)
|
return sum(rtts) / len(rtts)
|
||||||
return None
|
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:
|
except Exception as exc:
|
||||||
log.warning("Ошибка пинга %s: %s", address, exc)
|
log.warning("Ошибка пинга %s: %s", address, exc)
|
||||||
return None
|
return None
|
||||||
|
|||||||
Reference in New Issue
Block a user