Update ping to use asyncio function in icmplib (#50808)
This commit is contained in:
parent
31bd41582b
commit
68714c2067
8 changed files with 19 additions and 81 deletions
|
@ -1,12 +1,11 @@
|
|||
"""Tracks devices by sending a ICMP echo request (ping)."""
|
||||
import asyncio
|
||||
from datetime import timedelta
|
||||
from functools import partial
|
||||
import logging
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
from icmplib import multiping
|
||||
from icmplib import async_multiping
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant import const, util
|
||||
|
@ -21,7 +20,6 @@ from homeassistant.helpers.event import async_track_point_in_utc_time
|
|||
from homeassistant.util.async_ import gather_with_concurrency
|
||||
from homeassistant.util.process import kill_subprocess
|
||||
|
||||
from . import async_get_next_ping_id
|
||||
from .const import DOMAIN, ICMP_TIMEOUT, PING_ATTEMPTS_COUNT, PING_PRIVS, PING_TIMEOUT
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
@ -118,15 +116,11 @@ async def async_setup_scanner(hass, config, async_see, discovery_info=None):
|
|||
|
||||
async def async_update(now):
|
||||
"""Update all the hosts on every interval time."""
|
||||
responses = await hass.async_add_executor_job(
|
||||
partial(
|
||||
multiping,
|
||||
ip_to_dev_id.keys(),
|
||||
count=PING_ATTEMPTS_COUNT,
|
||||
timeout=ICMP_TIMEOUT,
|
||||
privileged=privileged,
|
||||
id=async_get_next_ping_id(hass, len(ip_to_dev_id)),
|
||||
)
|
||||
responses = await async_multiping(
|
||||
list(ip_to_dev_id),
|
||||
count=PING_ATTEMPTS_COUNT,
|
||||
timeout=ICMP_TIMEOUT,
|
||||
privileged=privileged,
|
||||
)
|
||||
_LOGGER.debug("Multiping responses: %s", responses)
|
||||
await asyncio.gather(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue