Skip to content

Commit 87a89f3

Browse files
committed
Add active_labels parameter to resolve_devices for selective strategy execution
1 parent 88231d9 commit 87a89f3

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

‎server/scan/device_handling.py‎

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -971,14 +971,18 @@ def update_devices_names(pm):
971971
(resolver.resolve_nbtlookup, "NBTSCAN"),
972972
]
973973

974-
def resolve_devices(devices, resolve_both_name_and_fqdn=True):
974+
def resolve_devices(devices, resolve_both_name_and_fqdn=True, active_labels=None):
975975
"""
976976
Attempts to resolve device names and/or FQDNs using available strategies.
977977
978978
Parameters:
979979
devices (list): List of devices to resolve.
980980
resolve_both_name_and_fqdn (bool): If True, resolves both name and FQDN.
981981
If False, resolves only FQDN.
982+
active_labels (set|None): If provided, only strategies whose label is in
983+
this set are tried. Used by Step 1b to prevent
984+
non-SET_ALWAYS plugins from short-circuiting
985+
SET_ALWAYS ones.
982986
983987
Returns:
984988
recordsToUpdate (list): List of
@@ -997,6 +1001,8 @@ def resolve_devices(devices, resolve_both_name_and_fqdn=True):
9971001

9981002
# Attempt each resolution strategy in order
9991003
for resolve_fn, label in strategies:
1004+
if active_labels is not None and label not in active_labels:
1005+
continue
10001006
resolved = resolve_fn(device["devMac"], device["devLastIP"])
10011007

10021008
# Extract values
@@ -1111,7 +1117,7 @@ def resolve_devices(devices, resolve_both_name_and_fqdn=True):
11111117
mylog("debug", f"[Update Device Name] SET_ALWAYS re-resolve: active plugins={set_always_plugins}, candidate devices={len(resolvableDevices)}")
11121118

11131119
if resolvableDevices:
1114-
recordsToUpdate, _, fs, notFound = resolve_devices(resolvableDevices)
1120+
recordsToUpdate, _, fs, notFound = resolve_devices(resolvableDevices, active_labels=set(set_always_plugins))
11151121

11161122
res_string = f"{fs['DIGSCAN']}/{fs['AVAHISCAN']}/{fs['NSLOOKUP']}/{fs['NBTSCAN']}"
11171123
mylog("verbose", f"[Update Device Name] SET_ALWAYS re-resolve - Found (DIG/AVAHI/NSL/NBT): {len(recordsToUpdate)} ({res_string}), Not Found: {notFound}")

0 commit comments

Comments
 (0)