X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=arper.py;h=bdd97ac2c93b8109fcfb187f5bc7b455fad7a009;hb=90dc74b2ff8f36dd2495632a8150ce37dab61f1c;hp=29a8a121870175c8a469c8158fe087b290f40fe0;hpb=e6f32fdd9b373dfcd100c7accb41f57d83c2f0a1;p=python_utils.git diff --git a/arper.py b/arper.py index 29a8a12..bdd97ac 100644 --- a/arper.py +++ b/arper.py @@ -2,22 +2,23 @@ """A caching layer around the kernel's network mapping between IPs and MACs""" + import datetime import logging import os -from typing import Any, Optional import warnings +from typing import Any, Optional from overrides import overrides import argparse_utils -from collect.bidict import BiDict import config import exec_utils import file_utils import persistent -import string_utils import site_config +import string_utils +from collect.bidict import BiDict logger = logging.getLogger(__name__) @@ -46,7 +47,7 @@ cfg.add_argument( ) -@persistent.persistent_autoloaded_singleton() +@persistent.persistent_autoloaded_singleton() # type: ignore class Arper(persistent.Persistent): def __init__(self, cached_state: Optional[BiDict] = None) -> None: self.state = BiDict() @@ -58,9 +59,7 @@ class Arper(persistent.Persistent): self.update_from_arp_scan() self.update_from_arp() if len(self.state) < config.config['arper_min_entries_to_be_valid']: - raise Exception( - f'Arper didn\'t find enough entries; only got {len(self.state)}.' - ) + raise Exception(f'Arper didn\'t find enough entries; only got {len(self.state)}.') def update_from_arp_scan(self): network_spec = site_config.get_config().network @@ -75,12 +74,7 @@ class Arper(persistent.Persistent): for line in output.split('\n'): ip = string_utils.extract_ip_v4(line) mac = string_utils.extract_mac_address(line) - if ( - ip is not None - and mac is not None - and mac != 'UNKNOWN' - and ip != 'UNKNOWN' - ): + if ip is not None and mac is not None and mac != 'UNKNOWN' and ip != 'UNKNOWN': mac = mac.lower() logger.debug(f'ARPER: {mac} => {ip}') self.state[mac] = ip @@ -94,12 +88,7 @@ class Arper(persistent.Persistent): for line in output.split('\n'): ip = string_utils.extract_ip_v4(line) mac = string_utils.extract_mac_address(line) - if ( - ip is not None - and mac is not None - and mac != 'UNKNOWN' - and ip != 'UNKNOWN' - ): + if ip is not None and mac is not None and mac != 'UNKNOWN' and ip != 'UNKNOWN': mac = mac.lower() logger.debug(f'ARPER: {mac} => {ip}') self.state[mac] = ip