MCPcopy Create free account
hub / github.com/PierreGode/Ragnar / sync_from_interfaces

Method sync_from_interfaces

multi_interface.py:219–265  ·  view source on GitHub ↗

Sync incoming interface metadata (from nmcli, wifi manager, or API).

(self, interfaces: List[Dict])

Source from the content-addressed store, hash-verified

217 return None
218
219 def sync_from_interfaces(self, interfaces: List[Dict]):
220 """Sync incoming interface metadata (from nmcli, wifi manager, or API)."""
221 selected = self._select_interfaces(interfaces)
222 timestamp = time.time()
223 global_enabled = self.is_multi_mode_enabled()
224 default_iface = self._default_iface
225 focus_interface = self.get_focus_interface()
226
227 with self._lock:
228 new_state: Dict[str, Dict] = {}
229 for iface in selected:
230 name = iface.get('name')
231 if not name:
232 continue
233 role = 'internal' if name == default_iface else 'external'
234 base_enabled = self._resolve_enabled_flag(name, global_enabled)
235 entry = {
236 'name': name,
237 'role': role,
238 'state': iface.get('state', 'UNKNOWN'),
239 'connected': bool(iface.get('connected')),
240 'connected_ssid': iface.get('connected_ssid'),
241 'ip_address': iface.get('ip_address'),
242 'cidr': iface.get('cidr'),
243 'network_cidr': iface.get('network_cidr'),
244 'mac_address': iface.get('mac_address'),
245 'scan_enabled': base_enabled,
246 'last_refresh': timestamp,
247 'reason': None,
248 'focus_selected': bool(name and name == focus_interface),
249 }
250
251 if not global_enabled:
252 entry['scan_enabled'] = False
253 entry['reason'] = 'global_disabled'
254 elif not entry['connected_ssid']:
255 entry['scan_enabled'] = False
256 entry['reason'] = 'no_ssid'
257 elif not entry['connected']:
258 entry['scan_enabled'] = False
259 entry['reason'] = 'disconnected'
260
261 new_state[name] = entry
262
263 self.interfaces = new_state
264 self.last_refresh = timestamp
265 self._refresh_focus_flags()
266
267 def get_scan_jobs(self) -> List[ScanJob]:
268 """Return all scan jobs respecting interface limits and enable flags.

Callers 2

refresh_from_systemMethod · 0.95
_gather_wifi_interfacesFunction · 0.80

Calls 6

_select_interfacesMethod · 0.95
is_multi_mode_enabledMethod · 0.95
get_focus_interfaceMethod · 0.95
_resolve_enabled_flagMethod · 0.95
_refresh_focus_flagsMethod · 0.95
getMethod · 0.45

Tested by

no test coverage detected