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

Method try_autoconnect_networks

wifi_manager.py:2244–2275  ·  view source on GitHub ↗

Try to connect to any available autoconnect networks

(self)

Source from the content-addressed store, hash-verified

2242 removed_from_ragnar = False
2243 original_count = len(self.known_networks)
2244 self.known_networks = [net for net in self.known_networks if net['ssid'] != ssid]
2245
2246 if len(self.known_networks) < original_count:
2247 self.save_wifi_config()
2248 self.logger.info(f"Removed {ssid} from Ragnar's known networks list")
2249 removed_from_ragnar = True
2250 else:
2251 self.logger.warning(f"Network {ssid} not found in Ragnar's known networks")
2252
2253 # Also delete the NetworkManager system profile so it no longer shows as saved
2254 removed_from_nm = False
2255 try:
2256 result = subprocess.run(
2257 ['sudo', 'nmcli', 'connection', 'delete', ssid],
2258 capture_output=True, text=True, timeout=10
2259 )
2260 if result.returncode == 0:
2261 self.logger.info(f"Deleted NetworkManager profile for {ssid}")
2262 removed_from_nm = True
2263 else:
2264 self.logger.debug(f"No NetworkManager profile found for {ssid}: {result.stderr.strip()}")
2265 except Exception as nm_err:
2266 self.logger.debug(f"Could not delete NetworkManager profile for {ssid}: {nm_err}")
2267
2268 # Invalidate the scan cache so the network list refreshes correctly
2269 for iface in list(self.interface_scan_cache.keys()):
2270 self.interface_scan_cache.pop(iface, None)
2271 self.interface_cache_time.pop(iface, None)
2272
2273 return removed_from_ragnar or removed_from_nm
2274
2275 except Exception as e:
2276 self.logger.error(f"Error removing known network {ssid}: {e}")
2277 return False
2278

Callers 1

Calls 7

scan_networksMethod · 0.95
check_wifi_connectionMethod · 0.95
infoMethod · 0.80
warningMethod · 0.80
runMethod · 0.45
sleepMethod · 0.45

Tested by

no test coverage detected