remote dhcp info resolution (wireless/capsman), more wifiwave2 support

This commit is contained in:
Arseniy Kuznetsov
2023-01-14 17:33:04 +01:00
parent cbdaf51a95
commit e27305e736
14 changed files with 105 additions and 42 deletions

View File

@@ -14,9 +14,9 @@
from mktxp.flow.processor.output import BaseOutputProcessor
from mktxp.datasource.dhcp_ds import DHCPMetricsDataSource
from mktxp.datasource.wireless_ds import WirelessMetricsDataSource
from mktxp.datasource.capsman_ds import CapsmanRegistrationsMetricsDataSource
class CapsmanOutput:
''' CAPsMAN CLI Output
'''
@@ -30,7 +30,8 @@ class CapsmanOutput:
# translate / trim / augment registration records
dhcp_lease_labels = ['host_name', 'comment', 'address', 'mac_address']
dhcp_lease_records = DHCPMetricsDataSource.metric_records(router_entry, metric_labels = dhcp_lease_labels, add_router_id = False)
dhcp_entry = WirelessMetricsDataSource.dhcp_entry(router_entry)
dhcp_lease_records = DHCPMetricsDataSource.metric_records(dhcp_entry, metric_labels = dhcp_lease_labels, add_router_id = False)
dhcp_rt_by_interface = {}
for registration_record in sorted(registration_records, key = lambda rt_record: rt_record['rx_signal'], reverse=True):
@@ -60,4 +61,3 @@ class CapsmanOutput:
print(f'{server} clients: {len(dhcp_rt_by_interface[server])}')
print(f'Total connected CAPsMAN clients: {output_records}', '\n')

View File

@@ -15,6 +15,7 @@
from mktxp.flow.processor.output import BaseOutputProcessor
from mktxp.datasource.dhcp_ds import DHCPMetricsDataSource
from mktxp.datasource.wireless_ds import WirelessMetricsDataSource
from mktxp.flow.router_entries_handler import RouterEntriesHandler
class WirelessOutput:
@@ -30,7 +31,8 @@ class WirelessOutput:
# translate / trim / augment registration records
dhcp_lease_labels = ['host_name', 'comment', 'address', 'mac_address']
dhcp_lease_records = DHCPMetricsDataSource.metric_records(router_entry, metric_labels = dhcp_lease_labels, add_router_id = False)
dhcp_entry = WirelessMetricsDataSource.dhcp_entry(router_entry)
dhcp_lease_records = DHCPMetricsDataSource.metric_records(dhcp_entry, metric_labels = dhcp_lease_labels, add_router_id = False)
dhcp_rt_by_interface = {}
@@ -46,7 +48,8 @@ class WirelessOutput:
output_records = 0
registration_records = len(registration_records)
output_entry = BaseOutputProcessor.OutputWiFiEntry
output_entry = BaseOutputProcessor.OutputWiFiWave2Entry \
if WirelessMetricsDataSource.wifiwave2_installed(router_entry) else BaseOutputProcessor.OutputWiFiEntry
output_table = BaseOutputProcessor.output_table(output_entry)
for key in dhcp_rt_by_interface.keys():