separated dhcp-network data point

This commit is contained in:
tomaae 2020-04-13 06:55:08 +02:00
parent d84493a9b4
commit db1e92b29f

View file

@ -361,6 +361,7 @@ class MikrotikControllerData:
await self.hass.async_add_executor_job(self.get_bridge)
await self.hass.async_add_executor_job(self.get_arp)
await self.hass.async_add_executor_job(self.get_dns)
await self.hass.async_add_executor_job(self.get_dhcp_network)
await self.hass.async_add_executor_job(self.get_dhcp)
await self.async_process_host()
await self.hass.async_add_executor_job(self.get_interface_traffic)
@ -788,27 +789,6 @@ class MikrotikControllerData:
# ---------------------------
def get_dhcp(self):
"""Get DHCP data from Mikrotik"""
# TODO: run only on demand
self.data["dhcp-network"] = parse_api(
data=self.data["dhcp-network"],
source=self.api.path("/ip/dhcp-server/network"),
key="address",
vals=[
{"name": "address"},
{"name": "gateway", "default": ""},
{"name": "netmask", "default": ""},
{"name": "dns-server", "default": ""},
{"name": "domain", "default": ""},
],
ensure_vals=[{"name": "address"}, {"name": "IPv4Network", "default": ""},],
)
for uid, vals in self.data["dhcp-network"].items():
if vals["IPv4Network"] == "":
self.data["dhcp-network"][uid]["IPv4Network"] = IPv4Network(
vals["address"]
)
self.data["dhcp"] = parse_api(
data=self.data["dhcp"],
source=self.api.path("/ip/dhcp-server/lease"),
@ -850,6 +830,32 @@ class MikrotikControllerData:
"interface"
]
# ---------------------------
# get_dhcp_network
# ---------------------------
def get_dhcp_network(self):
"""Get DHCP data from Mikrotik"""
# TODO: run only on demand
self.data["dhcp-network"] = parse_api(
data=self.data["dhcp-network"],
source=self.api.path("/ip/dhcp-server/network"),
key="address",
vals=[
{"name": "address"},
{"name": "gateway", "default": ""},
{"name": "netmask", "default": ""},
{"name": "dns-server", "default": ""},
{"name": "domain", "default": ""},
],
ensure_vals=[{"name": "address"}, {"name": "IPv4Network", "default": ""},],
)
for uid, vals in self.data["dhcp-network"].items():
if vals["IPv4Network"] == "":
self.data["dhcp-network"][uid]["IPv4Network"] = IPv4Network(
vals["address"]
)
# ---------------------------
# get_capsman_hosts
# ---------------------------